第2章 Java语言基础 2.1 标识符 2.2 变量和常量 2.3 基本数据类型 2.4 赋值语句 2.5 运算符和表达式

Slides:



Advertisements
Similar presentations
第二章 Java基本语法.
Advertisements

第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
Tool Command Language --11级ACM班 金天行.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第 5 章 流程控制 (一): 條件分支.
第二章 JAVA语言基础.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第九章 字符串.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
第三章 C语言基础 学习目标: 熟练掌握:C语言的基本数据类型、运算符及表达式 掌握:常见的输入、输出函数使用方法;
C#程序设计基础 $5 流程控制.
Java语言程序设计 第二部分 Java语言基础.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第3章 C语言的基本语句 和程序结构设计.
管理信息结构SMI.
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
标识符 Java基本数据类型 常量、变量和赋值 类型转换 运算符与表达式
C语言程序设计基础 刘新国.
第二章 Java语言基础.
第2章 数据类型、运算符和表达式.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第二章Java基本程序设计.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
Java變數 2014/6/24.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
程序设计基础A(C语言) 主讲教师: 许 康 教师主页:
四:JAVA语言基础.
第二章 Java基本语法 讲师:复凡.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
第二章 Java语法基础.
第九节 赋值运算符和赋值表达式.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.16 枚举算法及其程序实现 ——数组的作用.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java基本语法 讲师:复凡.
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
数据表示 第 2 讲.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
變數、資料型態、運算子.
第2章 Java语言基础.
鸡兔同笼(续) ——选择结构.
第二章 数据类型与表达式 丘志杰 电子科技大学 计算机学院 软件学院.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第二章 Java基础语法 北京传智播客教育
第2章 Java语言基础.
编译原理实践 6.程序设计语言PL/0.
2 Java语言基础 (数据运算与流程控制).
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
Presentation transcript:

第2章 Java语言基础 2.1 标识符 2.2 变量和常量 2.3 基本数据类型 2.4 赋值语句 2.5 运算符和表达式 2.6 流程控制语句 2.7 程序注释 2.8 数组 2.9 字符串 《Java程序设计实用教程》朱战立

2.1 标识符 Java语言的字符使用Unicode字符集。Unicode字符集中的每个字符为16位编码 标识符是由字母、数字、下划线(_)、美元符($)组成的、必须以字母、下划线或美元符开头的、字符个数有限的字符序列。如i、count、myStack、GetValue、_length等 标识符可以用来命名变量名、常量名、类名等 有固定含义的标识符称作关键字。用户不允许用关键字定义标识符。如for、if等 《Java程序设计实用教程》朱战立

2.2 变量和常量 2.2.1 变量 2.2.2 常量 《Java程序设计实用教程》朱战立

2.2.1 变量 变量是一个保存数据的内存区域的名字。变量必须先声明,然后才能使用 变量声明是指示编译器为特定数据类型的数值保存分配适当的内存空间 变量声明的格式为: <数据类型名> <变量名表>; 变量的使用范围称作变量的作用域。变量的使用范围是定义该变量的程序块 《Java程序设计实用教程》朱战立

2.2.2 常量 在整个程序运行期间保持不变的量称作常量。或者说,常量是数值不变化的量 定义常量的方法是在定义变量的语句最前面加上关键字final。例如,   final int MAXSIZE = 100; 《Java程序设计实用教程》朱战立

2.3 基本数据类型 数据类型规定了一类数据的数据位长度(或称字符个数)、取值范围以及对该类数据所能进行的操作 Java语言定义的8种基本数据类型及相应的关键字如下: 整型: byte 、short、 int、 long 浮点型:float、double 逻辑型:boolean 字符型:char 《Java程序设计实用教程》朱战立

1. 整型 byte 、short、 int、 long整型只是数据的范围不同 整型数可以表示为十进制、八进制或十六进制: 1. 整型 byte 、short、 int、 long整型只是数据的范围不同 整型数可以表示为十进制、八进制或十六进制: 十进制:用若干个0~9之间的数字表示,并规定首位不能为0。如123,-100。 八进制:以0打头,后跟若干个0~7之间的数字。如0123。 十六进制:以0x或0X打头,后跟若干个0~9之间的数字以及a~f之间的小写字母或A~F之间的大写字母,a~f或A~F分别表示数值10 ~15。如0X123E 《Java程序设计实用教程》朱战立

