包装类就是将8种基本类型变成一个类的形式。 JDK文档有包装类的继承关系:
Integer,Byte,Float,Double,Short,Long都属于Number类的子类,Number类提供一系列返回以上6种基本数据类型的操作;Character属于Object的直接子类;Boolean属于Object的直接子类 Number是一个抽象类,将数字包装类的内容变成基本数据类型。将一个基本数据类型变成包装类是装箱操作; 将一个包装类变成基本数据类型是拆箱操作。
public class WrapperDemo1 { public static void main(String[] args) { int a=20; Integer integer=new Integer(a);//装箱 ,将基本数据类型变成包装类 int temp=integer.intValue();//拆箱,将包装类变成基本数据类型 } }对于拆箱使用的就是Number类中定义的方法。 自动装箱拆箱
public class WrapperDemo1 { public static void main(String[] args) { Integer a1=20;//自动装箱 Float a2=12.12f; int aa1=a1;//自动拆箱 float aa2=a2; } }实际中应用最多的还是字符串转变为基本数据类型的操作。
public class Test { public static void main(String[] args) { String string1="20"; String string2="20.3"; int x=Integer.parseInt(string1); float f=Float.parseFloat(string2); } }注意:字符串种的数据必须和要转去的类型相匹配。
匿名内部类就是指没有一个具体名称的类,直接在接口和抽象的应用上发展起来的。
interface A{ public void printInfo();//定义抽象方法 } class X{ public void fun1(){ this.fun2(new A(){//匿名内部类 @Override public void printInfo() {//实习接口中的抽象方法 System.out.println("hello"); } }); } private void fun2(A a) {//接受接口实例 a.printInfo();//调用接口方法; } } public class Test2 { public static void main(String[] args) { new X().fun1();//实例化X类的对象,并调用fun1()的方法。 } }代码解释:
直接实例化接口对象 new A(){}实现A的抽象方法Java Number包括以下6种类型 Byte类型
长度:1byte/8bit 最大值:127 0b0111_1111 最小值:-128 0b1000_0000Short类型
长度:2byte/16bit 最大值: 2^15 32767 0x7fff 0b0111_1111_1111_1111 最小值:-2^15 -32768 0x8000 0b1000_0000_0000_0000Integer类型
长度:4byte/32bit 最大值: 2^31 -21亿 0x7fffffff 最小值:-2^31 -21亿 0x80000000Long类型
长度:8byte/64bit 最大值: 2^63 约9*10^18 最小值:-2^63Float类型
长度:4byte/32bit 正最大值:0x7f7fffff,约3.4*10^38 正最小值:0x00000001,月1.4*10^(-45)Double类型
长度:8byte/64bit 正最大值:1.8*10^308 正最小值:4.9*10^(-304)