thinking in java 第三章笔记
来源:互联网 发布:拍大师软件下载 编辑:程序博客网 时间:2024/05/16 08:37
1.对于主数据类型的赋值是非常直接的。由于主数据类型容纳了实际的值,而且并非指向一个对象的句柄,所以在为其赋值的时候,可将来自一个地方的内容赋值到另一个地方。
2.对一个对象赋值时,我们真正操作的是它的句柄。若 从一个对象到另一个对象 赋值,实际上是将句柄从一个地方复制带另一个地方。这意味着假若为对象使用"C=D",那么C和D最终都会指向最初只有D才指向的那个对象。
3.检查对象是否相等。==和!=适用于所有对象,比较的是对象的句柄。例如Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1==n2);输出false。因为两对象的句柄不同。若想比较两个对象的实际内容是否相同,应该使用所有对象都使用的equals()方法,不适用于主数据类型,那些主数据类型直接使用==和!=即可。
System.out.println(n1.equals(n2));输出true。如果自己创建类例如
class Value { int i;}public class Equals { public static void main(String[] args){ Value v1 = new Value(); Value v2=new Value(); v1.i=v2.i=10; System.out.println(v1.equals(v2)); //false }}equals()的默认行为是比较句柄,除非在自己的新类中改变了equals(),否则不可能表项出我们希望的行为。大多数Java类库都实现了equals(),所以实际比较的是对象的内容,而非它们的句柄。
4.与C及C++不同,不可将一个非布尔值当做布尔值在逻辑表达式中使用。
5.java添加了一种“无符号”右移(>>>),无论正负,都在高位添0。若对char,byte和short进行移位处理,那么在进行移位之前,它们会自动转换为一个int。
6.while(x=y){} 在java中这个表达式的结果并不是布尔值,而编译器期望的是一个布尔值,而且不会从一个int数值中转换得来。所以在编译时,系统就会提示出现错误。
7.将float或double值造型成整数值后,总是将小数部分"砍掉",不做任何进位处理。
8.Math.random()产生的范围是[0,1)
- thinking in java 第三章笔记
- Thinking in Java 第三章
- Thinking In Java笔记(第三章 操作符)
- Thinking in Java 笔记(第三章 控制程序流程)
- thinking in java 阅读笔记 第三章 程序控制流程
- #Thinking in Java阅读笔记# 第三章 操作符
- thinking in java 第三版简单笔记
- Thinking in Java:第三章-操作符
- Thinking in Java笔记
- Thinking in java 笔记
- thinking in java 笔记
- thinking in java 笔记
- thinking in java笔记
- Thinking in Java【笔记】
- Thinking in Java 笔记
- 《Thinking in Java》笔记
- Thinking in Java笔记
- Thinking in Java-笔记
- 一个程序员的爱情表白书(娱乐一下)
- 7种对控件访问方式
- MFC对话框应用程序中谷歌CEF浏览器内核的使用
- 简单解决oracle 11g安装需要的libmpfr.so.1与libppl.so.7和libppl_c.so.2
- Home Work
- thinking in java 第三章笔记
- 風火家人
- NMEA协议解析
- 阿拉伯数字小写金额转换成中文大写金额C程序说明
- Deepin 2014 Sun-jdk 安装配置
- 几何画板测试
- 获取远程的字符串(请求一个URL, 返回这个请求页面的页面数据)
- 德国7:1巴西的启示
- 正确理解ThreadLocal