网站 网页数量海口今天的消息
2026/5/20 20:13:27 网站建设 项目流程
网站 网页数量,海口今天的消息,网站后台打开慢,wordpress知更鸟 破解Java 中的8 个包装类#xff08;Wrapper Class#xff09; 是为了解决基本数据类型无法直接参与面向对象编程#xff08;如不能作为集合元素、无法调用方法#xff09;的问题#xff0c;为每个基本数据类型提供了对应的引用类型。以下是完整的 8 个包装类详解#xff1a;…Java 中的8 个包装类Wrapper Class是为了解决基本数据类型无法直接参与面向对象编程如不能作为集合元素、无法调用方法的问题为每个基本数据类型提供了对应的引用类型。以下是完整的 8 个包装类详解一、8 个包装类全览基本数据类型对应的包装类父类备注byteByteNumber字节型占 1 字节shortShortNumber短整型占 2 字节intIntegerNumber整型占 4 字节唯一非首字母大写longLongNumber长整型占 8 字节floatFloatNumber单精度浮点型占 4 字节doubleDoubleNumber双精度浮点型占 8 字节charCharacterObject字符型占 2 字节booleanBooleanObject布尔型无固定字节大小二、核心特点1. 继承体系数值型包装类Byte/Short/Integer/Long/Float/Double继承自java.lang.Number抽象类提供了将包装类转换为基本类型的方法byteValue()、intValue()、longValue()等。Character/Boolean直接继承自java.lang.Object。2. 不可变性所有包装类都是不可变类final 修饰内部值一旦创建无法修改例如Integer a 10; a 20; // 并非修改原有对象而是创建新的Integer对象3. 自动装箱 / 拆箱JDK 1.5装箱基本类型 → 包装类自动调用valueOf()方法。拆箱包装类 → 基本类型自动调用xxxValue()方法。示例// 自动装箱int → Integer Integer num 100; // 自动拆箱Integer → int int n num; // 手动装箱/拆箱底层原理 Integer num2 Integer.valueOf(100); int n2 num2.intValue();4. 常量池缓存机制为了优化性能部分包装类提供了常量池缓存Byte缓存 -128 ~ 127 的值。Short缓存 -128 ~ 127 的值。Integer默认缓存 -128 ~ 127可通过 JVM 参数-XX:AutoBoxCacheMaxsize调整上限。Long缓存 -128 ~ 127 的值。Character缓存 0 ~ 127 的字符。Float/Double/Boolean无缓存浮点数离散Boolean 仅缓存TRUE/FALSE静态常量。示例缓存影响 比较Integer a 127; Integer b 127; System.out.println(a b); // true取自缓存 Integer c 128; Integer d 128; System.out.println(c d); // false新创建对象 // 建议用 equals() 比较包装类值 System.out.println(c.equals(d)); // true三、常用方法所有包装类都提供了通用的核心方法以Integer为例类型转换static Integer valueOf(int i)返回指定 int 值的 Integer 对象优先缓存。static Integer valueOf(String s)将字符串转换为 Integer需数字格式。int intValue()拆箱为 int。static int parseInt(String s)字符串转 int常用。常量// Integer的最大值/最小值 System.out.println(Integer.MAX_VALUE); // 2147483647 System.out.println(Integer.MIN_VALUE); // -2147483648进制转换// 十进制转二进制/八进制/十六进制 System.out.println(Integer.toBinaryString(10)); // 1010 System.out.println(Integer.toOctalString(10)); // 12 System.out.println(Integer.toHexString(10)); // a四、典型应用场景集合操作集合如List、Map只能存储引用类型需用包装类ListInteger list new ArrayList(); list.add(10); // 自动装箱 int num list.get(0); // 自动拆箱泛型限定泛型只能用引用类型例如MapString, Long。空值处理基本类型不能为 null包装类可表示 “无值”如数据库字段 NULL。五、注意事项NPE 风险包装类拆箱时如果为 null会抛出NullPointerExceptionInteger num null; int n num; // 运行时NPEequals () 比较包装类比较值时必须用equals()而非比较对象地址。性能自动装箱 / 拆箱会产生额外开销高频循环中建议使用基本类型。总结Java 8 个包装类是基本类型的 “面向对象包装”核心解决了集合存储、泛型使用、空值表示等问题掌握其装箱拆箱、缓存机制、常用方法是 Java 基础的核心要点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询