1、为什么要引入包装类
public void dosome(Object obj)
{
System.out.println(obj);是不被允许的,因为这里面只能传入一个对象,而不是一个数字,或者是变量。
}
2、 例如当方法要求输入一个对象,但是我们手里只有基本数据类型,这是就要将基本数据类型的值给对象,这是就要用到包装类,包装类一共有八种:
1、
基本数据类型 对应的包装类 包装类的父类
byte java.lang.Byte Number
short java.lang.Short 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
3、Number的作用是对数据进行拆箱和装箱,Number类中全是拆箱和装箱的方法,Number是一个 抽象类,无法实例化只能继承。
1、byte byteValue()以byte形式返回指定的的数值
2、abstract double doubleValue()以double形式返回指定的的数值
3、abstract float floatValue()以float形式返回指定的的数值
4、abstract long longValue()以long形式返回指定的的数值
5、 short shortValue()以short形式返回指定的的数值
6、abstract int intValue()以int形式返回指定的的数值
public static void main(String[] args)
{
integer i=new integer (123);//这是装箱是将int类型转换为integer类型的对象
integer i=new integer ("123");//这是第二种装箱的格式,也就是说字符串也可以,但是必
须保证字符串里面的是整数而不是其他类型的数据
integer i=123;//上面的是最全面的写法,实际上这个代码中i保存的是还一个对象
的内存地址,而这个对象中存储着123这个数。这个是自动装箱写法。
float j= i.float value ();//这是装箱是将int类型转换为float类型的对象
int j=i;//这里i是包装数据类型,j是基本数据类型,上面的是最全面的写法,这是自动拆箱。
System.out.println(j) //这里的j是123.0
integer i=123;
System.out.println(i+1) //不会报错,因为系统会自动将j进行拆箱后再进行相加。
但是注意只有+ - * /时才会触发自动拆箱,而==符号不会触发自动拆箱。
注意:integer i1=127;
integer i2=127;
System.out.println(i1==i2);//结果为true
integer i1=128;
integer i2=128;
System.out.println(i1==i2);//结果为false
因为jvm会将-128到127直接放在缓存里,所以定义这个范围的数据时,jvm直接将数据的地址给引用,所以第一个例子为true而当超过这个范围时,需要重新创建两个对象,并分别保存128所以这时的地址是不同的,故引用中的数据也不同。
}
4、integer类中的parseInt()
作用:返回字符串类型中的数字给整数型变量(String->int)字符串转整性
调用方法:int intvar=integer.parseInt("123");得到的结果是123
5、介绍一种异常NumberFormatException,数字格式化异常,一般是因为传入的参数跟函数原本要用的数据格式不一样。int intvar=integer.parseint("中国");便会有这个错误。
6、integer类中的valueOf()方法
作用是将int类型的数值,转化为integer类型
调用方法是integer s=integer.valueof(int value)
或者
调用方法是integer s=integer.valueof(String "value")
7、integer类中的toOctalString()方法
作用是将integer类型十进制的数值,转化为String类型八进制
调用方法是String s=integer.toOctalString(int value)
注意这里用String s=integer.toOctalString(String "value")的方式就会报错;
只有integer的invalueof()和new integer()方法才可以int 和String类型都可以用。
8、integer类中的toHexString()方法
作用是将integer类型十进制的数值,转化为String类型十六进制
调用方法是String s=integer.toHexString(int value )
如果调用的方法是:String s=integer.toHexString(String “value” )会报错
只有integer的invalueof()和new integer()方法才可以int 和String类型都可以用。
9、intvalue()
作用:将integer对象装换为int类型
调用方法:int i=intvalue(integer value)
10、三种变量之间的互转
int转String:
int i=100;
String s=i+" ";