2. 浮点型 float和double型数只是数据位(或数值范围)不同 浮点型数由整数部分和小数部分组成。浮点数有两种表示方式: 2. 浮点型 float和double型数只是数据位(或数值范围)不同 浮点型数由整数部分和小数部分组成。浮点数有两种表示方式: 标准记数法:由整数部分、小数点和小数部分构成。如123.123,123.0 科学记数法:由整数、小数点、小数和指数部分构成,指数部分由一个e或E后跟带正负号的整数表示。如123.123用科学记数法可表示为1.23123E+2 规定:未明确定义的浮点型都隐含为double型。若要将一个浮点型明确地表示为float型时,需在后面加F或f,如123.123F或1.23123E+2f 《Java程序设计实用教程》朱战立

3. 逻辑型 逻辑型用来定义保存逻辑值的变量 逻辑型也称为布尔型 逻辑值只有真(true)和假(false)两个值。 3. 逻辑型 逻辑型用来定义保存逻辑值的变量 逻辑型也称为布尔型 逻辑值只有真(true)和假(false)两个值。 所有逻辑运算(如a<b)的运算结果值都是逻辑值,如当a = 4,b = 6时,逻辑运算a<b的结果值就是true 《Java程序设计实用教程》朱战立

4. 字符型 一个Unicode标准下的编码称作一个字符 Unicode标准用16位编码表示一个字符。如’a’、’A’、’#’等都是字符型 4. 字符型 一个Unicode标准下的编码称作一个字符 Unicode标准用16位编码表示一个字符。如’a’、’A’、’#’等都是字符型 一些控制字符不能在屏幕上直接显示,使用转义字符的表示方法 《Java程序设计实用教程》朱战立

2.4 赋值语句 赋值语句的语法形式:<变量> = <表达式>; 类型相同。可正确赋值。例如: int smallValue =100; long bigValue = 100L; 类型兼容。可正确赋值。例如: long bigval = 100; double x = 12.345F; 类型不兼容。编译时会出错。例如: int smallValuel = 100L; //100L是long类型 float x = 12.345; //12.345是double类型 《Java程序设计实用教程》朱战立

2.5 运算符和表达式 Java语言在基本关键字、运算符、表达式、赋值语句、流程控制语句等和C/C++基本相同 2.5.1 运算符及其分类 2.5.2 运算符的优先级 2.5.3 表达式 《Java程序设计实用教程》朱战立

2.5.1 运算符及其分类 Java的运算符可分为4类: 算术运算符 关系运算符 逻辑运算符 位运算符 《Java程序设计实用教程》朱战立

1.算术运算符 一元运算符。有+、-、++、--。例如, int i=6,j,k,m,n; k = -i; m = i++; 二元运算符。有+、-、*、/、% a%b的计算公式为:a % b = a - (a / b) * b 7 / 3 //整除,运算结果为2 7.0 / 3 //除法,运算结果为2.33333 7 % 3 //取余,运算结果为1 7.0 % 3 //取余,运算结果为1.0 《Java程序设计实用教程》朱战立

2. 关系运算符 用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值 2. 关系运算符 用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值 关系运算符有六个:= = 、! = 、> 、> = 、 < 、< = 。例如: 9 <= 8 //运算结果为false 9.9 >= 8.8 //运算结果为true ‘A’ < ‘a’ //运算结果为true 《Java程序设计实用教程》朱战立

3. 逻辑运算符 逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:&&、||、! 、^、&| 3. 逻辑运算符 逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:&&、||、! 、^、&| &&和&的运算规则基本相同。区别是:&和 | 运算是把逻辑表达式全部计算完,而&&和 || 运算具有短路计算功能 所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。例如,有如下逻辑表达式: (i>=1) && (i<=100) 《Java程序设计实用教程》朱战立

