【1】Java.lang直接使用,无需导包:
【2】类的继承关系:
【3】实现接口:
Serializable,Comparable<Integer>
【4】这个类被final修饰,那么这个类不能有子类,不能被继承:
【5】包装类是对基本数据类型的封装: 对int类型封装产生了Integer
【6】类的历史: 从JDK1.0开始
【7】属性:
//属性:
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
//“物极必反”原理:
System.out.println(Integer.MAX_VALUE+1);
System.out.println(Integer.MIN_VALUE-1);
【8】构造器(发现没有空参构造器)
(1)int类型作为构造器的参数:
Integer i1 = new Integer(12);
(2)String类型作为构造器的参数:
Integer i2 = new Integer("12");
Integer i3 = new Integer("abcdef");
【9】包装类特有的机制:自动装箱 自动拆箱:
//自动装箱:int--->Integer
Integer i = 12;
System.out.println(i);
//自动拆箱:Integer--->int
Integer i2 = new Integer(12);
int num = i2;
System.out.println(num);
(1)自动装箱 自动拆箱 是从JDK1.5以后新出的特性
(2)自动装箱 自动拆箱 :将基本数据类型和包装类进行快速的类型转换。
验证:
可以自定打断点测试是否走入valueOf方法中:
valueOf转换成为Integer
注意:
如果值为-128到127之间,则不转换成为Integer,保存在一个cache数组中。
如果自动装箱值在-128~127之间,那么比较的就是具体的数值否则,比较的就是对象的地址
IntValue转换成为int
【10】常用方法:
valueOf方法的底层:
package com.mytest;
/**
* @Auther: gotsgo
*/
public class Test04 {
//这是一个main方法,是程序的入口:
public static void main(String[] args) {
//compareTo:只返回三个值:要么是0,-1,1
Integer i1 = new Integer(6);
Integer i2 = new Integer(12);
System.out.println(i1.compareTo(i2));// return (x < y) ? -1 : ((x == y) ? 0 : 1);
//equals:Integer对Object中的equals方法进行了重写,比较的是底层封装的那个value的值。
//Integer对象是通过new关键字创建的对象:
Integer i3 = new Integer(12);
Integer i4 = new Integer(12);
System.out.println(i3 == i4);//false 因为==比较的是两个对象的地址
boolean flag = i3.equals(i4);
System.out.println(flag);
//Integer对象通过自动装箱来完成:
Integer i5 = 130;
Integer i6 = 130;
System.out.println(i5.equals(i6));//true
System.out.println(i5 == i6);
/*
如果自动装箱值在-128~127之间,那么比较的就是具体的数值
否则,比较的就是对象的地址
*/
//intValue() :作用将Integer--->int
Integer i7 = 130;
int i = i7.intValue();
System.out.println(i);
//parseInt(String s) :String--->int:
int i8 = Integer.parseInt("12");
System.out.println(i8);
//toString:Integer--->String
Integer i10 = 130;
System.out.println(i10.toString());
}
}