我被Java包装类教育了(Long和Integer)
2016-02-02 00:00
330 查看
摘要: Long和Integer有点差别
在最近的开发中,我发现包装类存在一个问题 public class test { public static void main(String[] args) { Long l =100l; Long l2 =100l; System.out.println(l==l2); Long l3 = 128l; Long l4 = 128l; System.out.println(l3==l4); } } 输出的结果是: true false 原因是:Long 会为数据创建一个初始打小为1个字节(大小为-128~127)的空间存放0或1的二进制的数据, 但是当超过这个容量时,他会重新创建数据的容量在堆内存中new出来,我之所以说他很坑, 还是因为小编没过多的了解底层的实现原理,导致了小编在数据Id比较时出错, 本地的数据源ID值都比较小,实地服务器上的数据却很大, 小编我可谓是煞飞苦心呀,发现了这个问题,之后人都傻掉了, 原来是这样的错误,还有一个就是在集合中可能用到 public class test { public static void main(String[] args) { List<Long> list = new ArrayList(); Long l =100l; Long l2 =100l; list.add(l); list.add(l2); System.out.println(list.get(0)==list.get(1)); Long l3 = 128l; Long l4 = 128l; list.add(l3); list.add(l4); System.out.println(list.get(2)==list.get(3)); } } 输出时: true false
相关文章推荐
- C#调用Java类的实现方法
- 最常用的1000个Java类(附代码示例)
- springMVC 自动将form 提交对象型数据转为Object对象数据
- 遍历Map集合
- java字节读入数据并进行排序后输出
- 深入研究java.lang.Class类
- 深入研究java.lang.Object类
- java学习之类-this,类变量,类方法
- 声明对象和实例化对象的区别
- 普通java类获取根路径的方法
- php接收二进制文件
- php接收二进制文件
- 什么是Java类的多态性?【郑州尚学堂】
- Java原始类型提供哪些封装类
- Java基础--高级类特性
- Java基础--Java类设计
- Spring集合的注入
- 超级容易理解!!!Java的面向对象思想———类与对象。
- 利用Tensorflow读取二进制CIFAR-10数据集
- 详解java类的生命周期