4. 位运算符 位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。位运算符有:&、|、~、^、>>、<<、>>>。例如: int x = 64; //x等于二进制数的01000000 int y = 70; //y等于二进制数的01000110 int z = x&y //z等于二进制数的01000000 int x = 70; //x等于二进制数的01000110 int y = 2; int z = x>>y //z等于二进制数的00010001 《Java程序设计实用教程》朱战立

5. 其他运算符 条件运算符(?:) 语法为:表达式1〉?〈表达式2〉:〈表达式3〉 5. 其他运算符 条件运算符(?:) 语法为:表达式1〉?〈表达式2〉:〈表达式3〉 运算方法:先计算〈表达式1〉的值,当〈表达式1〉的值为true时,则将〈表达式2〉的值作为整个表达式的值;当〈表达式1〉的值为false时,则将〈表达式3〉的值作为整个表达式的值。如: int a=1,b=2,max; max = a>b?a:b; //max等于2 强制类型转换符。将一个表达式的类型强制转换为某一指定数据类型。语法形式为: (〈类型〉) 〈表达式〉 《Java程序设计实用教程》朱战立

2.5.2 运算符的优先级 教材中的表2.8按优先级从高到低的次序列出Java语言中的所有运算符 表中结合性一列中的“左右”表示其运算次序为从左向右,“右左”表示其运算次序为从右向左 《Java程序设计实用教程》朱战立

2.5.3 表达式 用运算符和圆括号把运算对象连接起来的、符合Java语言语法规则的式子称作表达式。有算术表达式、关系表达式、逻辑表达式、位表达式。 如: int i=5; (i<0)&(i>100) //结果为boolean型 (i-2)*8+5 //结果为int型 “Abcde”+“12345” //结果为String型 《Java程序设计实用教程》朱战立

2.6 流程控制语句 2.6.1 分支语句 2.6.2 循环语句 2.6.3 break语句和continue语句 2.6.4 return语句 《Java程序设计实用教程》朱战立

2.6.1 分支语句 分支结构是指程序按照当前的分支条件控制程序流程的执行。有:if语句和switch语句 《Java程序设计实用教程》朱战立

1. if语句 (1) 基本的if 语句 if (〈逻辑表达式〉 ) 〈语句组1〉; [else 〈语句组2〉;] if (n >= 1) { if (n <= 100) …… } else …… 《Java程序设计实用教程》朱战立

2. switch语句 switch语句是多个分支的流程控制语句。语法为: switch (〈表达式〉) { case〈常量1〉:〈语句组1〉; [break;] case〈常量2〉:〈语句组2〉; ……; [default:〈语句组〉] } 《Java程序设计实用教程》朱战立

3. switch语句中的break语句 switch语句本身并不能保证执行完一组case后的语句或语句组后,跳过随后的case判断,通常情况下,此时需要用break语句来跳过随后的case语句 break语句的语法形式是:break; switch语句中的break语句的语义是:跳过break语句所在位置随后所有的case语句,即结束switch语句的执行 《Java程序设计实用教程》朱战立

1. for语句 for语句的语法形式为: 〈循环体〉; 例 求1到10累加和 for(i = 1; i <= n; i++) sum = sum + i; 说明:无论是〈表达式1〉还是〈表达式2〉或者是〈表达式3〉,都可以任选 《Java程序设计实用教程》朱战立

2. while语句 while语句的语法形式为: while (〈逻辑表达式〉) 〈循环体〉; 求1到10累加和 int i = 1,n = 10,sum = 0; while (i <= n) { sum = sum + i; i++; } 《Java程序设计实用教程》朱战立

3. do-while语句 语法形式为: do { 〈语句组〉; } while (〈逻辑表达式〉) ; do-while语句和while语句的惟一差别是:do-while语句至少执行一次循环体(因其结束条件判断在后面进行);而对于while语句来说,当一开始循环条件就不满足时,循环体将一次也不执行 《Java程序设计实用教程》朱战立

4. 多重循环 如果循环语句的循环体内又有循环语句,则构成多重循环结构。多重循环结构中的循环语句,可以是前面讨论过的for语句、while语句或do-while语句中的任何一种 当应用问题复杂时,程序一般需要有多重循环结构,此时最重要的是要把程序设计的思路梳理清楚,而其中的每一重循环结构都可以按单重循环结构设计 《Java程序设计实用教程》朱战立

