本帖最后由 xingzjx 于 2015-3-14 22:01 编辑
一、java里面有8种基本数据类型,它们分别对应着相应的包装类型(基本数据类型转换成的引用类型)。分别如下
1、布尔型:boolean(Boolean)
2、字符型:char(Character)
3、数值型:
(1)浮点型:byte(Byte)、int(Integer)、long(Long)
(2)浮点型:float(Float)、double(Double)
二、享元模式与数据类型
1、装箱:基本数据类型转换成引用类型。
2、拆箱:引用类型转换成基本数据类型
3、享元模式:如果系统里面有多个相同的对象,那么只需要一份对象就行,也就是说实现了对象共享。
4、对于包装类来说,-128到127之间的整数,还有26个英文字母,还有布尔值,实现了内存共享,也就是说这个区间的数创建成引用类时,会在常量池里面开辟空间。5、包装类的作用:把基本数据类型包装成对象后,可以有自己的属性和方法,也就是说包装类有更多的操作。
三、程序demo
- public class AutoBox {
- /**
- * 装箱:基本数据类型转换成引用类型。
- * 拆箱:引用类型转换成基本数据类型
- * 享元模式:如果系统里面有多个相同的对象,那么只需要一份对象就行,也就是说实现了对象共享。
- * 对于包装类来说,-128到127之间的整数,还有26个英文字母,实现了内存共享,也就是说这个区间的数创建成引用类时,会在常量池里面开辟空间。
- * @param args
- */
- public static void main(String[] args) {
- test1();
- test2();
- test3();
- test4();
- test5();
- }
-
- private static void test1() {
- Integer iObj = 3;
- System.out.println(iObj + 12);// 拆箱
- Integer.valueOf(11);// 装箱
- }
-
-
- private static void test2() {
- // 对于-128-127的整数,包装成引用类型的时候,会把对象放到常量池里面,实现共享内存方式
- Integer i1 = 137;
- Integer i2 = 137;
- System.out.println(i1 == i2);
- Integer i3 = Integer.valueOf(213);
- Integer i4 = Integer.valueOf(213);
- System.out.println(i3==i4);
- Integer i5 = Integer.valueOf(12);
- Integer i6 = Integer.valueOf(12);
- Integer i7 = 12;
- Integer i8 = 12;
- System.out.println(i5 == i6);
- System.out.println(i7 == i8);
- }
-
- private static void test3() {
- String str1 = "a";
- String str2 = "a";
- String str3 = new String("a");
- String str4 = new String("a");
- System.out.println(str1==str2);
- System.out.println(str1==str3);
- System.out.println(str3==str4);
- }
-
- private static void test4() {
- Character c1= 'a';
- Character c2 = 'a';
- System.out.println(c1==c2);
-
- Long l1 = (long) 123423423;
- Long l2 = (long) 123423423;
- System.out.println(l1==l2);
- }
-
- private static void test5() {
- Boolean b1= true;
- Boolean b2 = true;
- System.out.println(b1==b2);
- }
- }
复制代码
|
|