PoeticalJustice

导航

常用类一一基本数据类型的包装类(WrapperClass)一一Byte Short nteger Long Float Double Character Boolean

为什么需要包装类?

JAVA是支持跨平台的。可以在服务器 也可以在手机上运行

基本数据类型 在栈中  效率更高

包装类 将数据类型转换成对象 在 堆中  利于操作

 1 package cn.bjsxt.wrapperclass;
 2 /**
 3  * wrapperclass包装类
 4  * 包装类位置lang包 不需要导入
 5  * 
 6  * @author Administrator
 7  *
 8  */
 9 public class Test01 {
10     public static void main(String[] args) {
11         //将1000转成对象
12         Integer i  = new Integer(1000);
13          //整数的最大值
14         System.out.println(Integer.MAX_VALUE);
15         //用16进制表示
16         System.out.println(Integer.toHexString(i));
17         // 将字符串转成整数 赋值给i2
18         Integer i2 = Integer.parseInt("123");
19         System.out.println(i2);
20         //+10
21         System.out.println(i2+10);
22         Integer i3 = new Integer("233");
23         System.out.println(i3);
24         Integer i4 = Integer.parseInt("55");
25         System.out.println(i4);
26         //数字变成字符串 直接拼接
27         String str = 125+"";
28         System.out.println(str);
29     }
30 }

 自动装箱和自动拆箱

 auto-boxing and unboxing

自动装箱

基本类型就自动封装到与他相同类类型的包装类中,如:

Integer  i =1000;

本质是 编译器为 我们添加了

 Inteager i = new Integer(1000);

自动拆箱

包装类对象自动转成基本数据类型。如:

int a = new Inteager(1000);

本质是, 编译器为我们添加了

int a = new Integer(1000).intValue();

 1 public class test02 {
 2     public static void main(String[] args) {
 3         //自动装箱
 4         //Integer i = new Integer(1000);
 5         Integer i = 1000;//JDK1.5之后 编译器帮我们写 Integer i = new Inteager(1000);
 6         Integer b = 2000;
 7         //自动拆箱
 8         int c = new Integer(1000);//编译器帮我写了 new Integer(1000).intValue();
 9         int d = b;//相当于 int d = b.intValue();
10         
11         System.out.println(d);
12         
13         Integer a3 =1234;
14         Integer a4 =1234;
15         System.out.println(a3==a4);//false 因为是不同对象 地址不同
16         System.out.println(a3.equals(a4)); //true 值相等
17         
18         System.out.println("#######################");
19         //[-128,127]之间的数 仍然按照基本数据类型来处理 为了提高效率 基本类型比对象快 
20         //他也封装了 不过在运行时 又变回基本数据类型 为了效率
21         Integer a =127;
22         Integer a2 =127;
23         System.out.println(a==a2);//ture 为什么?上面是false 这里是ture 说好的不同对象呢 
24         System.out.println(a.equals(a2));
25         
26         Integer a5=-128;
27         Integer a6 =-128;
28         System.out.println(a5==a6);//ture 为什么?上面是false 这里是ture 说好的不同对象呢 
29         System.out.println(a5.equals(a6));
30         
31         System.out.println("########################");
32         
33         Integer a7=128;
34         Integer a8 =128;
35         System.out.println(a7==a8);//false 
36         System.out.println(a7.equals(a8));
37         
38         Integer a9=-129;
39         Integer a10 =-129;
40         System.out.println(a9==a10);//false 
41         System.out.println(a9.equals(a10));
42         
43     }
44 }

 

posted on 2017-10-05 21:56  PoeticalJustice  阅读(685)  评论(0编辑  收藏  举报