java 包装类详解_Java包装类型详解,必须清楚的Java基础

这篇文章是关于Java包装类型详解,java的基础知识非常多,但是只要条理清晰地整理,一个知识点一个知识点捋清楚,就能很好地掌握,今天讲的java包装类型,也是我们几乎天天都能用到的java基础知识点,需要理解清楚。基本类型是沿用面向过程开发语言的特性,如c语言,它非常计较程序内存占用的情况,但随着技术日新月异的发展,存储空间越来越大,这点已经改观,转而在意程序的开发便捷性,大型项目构建的支持。为何会这样呢?

从我电脑的配置大家就可以看出趋势。1998年我拥有了我的第一台电脑。奔腾PII 自己DIY组装的电脑,记忆犹新,当时超前的配置,今天来看太陈旧了。3条32m总共96m内存,昆腾4.3g火球硬盘。而我现在的联想ThinkPad x270笔记本, 16g内存,三星512g SSD固态硬盘。

java 包装类详解_Java包装类型详解,必须清楚的Java基础_第1张图片电脑的配置

可以看出技术革新的变化,随之程序也发生变化,推出了面向对象编程,面向对象编程推崇是类是对象。

java中的基本数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,而像String却可以,只因为String是一个对象而不是一个类型。基本数据类型由于这样的特性,导致无法参与转型,泛型,反射等过程。

java 包装类详解_Java包装类型详解,必须清楚的Java基础_第2张图片java

例如:泛型<>只支持引用类型 ReferenceType为了弥补这个缺陷,java提供了包装类。

2. 包装类

Wrapper Class包装类:

java 包装类详解_Java包装类型详解,必须清楚的Java基础_第3张图片

可以看出java是两种类型相结合的产物,各有特长,那实际开发中如何使用呢?大家可以先简单记忆一下它的规则,日后我们开发中都遵循这个原则:

在方法体内部尽量使用基本类型,占空间小,用完就释放内存,节约内存在pojo时尽量使用包装类型,例如mybatis持久层框架就必须使用包装类型,否则可能出错哦。(先记忆下来,后期讲到mybatis框架,大家可以验证)

java 包装类详解_Java包装类型详解,必须清楚的Java基础_第4张图片java

3.最大值最小值

package javase.basetype;import org.junit.Test;public class TestValueLimit {@Testpublic void testNumber() {System.out.println("\n==整形值类型==================");byte minByte = Byte.MIN_VALUE;byte maxByte = Byte.MAX_VALUE;System.out.println("byte 取值范围:"+ minByte + "~"+maxByte);short minShort = Short.MIN_VALUE;short maxShort = Short.MAX_VALUE;System.out.println("short 取值范围:"+ minShort + "~"+maxShort);int minInteger = Integer.MIN_VALUE;int maxInteger = Integer.MAX_VALUE;System.out.println("int 取值范围:"+ minInteger + "~"+maxInteger);long minLong = Long.MIN_VALUE;long maxLong = Long.MAX_VALUE;System.out.println("long 取值范围:"+ minLong + "~"+maxLong);}@Testpublic void testFloat() {System.out.println("\n==浮点值类型==================");float minFloat = Float.MIN_VALUE;float maxFloat = Float.MAX_VALUE;System.out.println("float 取值范围:"+ minFloat + "~"+maxFloat);double minDouble = Double.MIN_VALUE;double maxDouble = Double.MAX_VALUE;System.out.println("double 取值范围:"+ minDouble + "~"+maxDouble);}}执行结果:==整形值类型==================byte 取值范围:-128~127short 取值范围:-32768~32767int 取值范围:-2147483648~2147483647long 取值范围:-9223372036854775808~9223372036854775807==浮点值类型==================float 取值范围:1.4E-45~3.4028235E38double 取值范围:4.9E-324~1.7976931348623157E308==字符值类型==================char :a~a~b~b

4.装箱拆箱

装箱:将基本数据类型封装为包装类对象

Integer i = 10; //装箱,10整数,i是包装类型Integer i = new Integer(10); //编译后

拆箱:将包装类中包装的基本数据类型数据取出

Integer i = 10; //自动装箱int j = i; //自动拆箱int j = i.intValue(); //编译后

注:JDK1.5之后提供自动拆装箱,我们使用时可以互相赋值,代码简洁

关于Java包装类型详解就讲 这些,主要理解包装类型和基本类型的自动装箱和自动拆箱,能明白为什么编程语言要这么设计就可以了。

你可能感兴趣的:(java,包装类详解)