第3章 Java语言基础

Similar documents
Microsoft Word - 01.DOC

Microsoft Word - 正文.doc

untitled

CC213

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

3.1 num = 3 ch = 'C' 2

JavaIO.PDF

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

FY.DOC

Java

《计算概论》课程 第十九讲 C 程序设计语言应用

新版 明解C++入門編

PowerPoint 演示文稿

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

没有幻灯片标题

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Guava学习之Resources

Microsoft PowerPoint - 03.Fortran程序设计基础1

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

EJB-Programming-4-cn.doc

使用MapReduce读取XML文件

PowerPoint 演示文稿

Chapter 9: Objects and Classes

《大话设计模式》第一章

Microsoft PowerPoint - course2.ppt

javaexample-02.pdf

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

任务 3 加法运算练习游戏 019 这就需要用到 C# 语言的基础语法, 如数据类型 运算符和控制语句, 还需要其他的常用控件 在此任务的完成过程中, 读者可以接触到 C# 的数据类型 变量常量 运算符 控制语句等基础语法, 掌握以上知识点及其在软件开发中的应用 3.2 相关知识 预定义

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

Microsoft Word - 投影片ch03

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

Microsoft Word - sy09_实验09_字符串和文本IO.docx

chp6.ppt

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基


Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

设计模式 Design Patterns

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

无类继承.key

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

Java 1 Java String Date

untitled

数据结构

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

untitled

chp2

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

暨南大学本科实验报告专用纸

