目录
1、包装类
1.1 引入包装类的目的
假设有一个方法的参数是Object类型的,现在需要传入一个整数,如何解决?
这时候把100这个 数字经过构造方法包装成对象
MyInt myint = new MyInt(100);
上面MyInt就是一个自定义的包装类
1.2 关于包装类
Java中除了8种基本数据类型之后又有8种包装类型,这八种包装类型属于引用数据类型
基本数据类型
基本数据类型 包装类型 byte java.lang.Byte(父类NUmber) short java.lang.Shrot(父类NUmber) int java.lang.Integer(父类NUmber) long java.lang.Long(父类NUmber) float java.lang.Float(父类NUmber) double java.lang.Double(父类NUmber) boolean java.lang.Boolean(父类Object) char java.lang.Character(父类Object)
1.3 关于部分包装类的父类Number
Number是一个抽象类,无法实例化对象
Number中有以下方法:(负责拆箱)
byte byteValue() 以byte形式返回指定的数值 abstract double doubleValue() 以double的形式返回指定数值 abstract float floatValue() 以float的形式返回指定的值 abstract int intValue() 以int的形式返回指定的值 abstract long longValue() 以long的形式返回指定的值 short shortValue() 以short的形式返回指定的值
这些方法其实所有子类中都有
1.4 Integer类的构造方法
将整形转换成Integer包装类型 Integer(int)
将String类型转换成Integer类型 Integer(String)
1.5 自动装箱/拆箱
自动装箱 int --> Integer Integer x = 100;
自动拆箱 Integr --> int int y = x;
//z保存的是内存地址
Integer z = 100;//等同于 Intteger z = new Integer(100);
System.out.println(z + 1);//这里z自动拆箱
注意:java中为了提高程序的执行效率,将【-128到127】之间所有的包装对象提前创建好,放到一个方法区的"整数型常量池"当中了,目的是只要在这个区间的数据都不需要再new了,直接从整数型常量池当中取出来
Integer a =128;//Intteger a = new Integer(128;
Integer b =128;//Intteger b = new Integer(128;
System.out.println(a == b);//false
Integer x =127;
Integer y =127;//x,y当中保存的内存地址是一样的
System.out.println(x == y);//true
1.6 数字格式化异常
之前所学的经典异常
1)空指针异常 NullPointerException
2)类型转换异常 ClassCastException
3)数组下标越界异常 ArrayIndexOutOgBoundsException
4)数字格式化异常 NumberForematException
Integer a = new Integer("中文");//编译没问题,运行时出现数字格式化异常
1.7 Integer中常用方法
1.7.1 Integer的String转int方法
parseInt()方法
static int parseInt(String s)
用途:网页上文本框输入的100实际上是字符串"100",而后台数据库要求存储100数字,这时候需要将"100"转换成100
唯一静态方法,传String,返回int
int retvalue = Integer.parseInt("123");
double retvalue = Double.parseInt("3.14");
1.7.2 十进制转二进制
Integer.toBinaryString(3);
//11
1.7.3 十进制转十六进制
Integer.toHexString(16)
//10
1.7.4 十进制转八进制
Integer.toOctalString(8)
//10
1.7.5 valueOf方法
静态的 int——>Integer
static Integer valueOf(int i)
静态的 String——>Integer
static Integer valueOf(String i)
2、String、int、Integer三者的互相转换
//String ——> int int i = Integer.parseInt("100");//i是100数字 System.out.println(i+1);//101 //int ——> String String s = i + "";//"100"字符串 System.out.println(s+1);//"1001" //int ——> Ingeter //自动装箱 Integer x = 1000; //Integer ——> int //自动拆箱 int y = x; //String ——> Integer Integer k = Integer.valueOf("123"); //Integer ——> String String e = String.valueOf(k);