例 求1到10累加和 int i = 1,n = 10,sum = 0; while (i <= n) { sum = sum + i; i++; } 和for语句相比,while语句循环中的循环变量赋初值(i = 1)、循环过程结束判断(i <= n)和循环变量修改(i++)三个部分都有,只是放在了不同的地方 《Java程序设计实用教程》朱战立

2.6.2 循环语句 循环结构是指程序按照当前的循环条件控制程序流程的执行 Java语言有三种循环结构的语句:for语句、while语句和do-while语句 这三种循环语句虽然控制循环的方式不同,但实现循环的功能相同。换句话说,对于任何一个循环问题,这三种循环语句都可以实现。但是,不同的循环问题,使用这三种循环语句的简便程度不同。因此,一个好的程序设计者,应该学会针对不同的循环问题,选择最简便的循环语句 《Java程序设计实用教程》朱战立

2.6.3 break语句和continue语句 break语句通常是和switch语句或循环语句配合使用,continue语句通常是和循环语句配合使用。 break语句 continue语句 《Java程序设计实用教程》朱战立

1. break语句 break语句的语法形式是:break; 在循环语句中,break语句的功能是跳出循环体 《Java程序设计实用教程》朱战立

2. continue语句 continue语句的语法形式为: continue; continue语句主要用于循环语句中,continue语句的语义是:若循环体中遇到continue语句,则本次循环体的后续语句被忽略,回到循环条件判断处,判断是否执行下一次循环体。换句话说,continue语句仅跳过当前层循环体的剩余语句 《Java程序设计实用教程》朱战立

2.6.4 return语句 return语句的语法形式为: return [<返回值>]; 语义是:使函数返回原调用处,且带回返回值。如果函数为void类型,则return语句后没有<返回值>;如果函数为非void类型,则return语句后需要有<返回值>,并且<返回值>的类型必须和函数的类型一致。 当return语句不带<返回值>,并且位于函数的最后时,return语句可以省略 《Java程序设计实用教程》朱战立

2.7 程序注释 Java语言有三种形式的注释: 单行注释 // 注释内容 多行注释 /* …… 文件注释 多行注释内容 */ /**…… 文件注释内容 《Java程序设计实用教程》朱战立

2.8 数组 数组是连续内存单元中一组名字和数据类型相同的数据元素的有限集合。数组可以用来保存和处理一组数据类型相同的数据元素。数组中的每个数据元素称作一个数组元素 2.8.1 一维数组 2.8.2 二维数组 2.8.3 不规则的二维数组 《Java程序设计实用教程》朱战立

2.8.1 一维数组 一维数组的使用分三步:定义一维数组变量、为数组分配内存单元和使用数组元素。 1. 一维数组变量定义 1. 一维数组变量定义 一维数组变量定义的语法形式为: 〈数据类型〉〈数组名〉[]; 或 〈数据类型〉[]〈数组名〉; 例如, int[] a; 《Java程序设计实用教程》朱战立

2. 为数组分配内存单元 语法形式为: 〈数组名〉 = new 〈数据类型〉[〈长度〉]; 例如, a = new int[5]; 2. 为数组分配内存单元 语法形式为: 〈数组名〉 = new 〈数据类型〉[〈长度〉]; 例如, a = new int[5]; new运算符的语义是:向系统申请指定数据类型所需的内存单元空间,并返回所申请内存单元的首地址 在数组分配内存单元后,系统将自动给每个数组元素赋初值。并规定:数值类型的数组元素初值为0,逻辑类型的数组元素初值为false,类类型的数组元素初值为null 《Java程序设计实用教程》朱战立

3. 使用数组元素 一旦完成了定义数组变量和为数组分配内存单元后,就可以使用数组中的任意数组元素。数组元素由数组名、一对方括号、方括号中的整数数值(一般称作下标)组成。其中下标指出了希望操作的数组元素位置。下标由0开始,其最大值为用new运算符分配内存单元时规定的长度值减1。例如, a[0] = 10; 《Java程序设计实用教程》朱战立

一维数组示意图 《Java程序设计实用教程》朱战立

