您的位置:首页 > 产品设计 > UI/UE

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

2016-03-30 19:51 531 查看
 


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

标签: stringjavacache
2011-04-25 20:03 16742人阅读 评论(1) 收藏 举报

本文章已收录于: 


 Java
SE知识库


版权声明:本文为博主原创文章,未经博主允许不得转载。

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


[java] view
plain copy

parseLong(String s)  

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

 

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

[java]
view plain
copy

public static Long valueOf(String s) throws NumberFormatException  

   {  

     return Long.valueOf(parseLong(s, 10));  

      |-->return Long.valueOf(parseLong(s, radix));  

           |-->final int offset = 128;  

if (l >= -128 && l <= 127) { // will cache  

    return LongCache.cache[(int)l + offset];  

}  

       return new Long(l);  

   }  

   }  

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

[java] view
plain copy

public Long(String s) throws NumberFormatException {  

this.value = parseLong(s, 10);  

   }  

 

4.Long.decode(String) 方法,特点是将 
String
 解码成 
Long
。接受通过以下语法给出的十进制、十六进制和八进制数:比如ox11,转换为17
 
 
5.Java包装类型的装箱拆箱机制
JAVA基本类型,不用new来创建变量,而是创建一个并非是“引用”的“自动”变量。这个变量拥有它的“值”,并置于堆栈中,因此更加高效。
Java中的某些操作只能使用对象,而基本类型不是类类型,不能实例化成对象,比如Collection,就必须以对象实现。
        所谓的装箱指的是基本类型转换为包装类型,拆箱指的是包装类型转换为基本类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: