《Java编程思想》读书笔记3.操作符
来源:互联网 发布:演讲书籍推荐知乎 编辑:程序博客网 时间:2024/06/15 06:38
第3章 操作符
3.1 更简单的打印语句
……
3.2 使用Java操作符
基本类型 +
-
*
/
=
所有对象 =
==
!=
String类 +
+=
3.3 优先级
用括号明确
3.4 赋值
基本数据类型a=b
复制值
对象c=d
复制引用,指向同一对象
方法调用中的别名问题
对象传递给方法时仅传递引用
3.5 算术操作符
Random rand = new Random(47); //提供种子int j = rand.nextInt(100) + 1; //1~100
一元加、减操作符 x = a * (-b); //加括号更明确
一元加号:将较小类型的操作数提升为int
3.6 自动递增和递减
前缀/后缀递增/递减
3.7 关系操作符
测试对象的等价性 ==
!=
仅比较对象的引用
对象使用equals()
方法
但自建类虽覆盖equals()
方法,默认是比较引用
3.8 逻辑操作符
浮点数的比较是非常严格的
短路
一旦能够明确整个表达式的值就不再计算余下部分 boolean b = (0 < 1) && (2 < 2) && (2 < 3); //仅计算前两项
3.9 直接常量
int i1 = 0x2f; // Hexadecimal (lowercase)int i2 = 0X2F; // Hexadecimal (uppercase)int i3 = 0177; // Octal (leading zero)long n1 = 200L; // long suffixlong n2 = 200l; // long suffix (but can be confusing)float f2 = 1F; // float suffixfloat f3 = 1f; // float suffixdouble d1 = 1d; // double suffixdouble d2 = 1D; // double suffix
Integer.toBinaryString(i1);Long.toBinaryString(l1);Integer.toBinaryString(c); // char c,较小的类型将自动转换为int
指数记数法
float expFloat = 1.39e-43f; // 1.39*10^(-43)double expDouble = 47e47d; // 'd' is optional
指数作double
处理,用尾随的f
转换成float
3.10 按位操作符 &
与 |
或 ^
异或 ~
非 &=
|=
^=
布尔类型不能执行按位“非”,对布尔值按位操作不会“短路”
3.11 移位操作符 <<
<<=
左移位,低位补0 >>
>>=
“有符号”右移位 >>>
>>>=
“无符号”右移位,高位插入0 char
、byte
或short
移位会先转为int
,结果也是int
,>>>=
赋值给原来类型会被截断
二进制表示形式 有符号的二进制补码
3.12 三元操作符if-else boolean-exp ? value0 : value1
可读性差
3.13 字符串操作符+
和+=
字符串起头,后续操作数都是字符串型
e.g. s + i1 + i2 + i3; // s for String, i for int
int + String
为String
类型
int x = 0;print("" + x); // "" + x, shorthand for Integer.toString(x)
3.14 使用操作符时常犯的错误 while (x = y) {} // 编译错误,int不会自动转换成boolean,除非x和y都为布尔值
3.15 类型转换操作符
窄化转换 必须显式否则报错
扩展转换 不必显式 boolean
不允许进行任何类型转换
截尾和舍入
截尾 浮点转换为整型
舍入 Math.round();
提升
执行算术运算或按位运算,类型比int
小会转换成int
,结果也是int
表达式中出现的最大数据类型决定结果的数据类型
3.16 Java没有sizeof
因为所有数据类型在所有机器大小相同
3.17 操作符小结
short x, y;x = (short)(x + y); // 显式转换
复合赋值(如+=
)不需要类型转换
乘法溢出不会报错
3.18 总结
……
- 《Java编程思想》读书笔记3.操作符
- java编程思想读书笔记三:操作符
- 《Java编程思想》读书笔记之移位操作符
- Java编程思想读书笔记——操作符
- Java编程思想读书笔记
- java编程思想读书笔记
- java 编程思想 读书笔记
- <<java编程思想>>读书笔记
- java编程思想读书笔记
- java编程思想读书笔记
- 《Java编程思想》读书笔记
- Java 编程思想 - 读书笔记
- JAVA编程思想读书笔记
- 《java编程思想》读书笔记
- java编程思想读书笔记
- java 编程思想 读书笔记
- 《Java编程思想》读书笔记
- Java IO ZIP文档操作 Java编程思想读书笔记
- AndroidManifest.xml文件解析
- 不是每个人都适合linux
- iOS经典讲解之NSNotification(通知)
- 多叉树的查找(广度优先遍历)
- 实现接口Runnab创建多线程
- 《Java编程思想》读书笔记3.操作符
- CygWin遇到WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
- 0922第三方应用百度+友盟
- HDU 3966 - Aragorn's Story(树链剖分)
- 往NSMuArray和NSMutableDictionary填充数据
- 基于Kaggle数据的词袋模型文本分类教程
- MRC
- 两种线程创建的比较
- 设置NavigationBar标题的颜色