黑马程序员技术交流社区

标题: 不同数据类型的变量之间的赋值问题 [打印本页]

作者: 刘士林    时间: 2012-10-25 20:03
标题: 不同数据类型的变量之间的赋值问题
毕老师视频中有一个获取字符出现的次数的代码,有一处不明白,请哪位高手指点:
public static String charCount(String str)
{
     char[] ch=str.toCharArray();
     TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
     int count=0;
     for(int x=0;x<ch.length;x++)
     {
           if(!(ch[x]>='a'&&ch[x]<='z'||ch[x]>='A'&&ch[x]<='Z'))
         {
              continue;
              Integer value=tm.get(ch[x])
              if(!(value==null))
                  count=value;     //count是int型变量,而value是Integer型,怎么能把value赋给count呢?
              count++;
              tm.put(ch[x],count);//集合中存入的都是对象,但count是int型,不是对象,怎么能存呢?
             count=0;
            
         }
      }
}
如果不同数据类型的变量之间可以赋值,那是怎么转换的?

作者: 付维翔    时间: 2012-10-25 20:20
Integer是对象级别,而int是基本数据类型,两者可自动转换,即java自动装箱和拆箱机制
作者: 刘丽娜    时间: 2012-10-25 20:50
首先是int是一个基础类型,而Integer是一个类。
在Java中,如果把int变成integer的话,那么编译系统会生成一个Integer的对象,并把int的值赋给这个对象;
如果把Integer转换成int的话,那么Integer类的对象会自动调用intValue()这个函数,把里面的值赋给int的一个基础类型的变量。
不知道对你是否有帮助……
作者: 刘士林    时间: 2012-10-25 20:59
刘丽娜 发表于 2012-10-25 20:50
首先是int是一个基础类型,而Integer是一个类。
在Java中,如果把int变成integer的话,那么编译系统会生成 ...

简单明了!不知你是怎么知道这些东西的,可否指点一二?
作者: 刘丽娜    时间: 2012-10-25 21:04
刘丽娜 发表于 2012-10-25 20:50
首先是int是一个基础类型,而Integer是一个类。
在Java中,如果把int变成integer的话,那么编译系统会生成 ...
简单明了!不知你是怎么知道这些东西的,可否指点一二?

看视频 问朋友 上网查 等等  渠道很多的




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