当前位置:学者斋 >

计算机 >java语言 >

java包装类基础知识

java包装类基础知识

java中为了能将基本类型视为对象来处理,并能连接相关的方法,java为每个基本类型都提供了包装类。下面整理了一些关于java包装类的基础知识,一起来看看吧!

java包装类基础知识

  java包装类常用的几种类型

Boolean,Byte,Short,Character,Integer,Long,Float,Void

  包装类都有共同的方法

带有基本值参数并创建包装类对象的构造函数.如可以利用Integer包装类创建对象,Integer obj=new Integer(145);

带有字符串参数并创建包装类对象的构造函数.如new Integer(“45”);

生成字符串表示法的toString()方法,如ring().

对同一个类的两个对象进行比较的equals()方法,如ls(obj2);

生成哈稀表代码的hashCode方法,如ode();

将字符串转换为基本值的 parseType方法,如eInt(args[0]);

可生成对象基本值的typeValue方法,如alue();

  包装类的自动装箱、自动拆箱

首先,什么是装箱与拆箱?最简单的解释就是把最简单的数据类型用他们相对应的引用类型包装起来,使他们具有对象的特性。例如基本类型int,它所对应的包装类就是Integer。装箱与拆箱就是int与Integer之间的转换。

为了使我们的操作更加简单,jdk1.5版本给我们提供了自动拆箱与自动装箱的功能。例如:

注意:对于Integer的拆装箱需要注意以下问题

运行一下,结果依次为true,true,false,true

对于a==100,b==200大家应该可以理解,作了拆装箱,这里比较的是他们的值。但是a等于b为什么c就不等于d了?这就需要我们分析一下了

当Integer a = 100;这条语句执行的时候,java自动把它翻译成Integer a = eOf(100);我们就来看一下valueOf这个函数:

这里看一下,当参数i是属于整型范围以内的就返回e[i]。对于IntegerCache的cache[],我们注意到static {}里面对它进行了初始化。new了所有的整型对象出来,而static{}只初始化一次,并且在对象间共享。因此,valueOf函数返回的`是一开始就初始化好了的对象的引用。所以a和b都是同一个引用,因此它们相等。当然了,当参数大于127的时候,都是返回的新建对象,因此它们的引用并不等。所以说,对于Integer有特殊的地方,就是它使用了数组的缓存,目的是为了提高运行效率

标签: JAVA 包装
  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/jsj/java/wl2l04.html