MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

值和引用

Posted on 2011-01-02 01:32 leekiang 阅读(221) 评论(0)  编辑  收藏 所属分类: java
JDK1.6 
        Integer v1 = 100;
        Integer v2 
= 100;
        System.out.println(v1 
== v2); // 输出:true
        
        Integer w1 
= 200;
        Integer w2 
= 200;
        System.out.println(w1 
== w2); // 输出:false

        Integer s1 
= new Integer(100);
        Integer s2 
= new Integer(100);
        System.out.println(s1 
== s2); // 输出:false
        
        String str1
="test";
        String str2
="test";
        System.out.println(str1
==str2);// 输出:true
        
        String nstr1
=new String("aa");
        String nstr2
=new String("aa");
        System.out.println(nstr1
==nstr2); // 输出:false

原因:当给Integer变量直接赋整数值时,如果这个数值位于[-128,127]内,JVMJava Virtual Machine)就直接使用cache中缓存的Integer对象,否则,JVM会重新创建一个Integer对象。

参考:
http://www.cnblogs.com/bitfan/archive/2010/10/24/1859687.html

只有注册用户登录后才能发表评论。


网站导航: