这篇文章运用简单易懂的例子给大家介绍Java中包装类型与基本类型的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>包装类型可以为null,而基本类型不可以强>
别小看这一点区别,它使得包装类型可以应用于POJO中,而基本类型则不行。
POJO是什么呢?这里稍微说明一下。
POJO的英文全称是普通普通的Java对象,翻译一下就是,简单无规则的Java对象,只有属性字段以及setter和getter方法,示例如下。
类作家 私人整数年龄; 私人字符串名称; 公共整数getAge () { 返回年龄; } 公共空间setAge(整数年龄){ 这一点。年龄=年龄; } 公共字符串getName () { 返回名称; } 公共空间setName(字符串名称){ this.name=名称; } }
和POJO类似的,还有数据传输对象DTO(数据传输对象,泛指用于展示层与服务层之间的数据传输对象),视图对象VO(视图对象,把某个页面的数据封装起来),持久化对象阿宝(持久性对象,可以看成是与数据库中的表映射的Java对象)。
那为什么POJO的属性必须要用包装类型呢?数据库的查询结果可能是null,如果使用基本类型的话,因为要自动拆箱(将包装类型转为基本类型,比如说把整数对象转换成int值),就会抛出NullPointerException的异常。
<强>包装类型可用于泛型,而基本类型不可以强>
泛型不能使用基本类型,因为使用基本类型时会编译出错。
List,列表=new ArrayList<的在();//提示语法错误,插入“Dimensions"完成ReferenceType List ,列表=new ArrayList<的在();
为什么呢?因为泛型在编译时会进行类型擦除,最后只保留原始类型,而原始类型只能是对象类及其子类——基本类型是个特例。
<>强基本类型比包装类型更高效
强>
基本类型在栈中直接存储的具体数的值,而包装类型则存储的是堆中的引用。
很显然,相比较于基本类型而言,包装类型需要占用更多的内存空间。假如没有基本类型的话,对于数值这类经常使用到的数据来说,每次都要通过新的一个包装类型就显得非常笨重。
<强>两个包装类型的值可以相同,但却不相等强>
两个包装类型的值可以相同,但却不相等——这句话怎么理解呢?来看一段代码就明明白白了。
整数chenmo=new整数(10); 整数如一=new整数(10); system . out。println (chenmo==如一);//错误 System.out.println (chenmo。=(如一));//真正的
两个包装类型在使用”“进行判断的时候,判断的是其指向的地址是否相等.chenmo和如一两个变量使用了新关键字,导致它们在"的时候输出了错误的。
而chenmo.equals(如一)的输出结果为真,是因为=方法内部比较的是两个int值是否相等。源码如下。
私人最终int值; 公共int intValue () { 返回值; } 公共布尔=(对象obj) { 如果(obj instanceof整数){ 返回值=https://www.yisu.com/zixun/=((整数)obj) .intValue (); } 返回错误; }
虽然chenmo和如一的值都是10,但他们并不相等。换句话说就是:将“==辈僮鞣τ糜诎袄嘈捅冉系氖焙?其结果很可能会和预期的不符。
关于Java中包装类型与基本类型的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。