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,就必须以对象实现。

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

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效率高,以后得改过来写法。

Long.ValueOf("String") Long.parseLong("String") 区别 看JAVA包装类的封箱与拆箱的更多相关文章

  1. Java中String.valueOf、toString、(String)的区别

    原文地址http://blog.csdn.net/yangzhaomuma/article/details/51173138 原文地址https://www.cnblogs.com/xhyouyou/ ...

  2. 从源码看String,StringBuffer,StringBuilder的区别

    前言 看了一篇文章,大概是讲面试中的java基础的,有如题这么个面试题.我又翻了一些文章看了下,然后去看源码.看一下源码大概能更加了解一些. String String类是final的,表示不可被继承 ...

  3. String使用机制及string.equals()和==的区别(转)

    http://904582819.blog.163.com/blog/static/11159282020127794456840/ equals方法和==的区别   首先大家知道,String既可以 ...

  4. String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)

    本章主要介绍String和CharSequence的区别,以及它们的API详细使用方法. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/string01. ...

  5. Java中main函数参数String args[] 和 String[] args 区别

    其实没什么区别的:当初我也是这样的疑问,呵呵:非要说区别就看下面:执行效果上没有不同, 但在语法意义上略有不同. 比如, String与String[], 前者叫字符串类型而后者叫字符串数组类型. S ...

  6. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  7. string与stringbuilder的区别

    1.分析string与stringbuilder的区别,我们先来看下面一段代码 首先我们使用string进行字符串的拼接 class Program { static void Main(string ...

  8. 转:String.Empty、string=”” 和null的区别

    原文地址:http://www.cnblogs.com/fanyong/archive/2012/11/01/2750163.html String.Empty是string类的一个静态常量: Str ...

  9. String.Empty、string=”” 和null的区别

    String.Empty是string类的一个静态常量: String.Empty和string=””区别不大,因为String.Empty的内部实现是: 1 2 3 4 5 6 7 8 9 10 1 ...

随机推荐

  1. STL笔记(こ)--删除数组中重复元素

    使用STL中的Unique函数: #include<bits/stdc++.h> using namespace std; void fun(int &n) //配套for_eac ...

  2. tcl之基本语法—3

  3. java util - Hex转换工具

    测试代码 package cn.java.codec.hex; public class Test { public static void main(String[] args) { String ...

  4. Memory loss【记忆缺失】

    Memory Loss Losing your ability to think and remember is pretty scary. We know the risk of dementia ...

  5. B1056 组合数的和 (15分)

    B1056 组合数的和 (15分) 给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字.要求所有可能组合出来的 2 位数字的和.例如给定2.5.8,则可以组合出: ...

  6. HDU 1506 Largest Rectangle in a Histogram(单调栈、笛卡尔树)

    题意:给定n个连续排列的矩形的高,矩形的宽都为1.问最大矩形覆盖. 例如:n = 7,h[i] = (2 1 4 5 1 3 3),最大覆盖为8. Sample Input 7 2 1 4 5 1 3 ...

  7. 初识Java之入门学习(扫盲)

    一,开发环境的配置 1. jdk1.8的安装 2. 环境变量的配置 3.MyEclipse8.5的安装 jdk是什么: JDK 是Java开发工具包 (Java Development Kit ) 的 ...

  8. postgreysql

    基础 syntax * \help 生成所有的pg命令 * abort 终止事务/work * alter aggregate 修改聚合函数的定义 ALTER AGGREGATE name ( typ ...

  9. Windows下如何用CMD命令跳转到指定的目录下

    以Window7为例说明,想要跳转到I:\adt-bundle-windows-x86-20130219\sdk\platform-tools目录下. 1.在运行中打开CMD命令窗口如下图所示: 2. ...

  10. git---gui使用

    1.登陆的命令: git config –global user.email "1455971532@qq.com" git config –global user.name &q ...