JavaSE基础 (十九)

包装类

1.类所在的包
2.类的关系 自己默认继承 实现
3,类中提供常用方法
4.是否可以创建对象 调用 方法本身是静态的

包装类(封装类) 1.5版本之后自动拆包
byte----Byte   short----Short   int------Integer  long-----Long
float-----Float  double-----Double char-----Character boolean----Boolean
1.八个包装类都在同一个包下  java.lang包  不需要import导包自己使用
2.八个包装类有六个都是与数字有关  都默认继承父类Number
3.八个包装类都实现了Serializable,Comparable
4.八个包装类都带有自己对应类型参数的构造方法
 八个包装类中有7个(除了Character)有构造方法重载 带String类型
5.创建对象  对象调用方法
     有六个与数字相关的类都继承Number   xxValue();将一个包装类类型转化为对应的基本类型(拆包)
Interger i1 = new Interger(10)//引用数据类型 包装类
 int value = i1.intValue();

 int value  = Inter.parseInt("123")  Float.parseFloat("123.45")
 int value  = new Integer("123");

经常在笔试中出现的问题

integer i1 = 10;
integer i2 = 10;
integer i3 = new Integer(10);
integer i4 = new Integer(10);
System.out.println(i1==i2);//true
System.out.println(i1==i3);//false
System.out,println(i3==i4);//false
System.out.pritnln(i1.equals(i2));//true
System.out.pritnln(i1.equals(i3));//true
System.out.pritnln(i1.equals(i4));//true

==与equals()的区别

==可以比较基本数据类型 也可以比较引用数据类型(变量中存储的内容)
如果比较基本类型比较的是变量中存储的值
如果比较的是引用类型比较的是变量中存储地址的引用
equals()是Object类中继承过来的方法==一致 如果想要改变比较规则 可以重写equals方法
由于integer类就重写了equals()所以Integer比较的是数值

考察Integer类加载的时候有一个静态空间

空间内立即加载Integer类型的数组 内存储256个Integer对象 -128-127
如果我们用的对象范围在这之内 integer i1 = 10;直接取静态元素区中找对应的对象
如果我们用的对象范围超出了Integer i1 = 1000; 会帮我们创建一个新的Integer对象