黑马程序员:基本数据类型对象包装类

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

基本数据类型对象包装类

byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double


基本数据类型转成字符串类型
基本数据类型.toString(基本数据类型值);
如: Integer.toString(34);//34(字符串)
String.valueOf(34);
问题:为什么String.valueOf(34)==Integer.toString(34)为false
hashCode和equals虽然都相同,但hashCode并非一定是此对象的内存地址值,所以两个对象不相同,所以为false


字符串转成基本数据类型 
static int parseInt(); //静态调用方式
int intValue(); //对象调用方式
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
...
boolean b = Boolean.parseBoolean("true");
十进制转成其他进制:
toBinaryString();
toHexString()
toOctalString();

其他进制转成十进制:
parseInt(string,radix);
示例:3c(16进制)转化为十进制 int num = Integer.parseInt("3c",16);


示例:
class IntegerDemo
{
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
	public static void main(String[] args)
	{
		//整数类型的最大值
		sop("int类型最大值:"+Integer.MAX_VALUE);
		int num = Integer.parseInt("123");
		long x = Long.parseLong("123");
		sop("num="+(num+4));
		sop(Integer.toHexString(60));
		int hextoint = Integer.parseInt("3c",16);
		sop("16进制3c的10进制:"+hextoint);
	}
}

Integer x = new Integer("123");
Integer y = new Integer(123);
return x==y; false 因为是两个对象
return x.equals(y); true,因为equals方法被Integer覆盖,比的是数值


JDK1.5版本以后出现的新特性:
特性一:
// Integer x = new Integer(4);
Integer x = 4; //自动装箱 new Integer(4);
x = x/*x.intValue()*/+2; //x+2,x进行自动拆箱,变成了int类型,和2进行运算,运算完后,再将和进行装箱赋给x
int y = 4;
return x==y; //返回true,就是因为JVM会对其自动拆装箱

特性二:
Integer m =128;
Integer n =128;
return m==n; //false
Integer m =127; //127是byte取值范围内
Integer n =127;

return a==b; //true 因为a和b指向了同一个Integer对象,当数值在byte范围内,对于新特性,如果该数值已存在,则不会再开辟新的空间

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值