- 对于对象a和b,若使用a=b,那么a和b都将指向原本只有b指向的那个对象。操作一个对象的引用,另一个引用也会被改变,因为它们指向同一个对象。(P40)
直接操作对象内的域容易导致混乱,而且违背了良好的面向对象程序设计的原则。 - 向方法传递的对象是引用而不是副本,所以在方法中操作对象,对象会发生改变。
- 创建随机数对象:
Random random = new Random();
参数是随机数种子(seed),如果不提供参数,程序就会使用时间作为随机数种子。
获得随机数,可以用random.nextInt()
等方法。
4 所有的对象都有equals()方法,作用是比较值,但基本类型没有这个方法。
自定义的类中,equals()方法需要重写才能表现出我们希望的行为,否则还是比较引用的默认行为。
- 非布尔值不能用在逻辑表达式中,这一点与C/C++不同。
这是因为Java不会自动将其他类型转为布尔类型,这也能有效避免while(x = y){}这类死循环。 - 布尔值与字符串拼接,布尔值会转为文本形式。
- 使用直接常量,编译器可以准确地知道要生成什么类型的数。直接常量:
类型 | 表示方式 |
---|---|
十六进制数 | 0x开头 |
八进制数 | 0开头 |
long型 | L/l结尾(不推荐小写) |
float型 | F/f结尾 |
double型 | D/d结尾 |
- 表示指数,可以在中间写一个E,例如1.39E-43f,表示1.39*10^43,而且是float型。
- 将小数强转为整数,小数点后面的值会被去掉,而不是四舍五入。
发表评论