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

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


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

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

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


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaLong.valueOf() 和 Long.parseLong() 方法都可以将字符串转换成 Long 类型的数值,但它们有以下区别: 1. 返回值类型不同:Long.valueOf() 方法返回 Long 对象,而 Long.parseLong() 方法返回基本数据类型 long。 2. 异常处理不同:当字符串无法转换成 Long 类型时,Long.valueOf() 方法会抛出 NumberFormatException 异常,而 Long.parseLong() 方法不会抛出异常,而是返回 0。 3. 对参数的要求不同:Long.valueOf() 方法的参数可以为 null,此时它会返回 null。而 Long.parseLong() 方法的参数不能为 null,否则会抛出 NullPointerException 异常。 具体地说,Long.valueOf() 方法会先调用 Long.decode() 方法将字符串转换成相应的 Long 类型数值。如果字符串以 0x 或 0X 开头,则按照十六进制解析;如果字符串以 0 开头,则按照八进制解析;否则按照十进制解析。如果字符串无法解析成 Long 类型,则抛出 NumberFormatException 异常。如果参数为 null,则返回 null。 而 Long.parseLong() 方法是直接将字符串按照十进制解析成 long 类型的数值。如果字符串无法解析成 long 类型,则返回 0。如果参数为 null,则抛出 NullPointerException 异常。 因此,在使用时,如果你希望能够处理异常,那么应该使用 Long.valueOf() 方法;如果你不需要处理异常,而且希望能够将 null 转换成 0,那么可以使用 Long.parseLong() 方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值