java毕向东听课笔记20(基本数据类型包装类)

基本数据类型对象包装类的最常见作用就是用于基本数据类型和字符串类型之间做转换。


基本数据类型转成字符串:

基本数据类型+“”

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

如:Integer.toString(34);//将34整数变成“34”;

字符串转成基本数据类型:

静态方法:

xxx a = Xxx.parseXxx(String);

eg.int a = Integer.parseInt("123");

非静态方法:

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

         int num = i.intValue()

十进制转成其他进制:

toBinaryString();

toHexString();

toOctalString();

其他进制转化成十进制:

parseInt(String,radix);

eg:int x = Integer.parseInt("3c",16);//代表把16进制的3c转化成十进制,然后赋值给x。

------------------------------------------------------------------

JDK1.5以后新特性

自动装箱:

Integer x = new Integer(4);

等同于Integer x = 4;//x是引用,4是对象,不是基本数据类型

自动拆箱:(接上)

x = x/* x.intValue() */+ 2 ;

需要注意的是,如下代码:

class IntegerDemo{
	public static void main(String[] args){
		Integer m = 128;
		Integer n = 128;
		
		sop("m==n:"+(m==n));
		
		Integer a = 127;
		Integer b = 127;
		
		sop("a==b:"+(a==b));
	}
	public static void sop(String str){
		System.out.println(str);
	}
}


为什么会出现这种现象呢?

解释:

m==n结果为false很好理解,因为新特性省略了自动装箱的过程,所以实际上是new了两个对象,自然对应内存中两片存储空间,所以结果为false。

而a==b结果为true的原因是因为当数值在byte范围(-128~127)内时,对于新特性,如果该数值已经存在,则不会再开辟新的空间。即a和b指向同一个Integer对象。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值