基本数据类型对象包装类、自动装箱和自动拆箱

 

1  基本数据类型对象包装类

 

 

八大基本数据类型有:byteintshortlongfloatdoublecharboolean

基本数据类型对象包装类,就是按照面向对象的方法,讲基本数据类型包装成对象。

这样,就可以通过调用对象的方法,来对基本数据类型进行操作,

还可以实现基本数据类型和字符串之间的转换,以及不同进制间的转换。

 

基本数据类型         引用数据类型(对象包装类)

byte                       Byte

short                      Short

int                          Integer  **

long                       Long

boolean                  Boolean

float                       Float

double                   Double

char                      Character  **

 

基本数据类型对象包装类的最常见作用:

就是用于基本数据类型和字符串类型之间做转换。

 

1,基本数据类型转成字符串。

     基本数据类型+""

     基本数据类型.toString(基本数据类型值)

     如:Integer.toString(34); //将整数34变成字符串"34"

 

2,字符串转成基本数据类型。

     static int parseInt(String str):将字符串参数作为有符号的十进制整数进行解析。

     xxx a = Xxx.parseXxx(String);

 

       例:

     int num = Integer.parseInt("123");

     double num = Double.parseDouble("12.34");

     boolean b = Boolean.parseBoolean("true");

 

     方法二(非静态)

     Integer的非静态方法intValue(),使用前要创建Integer对象。

 

     : Integer i = new Integer("123");

     int num = i.intValue();

 

3,十进制转成其他进制。

     toBinaryString();  转成二进制

     toHexString(); 转成十六进制

     toOctalString();  转成八进制

 

4,其他进制转成十进制。

     static int parseInt(String str, int radix);

     将字符串参数str解析为以radix为基数的有符号整数的十进制形式。

     即把str看作radix进制的数,再转成十进制。

     parseInt("110",10); //把字符串"110"转成十进制数。

     parseInt("110",2);  //把字符串"110"看成二进制数,再转成十进制值为6,结果为6

 

代码示例:

class IntegerDemo{
	public static void main(String[] args){
		method_parseInt();
        method_to();
        method_2();
	}	
	public static void sop(Object obj){
		System.out.println(obj);
	}	
	public static void method_parseInt(){
		int num = Integer.parseInt("123"); //字符串类型转换成基本数据类型
		sop("num="+(num+4));
	}	
	public static void method_to(){
		sop(Integer.toBinaryString(6)); //十进制转成二进制。
		sop(Integer.toBinaryString(-6)); //十进制转成二进制。
	}	
	public static void method_2(){
		int x = Integer.parseInt("110",10); //把十进制的110转成十进制
		sop("x="+x);
		int y = Integer.parseInt("110",2);  //把二进制的110转成十进制
		sop("y="+y);
		int z = Integer.parseInt("3c",16);  //把十六进制的3c转成十进制
		sop("z="+z);
	}
}

 

2.  基本数据类型对象包装类 JDK1.5新特性

     JDK1.5 之后出现的新特性

     自动装箱,自动拆箱。

     Integer  num = 12;   //进行了自动装箱,将基本数据类型int类型的12,包装成Integer对象。

     int   count = num+1;   //进行了自动拆箱,将Integer对象num拆箱为int类型,再与int类型的1相加,结果为int类型。

     byte范围内的(-128127),如果该数值的对象已经存在,则不会再开辟新的空间.

 

详见代码

class IntegerDemo2{
	public static void main(String[] args){
		//Integer x = new Integer(4);
		Integer x = 4; //自动装箱,4是一个对象,相当于 new Integer(4)
		x = x + 2;  //x+2: x进行了自动拆箱,变成了int类型,和2进行加法运算,再将和进行装箱赋给x。
				    //自动拆箱原理:x.intValue();
		Integer m = 128;
		Integer n = 128;
		sop("m==n:"+(m==n)); //结果为false,因为是两个对象,内存地址值不同	
		Integer a = 127;
		Integer b = 127;
		sop("a==b:"+(a==b)); //结果为true,因为a和b指向了同一个Integer对象,
							   //因为当数值在byte范围内时,对于新特性,如果该数值的对象已经存在,则不会再开辟新的空间。
							   //byte的范围:-128~127
	}	
	public static void sop(Object obj){
		System.out.println(obj);
	}	
	public static void method(){
		Integer x = new Integer("123"); //此对象表示字符串参数所指示的int值
		Integer y = new Integer(123);	//此对象表示指定的int值		
		sop("x==y:"+(x==y)); //两个对象,内存地址不同,false
		sop("x.equals(y):"+x.equals(y)); //两个对象内容相同,即int值相同,true
	}
}

转载于:https://www.cnblogs.com/rockray/p/3612013.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值