Java 包装类
Java有“一切皆对象”的设计原则,Java中的基本数据类型就完全不符合这种设计思想,因为基本数据类型不是引用类型,
所在在JDK1.5之后,Java推出了基本数据类型对应的包装类。
八大包装类分为两种类型:
Number: Short Integer Long Float Double 都是Number的子类,表示一个数字
Object :Character Bool 都是object的直接子类
基本数据类型 | 包装类 |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
装箱与拆箱:
将基本数据类型装换成包装类,这类操作叫做装箱操作; 将包装类转换成基本数据类型,这类操作叫做拆箱操作
方法 | 描述 |
byteVlaue() | Byte->byte |
shortValue() | Short->short |
intValue() | Integer->int |
longValue() | Long->long |
floatValue() | Float->float |
doubleValue() | Double->double |
public class TestBaoZhuang { public static void main(String[] args) { //两种定义包装对象的方式 Integer n1 = new Integer(12); Integer n2 = Integer.valueOf(13); //包装类转化成基本数据类型(拆箱) int n3 = n1.intValue(); //也可以直接创建一个包装类对象 Integer n4 = 15; //字符串转换成包装类(两种方式) Integer n5 = new Integer("123"); String str = "125"; Integer n6 = Integer.parseInt(str); /* * 面试题 * */ Integer n7 = new Integer(16); Integer n8 = new Integer(16); System.out.println(n7==n8); //false,比较的是两个对象的引用 System.out.println(n7.equals(n8)); //true ,Integer重写了equals()方法,比较值大小 Integer n9 = 17; Integer n10 = 17; System.out.println(n9==n10); //true System.out.println(n9.equals(n10)); //true Integer n11 = 128; Integer n12 = 128; System.out.println(n11==n12); //false,JVM中存在享元模式,Integer n11 = x,当x不超过一个字节(-127-128)可以表示的值时,后面创建同样值的包装类指向同一个对象。
//否则,就如 n11与n12指向不同对象
System.out.println(n11.equals(n12)); //true ,比较值大小 } }
本文来自博客园,作者:藤原豆腐渣渣,转载请注明原文链接:https://www.cnblogs.com/javafufeng/p/16293860.html