while ((ch = fr.read())!= -1) { System.out.print((char) ch); fr.close(); 例 3: 用 BufferedReader 读 TXT 文件 public class FileReaderDemo3 { public static v

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

《C语言程序设计》教材习题参考答案

c_cpp

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

新・明解C言語入門編『索引』

(京)新登字063号

软件工程文档编制

Microsoft Word - ch04三校.doc

基于CDIO一体化理念的课程教学大纲设计

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

chap07.key

java2d-4.PDF

Chapter 9: Objects and Classes

3.1 Java 的数据类型 Java 支持以下四种不同的数据类型 : 基本数据类型 数组类型 类类型 接口类型 标识符 标识符可由编程者自由指定, 但需要遵循一定的编程约定 : 标识符可由字母 ( 包括 A-Z a-z 汉字 日文片假名 平假名 朝文 ) 数字和两个特殊字符下划线 (_

全国计算机技术与软件专业技术资格(水平)考试

nooog

第一章 Java简介与开发环境的搭建

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

untitled

2015年计算机二级(C语言)模拟试题及答案(三)

大 綱 背 景 解 決 之 道 文 獻 探 討 建 置 貝 氏 網 路 研 究 結 果 結 論 2

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

内容介绍 6.1 任务预览 6.2 异常 6.3 异常种类与层次结构 6.4 异常处理代码块 try-catch-finally 6.5 throw 语句与 throws 子句 6.6 自定义异常类 6.7 异常处理代码块嵌套 6.8 错误与断言 6.9 本章小结 6.10 实训 6: 除法运算程序

Microsoft Word - CPE考生使用手冊 docx

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)

STRUCT Tag OptTag ID Tag ID 7..4 Declarators VarDec ID VarDec LB INT RB FunDec ID LP VarList RP ID LP RP VarList ParamDec COMMA VarList ParamDec Param

Microsoft Word - 新1-12.doc

EJB-Programming-3.PDF

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

51 C 51 isp 10 C PCB C C C C KEIL

《C语言程序设计》第2版教材习题参考答案

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

_汪_文前新ok[3.1].doc

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

Microsoft Word - A _ doc

2009年9月全国计算机等级考试二级Java真题及答案

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

Microsoft PowerPoint - string_kruse [兼容模式]

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Swing-02.pdf

Transcription:

第 3 章 Java 语言基础 第 1/55 页

习题 3 3. 8. 9. 13. 18. 实验 : 1. 实验 4( 实 P11~12) 2. 实验任务 : 1 例 3.1( 教 P30) 2 变量赋值 ( 教 P29) 3 编写两个缓冲区对应同一个输入流对象, 并键盘输入整型 a 和双精度 b, 求和 第 2/55 页

习题 3 3. 实验任务 : 1 实验 5( 实 P12~13) 2 实验 8( 实 P16~17) 3 实验 9( 实 P17~19) 4 设 x=5,y=-3,z=6, 试输出公式的值 : e z ( x 2 7 y 2 + 4 z e ) xz πz 3 x 2 y (15 x + z ) 式中,e 自然数,π 圆周率 第 3/55 页

z 习题 3 4. 实验任务 : = p 1 实验 7( 实 P15) 2 设 x=10,y=25,z=83, 试输出优化后公式的值 : z + 10 x = x z 1 = z + 3 将下多个公式合并成一个算式, 优化算式, 并输出 ( 变量值自行给出 ) p =, =, = +, i = i + 1 p m m i s x y = s = z = x * ( z m 1) 第 4/55 页

本章主要内容 数据类型 变量 基本类型变量 数据类型的转换规则 从键盘输入数据的语句格式 运算符 第 5/55 页

3.1 数据类型 数据类型的基本要素 数据的性质 ( 数据结构 ) 数据的取值范围 ( 字节大小 ) 数据的存储方式 参与的运算变量的属性 名字 类型 值 地址 第 6/55 页

3.1 数据类型 基本数据类型由程序设计语言系统所定义 不可再划分的数据类型 所占内存大小是固定的, 与软硬件环境无关 在内存中存放的是数据值本身 整型 : byte short int long 浮点型 : float double 逻辑型 : boolean 字符型 :char 引用数据类型 ( 复合数据类型 ) 在内存中存放的是指向该数据的地址, 不是数据值本身 类 数组 接口等 第 7/55 页

3.1 数据类型 整型 类型数据位范围 byte( 字节型 ) 8-128~127, 即 -2 7 ~2 7-1 short( 短整型 ) 16-32768~32767, 即 -2 15 ~2 15-1 int( 整型 )( 默认 ) 32-2 147 483 648~2 147 483 647, 即 -2 31 ~2 31-1 long( 长整型 )(l 或 L) 64-9 223 372 036 854 775 808~9 223 372 036 854 775 807, 即 -2 63 ~2 63 -l byte: 7 6 1 0 0 1 short: 15 14 13 9 8 7 6 2 1 0 0 1 第 8/55 页

浮点型标准计数法和科学计数法 类型数据位范围 float( 单精度浮点 )(f 或 F) 32 1.4E-45~3.4E+38 double( 双精度浮点 )( 默认 ) 64 4.9E-324~1.8E+308 float: 31 30 0 1 数据符号位 小数点 25 24 23 22 17 16 15 14 基数位 24bit 9 8 7 6 1 0 0 1 指数符号位 指数位 6bit 第 9/55 页

逻辑型 (boolean 布尔型 ) 只有 true( 真 ) 和 false( 假 ) 两个取值 true 和 false 不能转换成数字表示形式 占 1 个字节, 默认 false 第 10/55 页

boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined. boolean: 布尔数据类型只有两个可能的值 :true 和 false 对于简单的标记来跟踪真 / 假条件使用此数据类型 这种数据类型代表一个比特的信息, 但它的 大小 没有明确界定 ( 与 JVM 有关, 可能是字节, 也可能字符 ) 第 11/55 页

3.1 数据类型 逻辑型的可能存储结构 boolean: 字节寻址 7 6 1 0 0 1 0 1 0 1 位寻址 0 1 字寻址 15 14 0 1 0 1 9 8 7 6 1 0 0 1 0 1 0 1 0 1 0 1 0 1 位寻址 第 12/55 页

JVM 规范第 2 版 : Instead, expressions in the Java programming language that operate on boolean values are compiled to use values of the Java virtual machine int data type. Where Java programming language boolean values are mapped by compilers to values of Java virtual machine type int, the compilers must use the same encoding. 而 :Java virtual machine type int, whose values are 32-bit signed two'scomplement integers Arrays of type boolean are accessed and modified using the byte array instructions In Sun's JDK releases 1.0 and 1.1, and the Java 2 SDK, Standard Edition, v1.2, boolean arrays in the Java programming language are encoded as Java virtual machine byte arrays, using 8 bits per boolean element. 第 13/55 页

3.1 数据类型 逻辑型的可能存储结构 数据存储 : 31 30 25 24 23 22 17 16 15 14 9 8 7 6 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 数组存储 : [0] [1] 7 6 1 0 0 0 0 0 1 0 0 0 0 1 [n-1] 0 0 0 0 1 第 14/55 页

字符型 (char) 用来存储单个字符 采用的是 Unicode 字符集编码方案, 在内存中占 2 个字节 字符声明只能表示单个字符, 用单引号 Java 语言中所有可见的 ASCII 字符都可以用单引号括起来成为字符 字符型数据可以转化为整型 第 15/55 页

3.1 数据类型 编码方式 :ASCII 码 ( 字符 ) GB2312 国标编码 ( 汉字 ) Unicode 新的国际标准编码 ( 中英文 ) Unicode 字符采用 \u0000 ----\uffff 之间的十六进制表示 Unicode 字符表的前 128 个刚好是 ASCII 表 第 16/55 页

第 17 55页

第 18 55页

3.2 关键字与标识符 访问控制 private protected public 关类, 方法 abstract implements extends final class 教和变量修 interface native new static strictfp 材表饰符 synchronized transient volatile break continue case default do 3 程序控制 else for if instanceof return switch while 5 (错误处理 try catch throw throws finally 都包相关 import package 是boolean byte char double false 小基本类型 float int long null short 写true )变量引用 super this void 保留字 goto const enum. 键字( 保留字)见第 19/55 页

第 20/55 页

标识符用来表示变量名 类名 方法名 数组名和文件名的有效字符序列 规定 : 可以由字母 数字 下划线 ( _ ) 美元符号 ($) 组合而成 必须以字母 下划线或美元符号开头, 不能以数字开头 关键字不能当标识符使用 区分大小写 编码习惯 : 类名首字母大写, 变量 方法及对象首字母小写 第 21/55 页

整型常量 ( 八进制 十六进制 十进制长整型后需要加 l 或 L) 浮点型常量 ( 单精度后加 f 或 F, 双精度后加 d 或 D 可省略 ) 逻辑型常量字符型常量单引号 ( 转义字符见教材表 3.6) \n 换行 (\u000a) \t 水平制表符 (\u0009) \b 空格 (\u0008) \r 回车 (\u000d) \f 换页 (\u000c) \' 单引号 (\u0027) \" 双引号 (\u0022) \\ 反斜杠 (\u005c) \ddd 三位八进制 \uxxxx 四位十六进制 第 22/55 页

第 23/55 页

第 24/55 页

字符串常量双引号 常量的声明 final int MAX = 10; MAX = 20; // 错误 final float PI; PI = 3.14f; PI = 3.1415f; // 错误 第 25/55 页

3.4 变量 变量声明 初始化 赋值如 :int i, j=0; i = 8; float k; k = 3.6f; Java 语言程序中可以随时定义变量, 不必集中在执行语句之前 第 26/55 页

3.5 数据类型转换 数值型不同类型数据的转换 自动类型转换 1 转换前的数据类型与转换后的类型兼容 2 转换后的数据类型的表示范围比转换前的类型大 条件 2 说明不同类型的数据进行运算时, 需先转换为同一类型, 然后进行运算 转换从 短 到 长 的优先关系为 : byte short char int long float double 第 27/55 页

3.5 数据类型转换 强制类型转换如果要将较长的数据转换成较短的数据时 ( 不安全 ), 就要进行强制类型转换 强制类型转换的格式如下 : ( 欲转换的数据类型 ) 变量名 第 28/55 页

字符串型数据与整型数据相互转换 字符串转换成数值型数据 ( 见教材表 3.7) String MyNumber = "1234.56"; float MyFloat = Float.parseFloat(MyNumber); 第 29/55 页

数值型数据转换成字符串在 Java 语言中, 字符串可用加号 + 来实现连接操作 所以若其中某个操作数不是字符串, 该操作在连接之前会自动将其转换成字符串 所以可用加号来实现自动的转换 int MyInt=1234; // 定义整形变量 MyInt String MyString=""+MyInt; // 将整型数据转换成了字符串 第 30/55 页

由键盘输入的数据, 不管是文字还是数字,Java 皆视为字符串, 因此若是要由键盘输入数字则必须再经过转换 输入字符串 第 31/55 页

import java.io.*; public class class_name { // 类名称 public static void main(string[ ] args) throws IOException { String str; InputStreamReader inp; inp=new InputStreamReader(System.in); BufferedReader buf; buf=new BufferedReader(inp); str=buf.readline( ); } } 第 32/55 页

3.6 由键盘输入数据 这种输入数据的方式可变形为如下的格式 import java.io.*; public class class_name { // 类名称 public static void main(string[ ] args) throws IOException { String str; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); str=buf.readline( ); } } 第 33/55 页

由键盘输入的数据, 不管是文字还是数字,Java 皆视为字符串, 因此若由键盘输入数字则必须再经过转换 输入字符串 第 34/55 页

// appa_3.java 由键盘输入字符串 import java.io.*; // 加载 java.io 类库里的所有类 public class App3_3 { public static void main(string[ ] args) throws IOException { BufferedReader buf; String str; buf=new BufferedReader (new InputStreamReader (System.in)); System.out.print(" 请输入字符串 ;"); str = buf.readline( ); // 将输入的文字指定给字符串变量 str 存放 System.out.println(" 您输入的字符串是 :"+str); // 输出字符串 } } 第 35/55 页

输入数值由于从键盘输入的数据均被视为字符串, 所以从键盘上输入的数据, 必须先利用表 3.7 中所提供的方法进行转换后, 字符串的内容才会变成数值 第 36/55 页

//App3_4.java 由键盘输入整数 import java.io.*; public class App3_4 { public static void main(string[ ] args) throws IOException { float num; String str; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 请输入一个实数 :"); str=buf.readline( ); // 将输入的文字指定给字符串变量 str 存放 num= Float.parseFloat(str); // 将 str 转换成 float 类型后赋给 num System.out.println(" 您输入的数为 :"+num); } } 第 37/55 页

输入多个数据 // 方法 1:App3_5.java 由键盘输入多个数据 import java.io.*; public class App3_5 { public static void main(string[ ] args) throws IOException { int num1,num2; String str1,str2; InputStreamReader in; in= new InputStreamReader(System.in); BufferedReader buf; buf=new BufferedReader(in); System.out.print(" 请输入第一个数 :"); str1=buf.readline( ); // 将输入的内容赋值给字符串变量 str1 num1=integer.parseint(str1); // 将 str1 转成 int 类型后赋给 num1 System.out.print(" 请输入第二个数 :"); str2=buf.readline( ); // 将输入的内容赋值给字符串变量 str2 num2=integer.parseint(str2); // 将 str2 转成 int 类型后赋给 num2 System.out.println(num1+"*"+num2+"="+(num1*num2)); } } 第 38/55 页

为了简化输入操作, 从 Java SE 5 版本开始在 java.util 类库中新增了一个类专门用于输入操作的类 Scanner, 可以使用该类输入一个对象 import java.util.*; public class class_name { // 类名称 public static void main(string[ ] args) { Scanner reader=new Scanner(System.in); double num; num=reader.nextdouble( ); } } 第 39/55 页

在该结构中用创建的 reader 对象调用 nextdouble( ) 方法来读取用户从键盘上输入的 double 型数据, 也可用 reader 对象调用下列方法, 读取用户在键盘上输入的相应类型的数据 : nextbyte( ) nextdouble( ) nextfloat( ) nextint( ) nextlong( ) nextshort( ) next( ) nextline( ) 第 40/55 页

输入多个数据 // 方法 2:App3_6.java 由键盘输入多个数据 import java.util.*; // 加载 java.util 类库里的所有类 public class App3_6 { public static void main(string[ ] args) { int num1; double num2; Scanner reader=new Scanner(System.in); System.out.print(" 请输入第一个数 :"); num1= reader.nextint( ); // 将输入的内容做 int 型数据赋值给变量 num1 System.out.print(" 请输入第二个数 :"); num2= reader.nextdouble( ); // 将输入的内容做 double 型数据赋值给变量 num2 System.out.println(num1+"*"+num2+"="+(num1*num2)); } } 第 41/55 页

上例中,reader 对象还可以调用 nextbyte( ) nextfloat( ) nextdouble( ) nextint( ) 等 nextx ( ) 被调用后, 则等待用户在命令行输入数据并按回车键 ( 或空格键 Tab 键 ) 确认 next( ) 和 nextline( ) 方法表示等待用户在键盘上输入一行文本, 然后返回一个 String 类型的数据 第 42/55 页

输入多个数据利用 Scanner 类, 使用 next( ) 和 nextline( ) 方法接收从键盘输入字符串型数据 //App3_7.java 由键盘输入多个数据 import java.util.*; // 加载 java.util 类库里的所有类 public class App3_7 { public static void main(string[ ] args) { String s1,s2; Scanner reader=new Scanner(System.in); System.out.print(" 请输入第一个数 :"); s1= reader.nextline( ); // 将输入的内容作为字符型数据赋值给变量 s1 System.out.print(" 请输入第二个数 :"); s2= reader.next( ); // 按 Enter 键后 next( ) 方法将回车符和换行符去掉 System.out.println(" 输入的是 "+s1+" 和 "+s2); } } 第 43/55 页

Scanner 类,next( ) 和 nextline( ) 方法区别 next( ) 和 nextxxx( ): 一定要读取到有效字符后才可以结束输入, 对输入有效字符之前遇到的空格键 Tab 键或 Enter 键等结束符, 它将自动将其去掉, 只有在输入有效字符之后, 该方法才将其后输入的这些符号视为分隔符 nextline( ): 结束符为 Enter 键, 即返回 Enter 之前的所有字符 第 44/55 页

3.7 算数运算符与表达式 按照运算符功能来分, 基本的运算符有下面几类 算术运算符 + - * / % ++ -- 关系运算符 > < >= <= ==!= 逻辑运算符! && & ^ 位运算符 >> << >>> & ^ ~ 赋值运算符 = 扩展赋值运算符, 如 += /= 等 条件运算符? : 其他运算符包括分量运算符. 下标运算符 [ ] 实例运算符 instanceof 内存分配运算符 new 强制类型转换运算符 ( 类型 ) 方法调用运算符 ( ) 等 第 45/55 页

3.7.1 算术运算符 + - * / % +( 取正 ) -( 取负 ) ++ -- 两个整数相 /, 结果为整数 对于两个整数之间的除法和取模运算, 则式子 (a/b)*b+(a%b)==a 是恒成立的 第 46/55 页

3.7.1 算术运算符 对取模运算符 % 来说, 其操作数可以为浮点数 即 a % b 与 a-((int)(a/b)*b) 的语义相同, 这表示 a % b 的结果是除完后剩下的浮点数部分 如 37.2%10=7.2 ( 默认双精度 ) 值得注意的是 Java 语言对加运算符进行了扩展, 使它能够进行字符串的连接, 如 "abc"+"de", 得到字符串 "abcde" 第 47/55 页

3.7.2 关系运算符 > < >= <= ==!= 不能在浮点数之间作 == 的比较 第 48/55 页

与 或 非 异或 同或示意图 E K1 K2 L 开关合上 :true, 灯亮 :true R 或 电路 与 电路 非 电路 true true true true 异或 电路 同或 电路 第 49/55 页

! && & ^( 异或 ) 第 50/55 页

逻辑运算和关系运算的关系非常紧密, 关系运算的结果为布尔型, 逻辑运算的操作数与运算结果都是布尔型 简洁运算 (&& ) 与非简洁运算 (& ) 的区别在于 : 非简洁运算在必须计算完左右两个表达式之后, 才取结果值 ; 而简洁运算可能只计算左边的表达式而不计算右边的表达式, 即对于 &&, 只要左边表达式为 false, 就不计算右边表达式, 则整个表达式为 false; 对于, 只要左边表达式为 true, 就不计算右边表达式, 则整个表达式为 true 第 51/55 页

位运算符 : >> << >>> & ^ ~ 第 52/55 页

赋值运算符 : = 扩展赋值运算符 (+= 等 ) 自动类型转换 右结合性 第 53/55 页

3.7.5 条件运算符和字符串运算符 条件运算符 : 表达式 1? 表达式 2 : 表达式 3 字符串运算符字符串运算符 + 是以 String 为对象进行的操作 运算符 + 完成字符串连接操作, 如果必要, 则系统自动把操作数转换为 String 型 float a = 100f; // 定义变量 a 为浮点型 System.out.println("The value of a is" + a + "\n"); // 系统自动将 a 转换成字符串 String s1 = ""; s1 += a; // s1=s1+a, 若 a 非 String 型, 自动转换为 String 型 第 54/55 页

3.7.6 表达式及运算符的优先级 结合性 第 55/55 页