A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Louis.hui 中级黑马   /  2014-8-25 22:57  /  1098 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

拆箱和装箱的作用

4 个回复

倒序浏览
/**
java中一切皆对象 :1:基本数据类型   
                   2:引用数据类型
                基本数据类型   -->为了也可以引用(类)的方式来表达。
                                    -->JDK1.5之后引入【八种数据类型的[包装类]】:用类的方式把 数据类型包装起来的一个类
          基本数据类型        包装类
                     Number的子类一个数字 :
          byte                 Byte  
          short                Short
          int                  Integer
          long                 Long
          float                Flaot
          double               Double
                         Object类直接子类:
          char                 Character
          boolean              Boolean


装箱操作-------将一个基本数据类型[值类型] 转换成 包装类型[引用数据类型]
拆箱操作-------将一个包装类型[引用数据类型] 转换成 基本数据类型[值类型]


拆箱的方法:
方法                   描述
byteValue()            Byte--->byte
intValue()             Integer--->int
shortValue()           Short--->short
longValue()            Long--->long
floatValue()           Float--->byte
doubleValue()          Double--->double
charValue()            Character--->char
booleanValue()          Boolean--->boolean

*/
class WarperClassDemo{
        public static void main(String[] args){
                //第一种包装类赋值方式:创建包装类对象。/ new关键字创建对象。
                Long X1=new Long(100);
                //第二种包装类赋值对象方式
                Long X3=1000L; //也可以叫自动装箱方式
               
                //自动拆箱【默认调用了拆箱方法longValue()】
                long X4=X3;
                //[手动装箱]实现...
                long X5=X3.longValue();

                System.out.println(X5);
System.out.println("---------------------------------------------------------");      
//@在包装类中,可以将 字符串 变成为 【指定的基本数据类型】。一般在输入数据是会使用较多的。
    /**
         如:Integer类中将String变成int数据类型:public static int parseInt(String S);
             Float类中将String变成float数据类型:public static flaot parseInt(String S);


        */
//例子
         String S1="12345";
        //第一种
         int a1=Integer.parseInt(S1);//一个字符串String 转换 为int基本数据类型
         System.out.println(a1);
        //第二种
     int aa = Integer.valueOf(S1).intValue();//一个字符串String 转换为 int基本数据类型
         System.out.println(aa);
         //第三种
         Integer a2=Integer.valueOf(S1);//把一个字符串String转换为Integer类型
         System.out.println(a2);


System.out.println("---------------------------------------------------------");
/////////////////////////////////////////////////////////////////////
     String S2="12.11";
         float a3=Float.parseFloat(S2);
         System.out.println(a3);

     Float a4=Float.valueOf(S2);
     System.out.println(a4);

     float ff = Float.valueOf(S2).floatValue();
         System.out.println(ff);

////////////////////////////////////////////////////////////////
   //String 转换成 char
      char[] ca="123".toCharArray();
          System.out.println(ca);
   //char 转换成 string
      String cc=ca.toString(); //任何类型都可以采用toStrig()转换为String类型。
///////////////////////////////////////////////////////////////////////////////////////
      Integer X10= new Integer(10);
          Integer X11= new Integer(10);
      Integer X12= 10;
          Integer X13= 10;
          Integer X14= 1000;
          Integer X15= 1000;
          System.out.println(X10==X11);
          System.out.println(X12==X13);
          System.out.println(X14==X15);//Integer直接赋值,当值为:1个字节【-128-127字节】内的数时 将使用同一个对象。
/**
享元设计模式--------
    它使用共享对象,用来尽可能减少内存的使用量以及分享资讯 尽可能多的相似对象,
        他适合用于大量的对象只是重复因而导致无法令人接受的使用大量的内存。通常对象中的部分状态可以分享。
        常见的做法:把它们放在外部数据结构,当需要使用的时候再将他们传递给享元。
        运用共享的技术有效的支持大量的【占内存少,反复创建会浪费/细粒度】的对象 反复创建会浪费


        再设计程序时。可以想到这一点,如果会大量创建对象,用这种模式,把对象创建好,要用的时候,就给他,重复使用这个对象
    例如://Integer直接赋值,当值为:1个字节【-128-127字节】内的数时 将使用同一个对象。
*/

////////////////////////////////////////////////////

  }
}



  }
}


回复 使用道具 举报
拆箱可以将字符串等类型的数据转化为基本类型;装箱可以使基本类型转为对应的引用类型,可以调用方法。拿Integer举例:字符串型的"123"(不表示具体十进制数的普通的字符集)经过转化后再拆箱可以转为int型123(一百二十三),而int型的123转回去(变为Integer类型)的话就是装箱,可以当做对象那样调用方法。这样说应该能理解吧!
回复 使用道具 举报
mark,讲的很详细
回复 使用道具 举报
2楼讲得很详细,赞个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马