4. 引用类型 由一维数组示意图 可知,数组名表示的是系统为该数组分配内存单元的首地址。这样的数据类型称为引用类型 设有下列语句段: 4. 引用类型 由一维数组示意图 可知,数组名表示的是系统为该数组分配内存单元的首地址。这样的数据类型称为引用类型 设有下列语句段: int[] a; int x; a = new int[5]; a[0] = 10; x = 10 + a[0]; x = 10 + a; //错误,不兼容的类型 《Java程序设计实用教程》朱战立

5. 数组的简化使用方法 数组的定义和为数组分配内存空间两步可以结合起来。例如, int a[] = new int[ 5]; 5. 数组的简化使用方法 数组的定义和为数组分配内存空间两步可以结合起来。例如, int a[] = new int[ 5]; 数组元素的初始化赋值也可以和上述语句结合在一起完成,此时采用简写形式。例如, int a[] = {1,2,3,4,5}; 《Java程序设计实用教程》朱战立

6. 数组的长度 Java语言提供了length成员变量返回数组元素的个数,其使用方法为: 〈数组名〉.length 例如, int n; 6. 数组的长度 Java语言提供了length成员变量返回数组元素的个数,其使用方法为: 〈数组名〉.length 例如, int n; int a[] = new int[ 10]; n = a.length; //n等于10 《Java程序设计实用教程》朱战立

7. 数组长度的重新定义 一旦为数组规定了长度,在程序中使用数组时就不能超过所规定的长度,否则编译时会给出“数组下标越界”的语法错误 7. 数组长度的重新定义 一旦为数组规定了长度,在程序中使用数组时就不能超过所规定的长度,否则编译时会给出“数组下标越界”的语法错误 上述情况下,可以用new运算符重新为数组分配内存单元。例如, a[] = new int[5]; a = new int[ 10]; a[8] = 100; 《Java程序设计实用教程》朱战立

2.8.2 二维数组 二维数组的使用也分三步:定义数组变量、为数组分配内存单元和使用数组元素 。如: int a[][]; a = new int[3][3]; a[0][0] = 10; 或 int a[][] = new int[3][3]; 或 int a[][] = {{1,2,3},{4,5,6},{7,8,9}}; 《Java程序设计实用教程》朱战立

2.8.3 不规则的二维数组 可以把二维数组中的每个一维数组定义为不同的元素个数,这样就可以构成不规则的二维数组。 具体设计方法是:先定义一个二维数组变量,并指定第一维的元素个数,然后再分别为第二维数组(即第一维数组的每个数组元素)分配不同的内存单元。由于此时是分别为第二维数组分配内存单元,并且第二维数组所分配的内存单元个数可以是不相同的,因此就构成了不规则的二维数组 《Java程序设计实用教程》朱战立

不规则二维数组举例 例如 int twoDim [][] = new int [4][]; //定义二维数组,并指定第一维的元素个数 《Java程序设计实用教程》朱战立

不规则二维数组示意图 《Java程序设计实用教程》朱战立

2.9 字符串 字符串是n(n≥0)个字符组成的序列。如"abc"就是一个长度为3、其值为abc的字符串 Java中的字符串变量用String来定义 (1)字符串常量。一对双引号括起来的任何字符序列都是一个字符串常量,如""和"sum" 都是字符串常量 (2)字符串变量。下面语句定义了两个字符串变量str1和str2: String str1, str2; 或: String str = "abc"; 或: String[] v = new String[3]; 《Java程序设计实用教程》朱战立

2.9 字符串 (3)字符串变量名。和数组名一样,字符串变量名也是引用类型,即字符串变量名是指向内存中一片连续内存单元的首地址。 (4)字符串的赋值。字符串变量定义后可以给该变量赋值。例如: String str; str = "abc"; 或: String str = "abc"; (5)字符串的连接运算。例如: String str = "abc" + "def"; 《Java程序设计实用教程》朱战立

2.9 字符串 (6)标准输出中的字符串 前面已经多次使用了系统的标准输出System.out.print()和System.out.println()。这两个输出语句要求的参数是字符串或字符串表达式。例如, String str = "abc"; System.out.print("def"); System.out.print(str); System.out.print(str + "def"); 都是合法的输出语句 《Java程序设计实用教程》朱战立