- 浏览: 138381 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
nishwd123:
受益匪浅,多谢楼主细心讲解.
Hibernate、Spring和Struts工作原理及使用理由 -
doublelcf:
写得真好。全面,流畅。清晰
Hibernate、Spring和Struts工作原理及使用理由
首先:
Java代码
Java代码
原因:
1。java在编译的时候 Integer a = 100; 被翻译成-> Integer a = Integer.valueOf(100);
2。比较的时候仍然是对象的比较
3。在jdk源码中
Java代码
而
Java代码
这边是java为了提高效率,初始化了-128--127之间的整数对象
所以在赋值在这个范围内都是同一个对象。
再加一句
Integer a = 100;
a++;
//这边a++是新创建了一个对象,不是以前的对象。
Java代码
打印就是false .
对于127--128没有多大关系,但是在这范围之外就影响性能了吧 !
Java代码
public static void main(String []args) { Integer a = 100; Integer b = 100; System.out.println(a==b); //true }
Java代码
public static void main(String []args) { Integer a = 200; Integer b = 200; System.out.println(a==b); //false }
原因:
1。java在编译的时候 Integer a = 100; 被翻译成-> Integer a = Integer.valueOf(100);
2。比较的时候仍然是对象的比较
3。在jdk源码中
Java代码
public static Integer valueOf(int i) { final int offset = 128; if (i >= -128 && i <= 127) { // must cache return IntegerCache.cache[i + offset]; } return new Integer(i); }
而
Java代码
private static class IntegerCache { private IntegerCache(){} static final Integer cache[] = new Integer[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) cache = new Integer(i - 128); } }
这边是java为了提高效率,初始化了-128--127之间的整数对象
所以在赋值在这个范围内都是同一个对象。
再加一句
Integer a = 100;
a++;
//这边a++是新创建了一个对象,不是以前的对象。
Java代码
public static void main(String []args) { Integer a = 100; Integer b = a; a++; System.out.println(a==b); }
打印就是false .
对于127--128没有多大关系,但是在这范围之外就影响性能了吧 !
发表评论
-
Java中serialVersionUID
2012-11-26 13:27 845Java中serialVersionUID serialV ... -
ArrayList数组对象排序
2012-11-13 21:53 1411POJO package com.test.compara ... -
Java堆和栈的区别 equals 和 == 的区别
2012-11-07 12:10 800Java堆和栈的区别 equals ... -
Cookie,Session,Application用法及区别
2012-05-22 15:20 2804一.Cookie 首先,Cookie的作用域为 ... -
static 的用法
2012-05-22 13:58 881static 代码块应用 package com.ut ... -
finally解析
2012-05-22 13:47 934一.finally 中的语句什么 ... -
java 断言 assert 初步使用:断言开启、断言使用
2012-05-04 20:43 1529java 断言 assert 初步使用:断言开启、断言使用 ... -
java 定时任务实现
2012-04-05 22:41 3654java.util.Timer定时器,实际上是个线程,定时调度 ... -
Servlet上传文件,commons-fileupload
2012-03-02 11:17 4795Servlet上传文件,commons-fil ... -
堆与栈的区别
2012-02-24 11:58 924堆和栈的区别 全局,静态,new产生的变量都在堆中动态分 ... -
在Java中用单例模式有什么好处
2012-01-30 19:46 1299Java Singleton模式主要作 ... -
JAVA单例模式的几种实现方法
2012-01-30 19:41 8731 饿汉式单例类.在类初始化时,已经自行实例化 clas ... -
jsp中的注释<!-- -->内容中不能包含--
2011-11-23 17:45 895jsp中的注释<!-- -->内容中不能包含-- ... -
ibatis和hibernate的区别
2011-08-15 13:34 626ibatis和hibernate的区别 ... -
equals和"=="浅析
2011-02-24 22:30 794==操作符专门用来比较 ... -
java中的重写与重载
2011-02-21 13:59 855方法的重写Overriding和重载Overloading是J ... -
MyEclipse生成WAR包并在Tomcat下部署发布
2011-02-18 22:56 2267右键选中项目,选择export。 然后选择J2EE-> ... -
JPA详解
2011-02-17 08:54 2004JPA全称Java Persistence API.JPA通过 ... -
comparable和comparator的区别
2011-02-16 17:59 1209两者区别: 1) Comparable接 ... -
Freemarker网站静态化实现
2011-02-15 14:26 1045转载自http://www.iteye.com/topic/4 ...
相关推荐
java中Integer包装类的详细讲解(java二进制操作,所有进制转换) 十进制转成二进制 十进制转八进制 十进制转十六进制 十六进制转成十进制 十六进制转成二进制 八进制转成十进制 等等所有进制转换和操作
学习文档_JAVA中Integer和Byte转换
Java中的Integer是int的包装类型,下面这篇文章主要给大家介绍了关于java中Integer包装类装箱的一个细节的相关资料,文中介绍的这个细节挺重要的,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...
以下是对java中Integer传参方式的问题进行了详细的介绍,需要的朋友可以过来参考下
项目里遇到的小问题的 整理
本文主要介绍了Java Integer两种转int方法比较。具有很好的参考价值,下面跟着小编一起来看下吧
主要介绍了JAVA中Integer值的范围实例代码,需要的朋友可以参考下
ID自增的java类方法,不用数据库主键自增的可以考虑试试这个,自己定义方式
本文通过代码给大家讲解了JAVA中Integer.valueOf, parsetInt() String.valueOf的区别和结果,需要的朋友可以参考下
HugeInteger.java
对JAVA中的int类型和integer类型进行透彻分析的一个文档 很有帮助的哦 亲!
JAVA-int和Integer的区别1.zip
Java8 将List<Integer> 转换成以逗号分割的String字符串。 一篇文章带你快速了解!
主要介绍了JAVA Integer类型自加实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java中int和Integer的区别.doc
Java中int和Integer的区别
JAVA Integer == equal 比较 doc 比较大小 是否相等
细数java中Long与Integer比较容易犯的错误总结.docx
simple to compare two integer in java