Long.ValueOf("String") Long.parseLong("String") 区别 看JAVA包装类的封箱与拆箱
long,字符串中的字符必须都是十进制数字。
- parseLong(String s)
- |-->return parseLong(s, 10); //返回一个long开的result基本类型值
2.Long.ValueOf(String) ,参数String表示,指定 String
的值的 Long
对象。该参数被解释为表示一个有符号的十进制 long,
该值与用该参数作为参数的 parseLong(java.lang.String)
方法得到的值非常相似。只是最后被转换为一个Long的包装类。
- 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获得
- 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,就必须以对象实现。
所谓的装箱指的是基本类型转换为包装类型,拆箱指的是包装类型转换为基本类型。
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包装类的封箱与拆箱的更多相关文章
- Java中String.valueOf、toString、(String)的区别
原文地址http://blog.csdn.net/yangzhaomuma/article/details/51173138 原文地址https://www.cnblogs.com/xhyouyou/ ...
- 从源码看String,StringBuffer,StringBuilder的区别
前言 看了一篇文章,大概是讲面试中的java基础的,有如题这么个面试题.我又翻了一些文章看了下,然后去看源码.看一下源码大概能更加了解一些. String String类是final的,表示不可被继承 ...
- String使用机制及string.equals()和==的区别(转)
http://904582819.blog.163.com/blog/static/11159282020127794456840/ equals方法和==的区别 首先大家知道,String既可以 ...
- String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
本章主要介绍String和CharSequence的区别,以及它们的API详细使用方法. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/string01. ...
- Java中main函数参数String args[] 和 String[] args 区别
其实没什么区别的:当初我也是这样的疑问,呵呵:非要说区别就看下面:执行效果上没有不同, 但在语法意义上略有不同. 比如, String与String[], 前者叫字符串类型而后者叫字符串数组类型. S ...
- [置顶] String StringBuffer StringBuilder的区别剖析
这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...
- string与stringbuilder的区别
1.分析string与stringbuilder的区别,我们先来看下面一段代码 首先我们使用string进行字符串的拼接 class Program { static void Main(string ...
- 转:String.Empty、string=”” 和null的区别
原文地址:http://www.cnblogs.com/fanyong/archive/2012/11/01/2750163.html String.Empty是string类的一个静态常量: Str ...
- String.Empty、string=”” 和null的区别
String.Empty是string类的一个静态常量: String.Empty和string=””区别不大,因为String.Empty的内部实现是: 1 2 3 4 5 6 7 8 9 10 1 ...
随机推荐
- swift 循环语句
// // main.swift // switch // // Created by lanou on 16/10/21. // Copyright (c) 2016年 lanou. All rig ...
- 51nod——1086、1257背包问题V2(多重背包二进制拆分转01) V3(分数规划+二分贪心)
V3其实和dp关系不大,思想挂标题上了,丑陋的代码不想放了.
- XPATH如何选择,t选取,包含某一属性的节点, 不包含某一个属性的节点?
https://blog.csdn.net/manmanpa/article/details/56282741 //tbody/tr[@class] 包含 //tbody/tr[not(@class) ...
- git线上线下冲突
今天用git pull来更新代码,遇到了下面的问题: error: Your local changes to the following files would be overwritten by ...
- python3 练习题100例 (十二)
题目十二:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153 ...
- python3爬虫之Urllib库(一)
上一篇我简单说了说爬虫的原理,这一篇我们来讲讲python自带的请求库:urllib 在python2里边,用urllib库和urllib2库来实现请求的发送,但是在python3种在也不用那么麻烦了 ...
- C++实例 MySTLString
#include <iostream> #include <cstring> #include <string> using namespace std; clas ...
- [Hdu3507]Print Article(斜率优化)
Description 题意:给N个数,按顺序全部取走,每次取一段连续的区间,代价为\((S[i]-S[j])^2+M\) 其中M为一个给定的常数,\(S[i]\)为前缀和 \(N\leq 50000 ...
- C++ 11 从C++ primer第五版的学习笔记
1. auto (page107) auto 推断会忽略const const int ci = i, & cr = ci; auto b = ci; // b is an int (to ...
- 求 1 到 n 的所有数的约数和
求 1 到 n 的所有数的约数和 暴力方法就是枚举每个数,算出他的约数和即可,这样有点慢. 另一种思路,枚举约数,判断他是谁的约数,并记录(即他的倍数有多少个),在乘以他自己. n/i求的是n以内,i ...