黑马程序员技术交流社区

标题: 关于Integer的小问题。 [打印本页]

作者: 李哲    时间: 2012-3-20 11:03
标题: 关于Integer的小问题。
for (int x=0;x<chs.length ;x++ )
                {
                        int count=0;
                        if(!(chs[x]>='a'&&chs[x]<='z'||chs[x]>='A'&&chs[x]<='Z'))
                                continue;
                        Integer value=tm.get(chs[x]);//value是一个对象?把值赋给一个对象?
                        if (value!=null)                       
                                count=value;
                                count++;
                                tm.put(chs[x],count);       
                }

其中
Integer value=tm.get(chs[x]);//value是一个对象?把值赋给一个对象?
的详细转化是怎样的呢?

作者: 李哲    时间: 2012-3-20 11:07
哦。不好意思。我现在明白了。tm是一个map集合,那么tm.get(chs[x]);的值也是一个对象,对象赋给对象,挺合适的。我看错了。
作者: 贠(yun)靖    时间: 2012-3-20 17:02
就算是复制 int类型的数据 也是没有错误,这涉及到了自动拆箱的问题   感觉你对这没掌握,这是前两天我回答别人的  你看看吧

Integer a = 1; 自动装箱 是 Integer a =new Integer(1); 这就是自动装箱  
  而Integer a = 1; 是1.5的新特性,a是一个引用。右边的1其实应该看做是一个对象
  a = a+1   先把a自动拆箱  Integer.valueOf(a); 通过Integer类调用它自身的静态方法valueOf()
      把a引用换成a变量  也就是自动拆箱  然后int型a和1相加的和 在通过上面的
          自动装箱最后把对象的地址赋给等号左边的a引用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2