包装类(封装类) 1.5版本之后 自动拆装包
byte—Byte short—Short int—Integer long—Long
float—Float double—Double char—Character boolean—Boolean
- 八个包装类都在同一个包下 java.lang包 不需要import导包直接使用
- 八个包装类中有六个是与数字相关 都默认继承父类Number
- 八个包装类都实现了Serializable, Comparable
- 八个包装类都有带自己对应类型参数的构造方法
八个包装类中有七个(除了Character)还有构造方法重载 带String类型 - 创建对象 对象调用方法
有六个与数字相关的类都继承Number xxxValue(); 将一个包装类类型转化为对应的基本类型(拆包)
Integer i1 = new Integer(10);//引用数据类型 包装类
int value = i1.intValue();
Integer i2 = 10;
int value = new Integer(10);
int value = Integer.parseInt("123"); Float.parseFloat("123.45")
int value = new Integer("123");
6.经常在笔试中出现的问题
Integer i1 = 10;
Integer i2 = 10;
Integer i3 = new Integer(10);
Integer i4 = new Integer(10);
System.out.println(i1==i2);// true--->如果数字范围超过127false
System.out.println(i1==i3);// false
System.out.println(i3==i4);// false
System.out.println(i1.equals(i2));//true
System.out.println(i1.equals(i3));//true
System.out.println(i3.equals(i4));//true
-
==与equals()区别
可以比较基本数据类型 也可以比较引用数据类型 (变量中存储的内容)
如果比较基本类型比较是变量中存储的值
如果比较引用类型比较是变量中存储的地址引用
equals()是Object类中继承过来的方法 每一个引用类型都可以调用
默认继承的equals()方法比较与==一致 如果想要改变比较规则 可以重写equals方法
由于Integer类就重写了equals() 所以Integer比较的是数值
-
考察Integer类加载的时候 自己有一个静态的空间
扫描二维码关注公众号,回复: 8668846 查看本文章空间内立即加载 Integer类型的数组 内存储256个Integer对象 -128 ~ 127
如果我们用的对象范围在这之内Integer i1 = 10; 直接取静态区中找对应的对象
如果我们用的对象范围超出了这个Integer i1 = 1000; 会帮我们创建一个新的Integer对象