java中的基本数据类型与封装类

java中的基本数据类型与封装类

什么时候用封装类?

  • 某些情况下,数据必须作为对象出现,此时必须使用封装类来将简单类型封装成对象。

1.比如,如果想使用List来保存数值,由于List中只能添加对象,因此我们需要将数据封装到封装类中再加入List。在JDK5.0以后可以自动封包,可以简写成list.add(1)的形式,但添加的数据依然是封装后的对象。

2.另外,有些情况下,我们也会编写诸如func(Object o)的这种方法,它可以接受所有类型的对象数据,但对于简单数据类型,我们则必须使用封装类的对象。

  • 某些情况下,使用封装类使我们可以更加方便的操作数据。比如封装类具有一些基本类型不具备的方法,比如valueOf(),
    toString(), 以及方便的返回各种类型数据的方法,如Integer的shortValue(), longValue(), intValue()等。

基本数据类型与其对应的封装类由于本质的不同,具有一些区别:

  • 基本数据类型只能按值传递,而封装类按引用传递。
  • 基本类型在堆栈中创建;而对于对象类型,对象在堆中创建,对象的引用在堆栈中创建。基本类型由于在堆栈中,效率会比较高,但是可能会存在内存泄漏的问题。

补充:Java支持的数据类型,以及自动拆装箱

基本数据类型:
整数值型:byte,short,int,long
字符型:char
浮点类型:float,double
布尔型:boolean

整数默认int型,小数默认是double型。Float和Long类型的必须加后缀。

String是引用类型不是基本类型。引用类型声明的变量是指该变量在内存中实际存储的是一个引用地址,实体在堆中。引用类型包括类、接口、数组等。String类还是final修饰的,不能被继承。

封装类就属于引用类型,自动装箱和拆箱就是基本类型和引用类型之间的转换。
好处:当基本类型转换为引用类型后,就可以new对象,从而调用包装类中封装好的方法进行基本类型之间的转换或者toString(当然用类名直接调用也可以,便于一眼看出该方法是静态的),还有就是如果集合中想存放基本类型,泛型的限定类型只能是对应的包装类型。

猜你喜欢

转载自blog.csdn.net/weixin_38916872/article/details/80355946