【基本数据类型对象包装类】
想要对基本类型数据进行更多的操作,最方便的方式就是将其封装成对象。
为啥呢?因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行操作。
【八种基本数据类型的包装类】
byte ——Byte
short ——Short
int ——Integer
long-----Long
float-----Float
double----Double
char----Character
boolean---Boolean
【基本数据类型变成对象包装类的好处】
可以将基本数据和字符串之间进行互相的转换。
如:int类型的取值范围是多少?
这就应该去查 Integer —— Integer.MAX_VALUE ;
【基本数据类型包装类的主要作用: 进行基本数据类型和字符串之间的转换】
【基本类型数据 转为 字符串 的三种方式】
1. 基本数据类型对象包装类中的方法 static String toString(基本类型);
2. String类中的方法: static String valueOf(基本类型)
3. 基本类型数据 +“ ”;
【重点要掌握的就是:】
字符串---->基本类型数据。
返回值类型——>基本类型 ;参数——>字符串。
基本数据类型 变量名 = 基本数据类型包装类.parseXxx(XxxString);
Long l = Long.parseLong("4546545646546");
System.out.println(Integer.parseInt("23") + 1);
在八个基本类型对象包装类中只有一个对象没有parse方法,就是Character.
【类型转换错误】——NumberFormatException——数字格式异常——我碰到了,因为我多加了一个 空格。
【Integer中要掌握的方法】涉及到一个进制转换的问题。
十进制-->其他进制。
二进制:static String toBinaryString(int);
16进制:static String toHexString(int);
八进制:static String toOctalString(int);
其他进制——>转成十进制;
Integer.toString(6 , 2); 将6转换为二进制。
parseInt(intString , radix);
System.out.println(Integer.parseInt("110") , 2);
————————————————————————————————
【基本数据类型值 和 基本类型数据对象之间的转换】
使用构造函数——Integer();
即可以接受基本数值,也可以接收基本数值的字符串形式。
可以使用基本类型对象中的方法。 static Integer valueOf(int);
【基本类型的对象 和 基本数据类型数值】
int intValue();
如:
Integer i = new Integer(34);
int num = i.intValue( );
System.out.println(num);
————————————————————————————————————————————
【如果两数被封装成了对象该如何比较呢?】
【 基本数据类型的比较——用比较运算符; 引用数据类型使用compareTo进行比较。】
int compareTo( Integer anotherInteger ) 在数字上比较两个Integer对象。
在数值上比较两个Integer对象。以0 正数 负数 比较两个数多的大小。
Integer a = new Integer(7);
Integer b = new Integer(5);
System.out.println(a.compareTo(b));
【重点】
对象想要进行比较,必须通过方法来完成,这个方法就是compareTo。
而很多对象都可以进行比较。所以这个方法定义在Comparable接口中。
想要对象具备比较功能,只要实现Comparable接口。
【练习题】。
————————————————————————————————————————————————
【基本数据类型对象包装类JDk1.5以后的新特性】——【自动拆箱,装箱】
简化书写。
Integer i = new Integer(5);
基本数据类型对象包装类,对象创建的简化写法Integer i = 5;
1. Integer i = 5;(其实在内存中也是通过 new Integer(5)这种方式创建的!)
这种方式成为——自动装箱,Integer.valueOf(5)自动完成了对象创建的动作。
2. 在进行 i = i + 5,运算时——
= 右边的i 会先转成基本数据值(自动拆箱)i.intValue(),其实质为:
i = i.intValue() + 5 ;然后再和5进行加法运算。
= 右边运算完的结果,再次被自动装箱变成Integer对象赋给i.
一旦简化就有弊端:多具备一个值null. 使用自动装箱拆箱时,要进行null的健壮性判断。
【实例】
Integer x = null;
x = x.intValue() + 4; x为null 不能调用方法,此时会发生:NullPointerException异常。
————————————————————————————————
Boolean b = true; boolean b = true;的区别
答:前者:类类型变量指向一个对象,true为一个对象;
后者:true为基本类型变量。
————————————————————————————————
在JdK1.5的新特性自动装箱中,如果数值在byte类型范围内(-128 ~ 127)。如果该对象数值重复出现
多个引用其实是指向同一个Integer对象,节省空间!但是超出了byte范围,都会生产新的Integer对象。
Integer m = 127;
Integer n = 127;
System.out.println( m == n); //true
System.out.println(m.equals(n)); //true
____________________________________
Object x = 5;Object x 接受到了一个Integer对象,自动装箱。
然而 Object不可以接受基本数据类型。
基本数据类型对象包装类
原文:http://www.cnblogs.com/kydnn/p/4508979.html