基本类型与包装类型区别

知识点概括:

简介:
Java有八种基本类型,byte, short, int, long, float, double, char, boolean。

对应八种包装类,Byte, Short, Integer, Long, Double, Character, Boolean
在这里插入图片描述


8 种 基本数据类型的 默认值 及 表示的 数据范围:
在这里插入图片描述

知识点总结:

知识小结:

⒈ 包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址;

⒉ 包装类型是引用的传递;基本类型是值的传递;

⒊ 声明方式不同:

基本数据类型不需要new关键字;

包装类型需要new在堆内存中进行new来分配内存空间

⒋ 存储位置不同:

基本数据类型直接将值保存在栈中,栈的效率更高;

包装类型是把对象放在堆中,然后通过对象的引用来调用他们

⒌ 初始值不同:

int的初始值为0、boolean的初始值为false

包装类型的初始值为null

⒍ 使用方式不同:

基本数据类型直接赋值使用就好;

包装类型是在集合如 coolectionMap 时使用

  1. 比较方式不同
    ==和equals

基本类型的比较要用==,
包装类型的比较要用equals。
是Java本身的一个操作符,它的作用是比较两个变量在内存中的地址,相同为true,不同为false。
equals则是一个方法。
Java中,所有的类都有一个根级父类,Ojbect,包括包装类。
在不重写的情况下,直接equals实际上就是在调用Ojbect类的equals方法。
而Ojbect类的equals方法,也是使用
来作判断的。
换句话说,如果没有经过重写,equals 和 == 的结果是一致的。
而如果我们想要达到某些其它目的,比如说,我们希望在地址不同,但是值相同的情况下,也能返回true,就需要自己重写equals方法。

  1. 自动装箱和自动拆箱

自动装箱:
一个基本类型的 变量 变为一个包装类型的变量 ,java 会 进行自动装箱的过程,执行 .values() 方法
自动拆箱:
当你把一个包装类型的变量赋值到一个基本类型的变量时,Java会进行自动拆箱的过程,执行 intValue 方法

9.使用原则

经过上述的了解,总结了基本类和包装类在实际使用时,应该遵循以下几个原则:

1). 尽量使用values方法。最大可能使用缓存,提高程序的效率。

2). 类变量使用包装类。想象有一个和数据库表对应的实体类,如果你使用的基本数据类型,在插入时,可能会插入一些让你意想不到的初始值。

3). 方法的参数要使用包装类。使用包装类意味着你在调用时,可以令若干个参数为null。
注 : null是无意义的。
但是如果你使用了基本数据类型,那么,你需要传入一个值。

4). 方法的返回值要根据是否可为 null 来确定使用包装类还是基本类。
当一个方法的返回值,一定不会出现null的情况时,推荐使用 基本类 来作为返回值。
这样,调用者在拿到这个方法的返回值时,就不必担心它是为null了。

5). 方法内部(局部变量)使用基本类型。基本类型的时间效率和使用效率上来说,都是要优于包装类的。
所以,在方法内部,能使用基本类型尽量不要使用包装类。

实际使用过程中,场景不同,项目需求不同,我们需要根据实际的 场景去选择 合适的类型去使用。

记录:涉及到小数的计算时,要考虑到计算的精度问题,可以使用BigDecimal,也可以通过缩小计量单位,达到化零为整的目的。小数的计算不属于 基本类 和 包装类 的内容。

猜你喜欢

转载自blog.csdn.net/YHLSunshine/article/details/131252233