分享

从Long.ValueOf("String")与Long.parseLong("String")看JAVA包装类的封箱与拆箱

 馆天下ccf 2014-12-30

1.Long.ParseLong(String)方法,将 string 参数解析为有符号十进制 long,字符串中的字符必须都是十进制数字。

  1. parseLong(String s)  
  2.   |-->return parseLong(s, 10);  //返回一个long开的result基本类型值  
 

2.Long.ValueOf(String) ,参数String表示,指定 String 的值的 Long 对象。该参数被解释为表示一个有符号的十进制 long,该值与用该参数作为参数的 parseLong(java.lang.String) 方法得到的值非常相似。只是最后被转换为一个Long的包装类。

 

  1. public static Long valueOf(String s) throws NumberFormatException  
  2.    {  
  3.      return Long.valueOf(parseLong(s, 10));  
  4.       |-->return Long.valueOf(parseLong(s, radix));  
  5.            |-->final int offset = 128;  
  6. if (l >= -128 && l <= 127) { // will cache  
  7.     return LongCache.cache[(int)l + offset];  
  8. }  
  9.        return new Long(l);  
  10.    }  
  11.    }  

3.long a = new Long(String) 实质为构造实例时,在toString中调用了String.valueOf获得 

  1. public Long(String s) throws NumberFormatException {  
  2. this.value = parseLong(s, 10);  
  3.    }  
 

4.Long.decode(String) 方法,特点是将 String 解码成 Long。接受通过以下语法给出的十进制、十六进制和八进制数:比如ox11,转换为17

 

 

5.Java包装类型的装箱拆箱机制

JAVA基本类型,不用new来创建变量,而是创建一个并非是“引用”的“自动”变量。这个变量拥有它的“值”,并置于堆栈中,因此更加高效。

Java中的某些操作只能使用对象,而基本类型不是类类型,不能实例化成对象,比如Collection,就必须以对象实现。

        所谓的装箱指的是基本类型转换为包装类型,拆箱指的是包装类型转换为基本类型。


   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多