- 包装类
- 基本数据类型与包装类
- 包装类来由:
- 关系:
- 基本数据类型与包装类的转换
- 装箱auto-boxing
- 拆箱auto-unboxing
- int 与 Integer的区别:
- 基本数据类型与String的转换:
- 基本 —> String
- String —-> 基本
- 包装类与String的
- 包装类 —> String
- String —-> 包装类
- 代码:
- java并不是纯面向对象的,八种基本数据类型正是原因
- 所以有了对应的包装类,让八种基本数据类拥有对象的特征,通过包装类来完善Java面向对象的特性
- 用基本数据类型原因是它数据存储起来占内存小,效率高,方便快捷,用它来做底层存储,然后用包装类去的对象去做
-
装箱:基本类型转换为引用类型【包装类】
-
装箱的过程:
- 堆中分内存
- 值拷贝
- 返回引用
-
代码:
Integer t1 = new Integer(129); Integer t2 = Integer.valueOf(120); // 原码:static修饰的 判断如果值在缓存池则返回池中数【数组方式返回】 不然返回 new Integer(value)的值 Integer t3 = 5; // 算不上装箱 -128 ~ 127 之内值系统已经装箱好了【缓存池】 用就可以了 看原码 它们取按数组方式取的
-
其它类似,方法是 包装类名.valueOf(对应的基本数据类型);
-
拆箱:引用类型转换为基本类型
-
Integer.intValue()
-
拆箱的过程
- 分配内存
- 值拷贝
- 返回变量
-
代码:
// 过程:栈里面分内存 将 return value 赋值给栈内存的基本变量 ; Integer t1 = new Integer(122); int n1 = t1.intValue(); int n2 = Integer.MAX_VALUE; // 返回Integer的最大最小值 int n3 = Integer.MIN_VALUE; System.out.println(n2 + " " + n3);
-
别的类型如byte 调Byte的对象.bytevalue(); return (byte)value;
- 概念上:Integer 是一个Java int 类型的包装类, int 是Java的一种基本数据类型
- 存储上:int 是基本数据类型,在栈里面开辟一个空间直接存值, Integer 是引用数据类型,它在栈里面声明一个该类型的变量存在堆里面存具体数据的地址,是对象的引用,当 new 一个 Integer 时,实际上生成一个指针指向此对象。
- 使用上:Integer 必须实例化才能使用, int 声明就可以直接使用。
- 默认值:Integer 是引用数据类型,所以默认值是 null, int 默认是 0 。
- 继承上:Integer有父类Object,拥有Object类定义的方法,int没有父类。
-
String与其它数据拼接
-
任何数据类型与字符串拼接后都是字符串类型
-
valueOf()方法
-
它是String的一个static方法
-
代码:
-
String str0 = String.valueOf('A'); String str01 = String.valueOf(5); System.out.println(str0 + " " + str01);
-
-
对应包装类.parse对应包装类("数值型的或者true或者false"); char没有
-
代码:
String str = "AB"; int n4 = Integer.parseInt("5"); byte b1 = Byte.parseByte("12"); double d1 = Double.parseDouble("3"); // 如果不是数值型会报错 NumberFormatException // double d2 = Double.parseDouble(str); // char c = Character.PARAGRAPH_SEPARATOR boolean flag = Boolean.parseBoolean("true"); char c1 = str.charAt(1); // 将字符串索引处元素转化为字符类型 System.out.println(c1);
- 包装类对象.toString();
- 包装类.valueOf();
// 包装类 ---> String :包装类对象.toString(); String s = t1.toString(); System.out.println(s); // String ---> 包装类 :包装类.valueOf(); Integer t01 = Integer.valueOf(s);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)