java学习之基本数据类型对象包装类
基本数据类型对象包装类:
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为,丰富了该数据的操作。
byte Byte short Short
int Integer long Long
float Float double Double
char Character boolean Boolean
该包装对象主要用于基本类型和字符串之间的转换
基本类型——>字符串
1、基本类型数值+“”
2、用String类中的静态方法valueOf(基本类型数值);
字符串——>基本类型
1、使用包装类中的静态方法 xxx parseXxx("xxx类型的字符串");
int parseInt("intstring");
long parseLong("longstring);
。。。
只有Character中没有parse方法。
2、如果字符串被Integer进行对象的封装。
可以是用另一个非静态的方法,intValue();
将一个Integer对象转成基本数据类型值。
进制转换:
十进制———->其他进制
private static void IntegerMethodDemo1()
{
System.out.println(Integer.toBinaryString(16));//10000
System.out.println(Integer.toHexString(60));//3c
System.out.println(Integer.toOctalString(20));//24
//指定进制转换
System.out.println(Integer.toString(38, 3));//把38转成3进制,1102
}
其他进制——->十进制
private static void IntegerMethodDemo2()
{
System.out.println(Integer.parseInt("3C", 16));//16进制的3C是十进制的60
System.out.println(Integer.parseInt("111", 2));//2进制的111是十进制7
System.out.println(Integer.parseInt("70", 8));//8进制的70是十进制的56
}
下图中创建两个Integer对象num1和num2。第5行输出false是因为两个对象的引用参考到不同的对象上,
也就是说它们的地址不同,所以输出false。第6行输出true是因为Integer类中重载了Object类中的equals方法,
比较的是两个对象里值的大小,相等所以输出true。第7行用compareTo比较两个对象的值的大小,如果
相等输出0,调用对象的值小于参数对象的值输出-1,调用对象的值大于参数对象的值输出1。
第8-9行的写法是自动装箱的写法,简化了书写,其实其内部还是Integer a1 = new Integer(127)。
第10行输出true,第14行输出false是因为jdk1.5后自动装箱,如果装箱的数据是一个字节,那么该数据会被共享,
不会重新开辟空间。一个字节能存储的最大整数为127,所以超过127的数字,就要重新开辟空间,结果才会输出false。
private static void IntegerMethodDemo3()
{
Integer num1 = new Integer("5");
Integer num2 = new Integer(5);
System.out.println(num1 == num2);//false
System.out.println(num1.equals(num2));//true
System.out.println(num1.compareTo(num2));//0
Integer a1 = 127;
Integer b1 = 127;
System.out.println(a1 == b1);//true
System.out.println(a1.equals(b1));//true
Integer a2 = 128;
Integer b2 = 128;
System.out.println(a2 == b2);//false
System.out.println(b2.equals(b2));//true
}
还没有评论,来说两句吧...