营销型网站建站教程,竞价sem托管公司,苏州建站公司兴田德润简介呢,百度关键词排名批量查询工具Day19 包装类 Integer底层
一、包装类
1、概念#xff1a; 包装类#xff08;Wrapper Class#xff09;是一种用于将基本数据类型转换为对象的类。Java中的基本数据类型#xff08;如int、char、boolean等#xff09;是非对象的#xff0c;为了能够在需要对象的上下文中…Day19 包装类 Integer底层
一、包装类
1、概念 包装类Wrapper Class是一种用于将基本数据类型转换为对象的类。Java中的基本数据类型如int、char、boolean等是非对象的为了能够在需要对象的上下文中使用它们Java提供了对应的包装类。
2、理解 8种基本数据类型对应类
1. Boolean对应boolean
2. Byte对应byte
3. Short对应short
4. Integer对应int
5. Long对应long
6. Float对应float
7. Double对应double
8. Character对应char3、出现原因Java是一种纯面向对象语言但是java中有8种基本数据类型破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象java又给每种基本数据类型分别匹配了一个类这个类我们称之为包装类/封装类。
注意每个基本数据类型都有一个与之匹配的包装类。int的包装类的写法为Integer、char的包装类的写法是Character其余基本数据类型的包装类均是基本类型的首字母大写。
3、包装类常用方法 将基本数据类型转换为包装类对象 java复制代码int num 10;
Integer obj Integer.valueOf(num); // 将int转换为Integer对象从包装类对象获取基本数据类型的值 java复制代码Integer obj new Integer(20);
int num obj.intValue(); // 从Integer对象获取int值自动装箱Autoboxing和拆箱Unboxing java复制代码Integer obj 30; // 自动装箱将int转换为Integer对象
int num obj; // 自动拆箱将Integer对象转换为int使用包装类提供的方法 java复制代码Integer num 40;
int binary Integer.parseInt(1010, 2); // 将二进制字符串转换为int
String hex Integer.toHexString(num); // 将int转换为十六进制字符串装箱把基本数据类型包装为对应的包装类对象
Integer i1 new Integer(10); // 利用构造方法
Integer i2 Integer.valueOf(10); //利用包装类中的静态方法
**拆箱**把包装类对象转换为对应的基本数据类型。
int i3 i1.intValue(); //返回包装类对象对应的基本数据
前面的装箱和拆箱操作相对较麻烦。自jdk1.5开始java增加的对基本数据类型的自动装箱和自动拆箱操作。
java编译器在编译时期会根据源代码的语法来决定是否进行装箱或拆箱。
a、 自动装箱可以直接把一个基本数据类型赋值给包装类
例如 Integer i1 10; //自动装箱操作
b、 自动拆箱可以直接把一个包装类对象赋值给基本类型
例如int a new Integer(3); //自动拆箱。
自动装箱和自动拆箱简化了对包装类的操作。
注意需要理解自动装箱和拆箱的本质底层也是手动装拆箱
二、Integer底层原理
1、概念 Integer是java.lang.Integer类的包装类用于表示整数数据类型int的对象形式。Integer类是不可变的即一旦创建了Integer对象其值就不能被修改。
2、描述判断输入的int值是否在-128~127区间内如果在就从Integer的缓存类的缓存数组中获取对象如果不在就重新new对象。引用类型的“”是判断两个引用是否指向同一个对象
3、主要底层原理 缓存机制 Java在内部维护了一个整数缓存池范围为-128到127。当调用Integer.valueOf(int)方法创建一个Integer对象时如果参数在缓存范围内将返回缓存中的对象而不是新建对象。这种缓存机制可以提高性能节省内存避免频繁创建和销毁Integer对象。 装箱和拆箱 装箱Autoboxing将基本数据类型转换为对应的包装类对象。拆箱Unboxing将包装类对象转换为对应的基本数据类型。Java编译器会自动进行装箱和拆箱操作使得基本数据类型和包装类之间的转换更加方便。 valueOf()方法 Integer.valueOf(int)方法用于返回指定int值的Integer实例。该方法利用缓存机制如果参数在缓存范围内则返回缓存中的对象否则创建新的Integer对象。 intValue()方法 Integer.intValue()方法用于将Integer对象转换为int类型的值。这个方法是获取Integer对象包含的int值的常用方式。 常量池 Java中的整数常量池是在编译期间生成的包含在-128到127范围内的整数。当使用整数常量时会直接从常量池中获取而不会创建新的Integer对象。 注意Integer类的底层原理主要涉及缓存机制、装箱拆箱、valueOf()方法等这些特性使得Integer类在处理整数数据时更加高效和方便。理解这些底层原理有助于更好地利用Integer类并避免一些潜在的性能问题。