第
3
章控制程序流程
“
就象任何有感知的生物一样,程序必须能操纵自己的世界,在执行过程中作出判断与选择。
”
第一部分:
Java
运算符
“=”
、
“
==
”
和
“!=”
能操作所有对象。
String
类支持
“+”
和
“+=”
。
>
,
<
,
>=
,
<=
,比较不适用于
boolean
类型。
其余运算符都只能操作
“
基本数据类型
”
(
Primitives
)。
一、
赋值运算符:=
1.
赋值运算符(
=
),它的意思是
“
取得右边的值,把它复制到左边
”
。右边的值可以是任何常数、变量或者表达式,只要能产生一个值就行。但左边的值必须是一个明确的、已命名的变量。也就是说,它必须有一个物理性的空间来保存右边的值。
2.
对主(
Primitives
)数据类型的赋值。主类型容纳了实际的值,可将一个地方的内容复制到另一个地方。例如,假设为主类型使用
“A=B”
,那么
B
处的内容就复制到
A
。若接着又修改了
A
,那么
B
根本不会受这种修改的影响。
3.
对一个对象赋值,我们真正操作的是它的句柄。所以倘若
“
从一个对象到另一个对象
”
赋值,实际就是将句柄从一个地方复制到另一个地方。这意味着假若为对象使用
“C=D”
,那么
C
和
D
最终都会指向最初只有
D
才指向的那个对象。
Assignment.java
4.
扩展赋值运算符
:
二、
算术运算符:
+
,―,
*
,
/
,
%
,
++
,――
1.
整数除法会直接砍掉小数,而不是进位。
2.
前递增和前递减(如
++A
或
--A
),会先执行运算,再生成值。后递增和后递减(如
A++
或
A--
),会先生成值,再执行运算。
例:
AutoInc.java
三、
关系运算符:
>
,
<
,
>=
,
<=
,==,
!=
1.
关系运算符生成的是一个
“
布尔
”
(
Boolean
)结果。它们评价的是运算对象值之间的关系。若关系是真实的,关系表达式会生成
true
(真);若关系不真实,则生成
false
(假)。
2.
检查对象是否相等
1)
==和
!=
比较的是对象句柄。例:
Equivalence.java
2)
equals()
方法。
[Usage
:
n1.equals(n2)]
例:
EqualsMethod.java
ü
不适用于
“
主类型
”
。
注意:可以比较封装器类型和主类型和常数。
ü
当用
equals()
方法进行比较时,对类
File
、
String
、
Date
及封装类(
Wrapper Class
)来说,是比较类型及内容而不考虑引用的是否是同一个实例;
ü
equals()
的默认行为是比较句柄。要想比较对象必须重新实现它例:
EqualsMethod2.java
ü
大多数
Java
类库都实现了
equals()
,所以它实际比较的是对象的内容,而非它们的句柄。
四、
逻辑运算符:
&,|,!,^,&&,||
1.
只能应用于布尔值。不可将一个非布尔值当作布尔值在逻辑表达式中使用。
2.
逻辑运算符功能
!
--
逻辑非
& --
逻辑与
|
--
逻辑或
^
--
逻辑异或
&&--
短路与
|| --
短路或
3.
短路:如果一个逻辑表达式的所有部分都不必执行下去,那么潜在的性能提升将是相当可观的。
&& --
第一个操作数为假则不判断第二个操作数
||
--
第一个操作数为真则不判断第二个操作数
例:
ShortCircuit.java
五、
按位运算符:
&
,
|
,
^
,
~
1.
按位运算符允许我们操作一个整数主数据类型中的单个
“
比特
”
,即二进制位。按位运算符会对两个自变量中对应的位执行布尔代数,并最终生成一个结果
.
2.
Java
整数进制转换
ü
Java
语言二进制数采用补码形式,数正负区分标志:符号位
ü
正数进制转换
Ø
十进制
----
二进制:除
2
取余、除尽为止
Ø
二进制
----
十进制:累加求和
ü
负数进制转换
Ø
十进制
----
二进制:
•取绝对值
•转换为二进制
•逐位取反
•加
1
Ø
二进制
----
十进制
•减
1
•逐位取反
•转换为十进制正数
•乘
-1
六、
移位运算符:
<<
,
>>
,
>>>
1.
移位运算符面向的运算对象也是二进制的
“
位
”
。可单独用它们处理整数类型(主类型的一种)
2.
左移
<<
ü
将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补
0
)
ü
"
分享到:
相关推荐
学习 Think In Java 之后的总结,一些学习笔记,提供学习
Python学习笔记--皮大庆,非常适合零基础入门。对应英文版本《How to think like a computer scientist》
java 很好的java学习文档,是学习java的入门基础,谢谢你的下载
Think in java 读书笔记 java教程
王者归来之--Java编程思想读书笔记 Think in java4th
很值得一看的书籍,很多人都推荐,适合有一定java基础的人学习提高
强烈推荐《How to think like a computer scientist》,对应中文版本《Python学习笔记--皮大庆》,非常适合零基础入门。
think in java第四版练习题第三章答案
Think in java 的代码源码,里面很详细的习题详解
Think in java 源码构建编译
学习think in java 时的第9章的例题及练习答案。 eclipse 工程包,运行可用!全自己敲的!
第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 ...
think in java 源码整理,应该算是比较全面的,有需要的朋友可以下下来看下
还记得thinkJava这本经典的书吧,现在把第三版提供给大家,中文。
JAVA思想中文版,CHM格式.
Think-In-Java-Code Thinking In Java 书中源码以及课后练习代码(从第7章开始随着看书的进度一步步更新) 第七章 复用类 7.1 组合语法 7.2 继承语法 7.2.1 初始化基类 7.3 代理 7.4 结合使用组合和继承 7.4.1 确保...
Think Data Structures in Java 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Think in Java 作者的文章 精辟见解
java think in java (英文第四版)至今为止 被认为是java教程之中权威作品之一
java进阶学习不可不看的一本书。不过这是thinkin java2