Java新手备忘录[2]:基本类型与封装类的区别

来源:互联网 发布:电信下载uhd软件 编辑:程序博客网 时间:2024/05/17 22:33

      在实现hashtable的时候需要调用hashCode()方法,于是发现一个奇怪的现象:

 

     

 

      int k = 100;

 

      上述方法中传递k作为参数没有出错,然后调用k.hashCode()方法出错,提示没有该方法

 

      解决方法:

 

      Integer k = new Integer(100);

      k = k.hashCode();

 

      究竟int和Integer有什么区别,为什么编译器在需要处理对象的时候,自动把int转化为Integer呢,查阅资料,以下引用javaeye的cindylu520的博文,在此感谢!

 

java中的八种基本类型:byte、int、char、long、short、double、float、boolean。

对应的封装类             :Byte、Integer、Character、Long、Short、Double、Float、Boolean。

java为每个原始类型(基本类型)都提供了封装类(即引用类型),引用类型和基本类型是完全不同的行为。有不同的语义。引用类型和基本类型有不同的特征和用法,如:大小和速度不同、数据存储的结构不同、各自的缺省值不同(引用类型的缺省值为null,基本类型的缺省值与各自类型有关)。

 

integer是对象类型,int是原始类型。

之所以把int封装成integer是因为很多方法参数只接收对象类型(object)。

 

如果在数据库操作中某数值列允许为null的话,那接受该列数据的类型就只能为Integer,而不能为int,所以在一般性的持久化对象中尽量少地使用基本类型,除非确定它不会为空。

原创粉丝点击