zoukankan      html  css  js  c++  java
  • Long.ValueOf("String") Long.parseLong("String") 区别 看JAVA包装类的封箱与拆箱

    IP地址类型转换原理:
    将一个点分十进制IP地址字符串转换成32位数字表示的IP地址(网络字节顺序)。
    将一个32位数字表示的IP地址转换成点分十进制IP地址字符串。


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

    [java] view plaincopy
    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获得 

    [java] view plaincopy
    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,就必须以对象实现。

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


    2018-05-10更新

    今天用findBugs检查代码发现“Boxing/unboxing to parse a primitive A boxed primitive is created from a String, just to extract the unboxed primitive value. It is more efficient to just call the static parseXXX method.”这个问题,原来jdk的打包/拆包中直接用:
    ```java Orders order = orderService.getOrderDetailById(Long.valueOf(orderId)); ``` 中的对应的valueOf没有将参数申明为String类型然后调用包装类对应的parseXXX效率高,以后得改过来写法。
  • 相关阅读:
    STOAdiary20110315完成的任务
    java MD5 密码加密例子
    STOAdiary20110316完成的任务
    个人实习总结
    STOAdiary20110317完成的任务
    Android 操作XML的几种方式
    Ubuntu 桌面图标不见,鼠标右键的问题
    20110329日记
    MySql 中文问题的处理
    20110312wmh日记
  • 原文地址:https://www.cnblogs.com/jpfss/p/9019257.html
Copyright © 2011-2022 走看看