关于1.5,1.6 java处理基本对象类型cache的问题:
1 让人感觉混乱
2 很多新手容易出错,导致难找错误,误导。
(注意这里不是谈equals的问题,这个大家都知道)
- Long a = 2l;
- Long b = 2l;
- //结果为ture
- System.out.println(a == b);
- Long c = 128l;
- Long d = 128l;
- //结果为false
- System.out.println(c == d);
- //我觉得这里很容易让人产生错误,如果不去看源代码,还真不知道原因。
- //始终觉得,前者应当返回假才好些
- //实际上-128->127在java里定义了静态数据,所以这个值之内用自动封箱的给值方法,总是相等。