String.valueof;和String = ""+1;的区别
关于字符串的+操作,单纯的String s ="" +11;编译器会看做常量""和常量11的拼接操作,常量计算最快;String.valueOf会调用方法,速度上会稍慢于常量+操作;另外,如果是这样:String str = "";String s = str+11;就不是常量+操作了,会通过SringBuilder(JDK1.6还是1.5版本开始用StringBuilder替换StringBuffer来实现字符串+)的append操作来拼接。耗时上看,常量+操作 最快,String.valueOf次之,字符串对象+操作最慢。可以通过javap -c 看看具体操作步骤,也可以通过测试代码直观比较耗时:
public static void main(String[] args) { long t = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { String s0 = String.valueOf(11); } System.out.println("耗时" + (System.currentTimeMillis() - t)); t = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { String s = "" + 11; } System.out.println("耗时" + (System.currentTimeMillis() - t)); String str = ""; t = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { String s = str + 11; } System.out.println("耗时" + (System.currentTimeMillis() - t)); }
测试结果
String.valueof;和String = ""+1;的区别的更多相关文章
- Java中String字符串toString()、String.valueOf()、String强转、+ ""的区别
Object#toString(): Object object = getObject(); System.out.println(object.toString()); 在这种使用方法中,因为ja ...
- 转换String三种方式比较:toString()、String.valueOf()、(String)
简单介绍: 1.toString,需要保证调用这个方法的类.方法.变量不为null,否则会报空指针. 2.String.valueOf.这个方法在使用的时候是有些特殊的.一般情况下,如果是确定类型的n ...
- String、toString、String.valueOf()三个有啥区别?
今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ...
- toString(),String.valueOf,(String)在处理空对象时的区别
public static void main(String[] args) { Map<String,Object> map = new HashMap<>(); map.p ...
- toString()、String.valueOf、(String)强转
1.基本类型 (1)基本类型没有toString()方法 (2)推荐使用String.valueOf(); (3)无法强转 =========补========= (String)是标准的类型转换,将 ...
- java中String.valueOf()和toString()方法的区别
http://www.ztyhome.com/android-tostring-string-valueof-diff/
- Java中区别.toString() ,(String),valueOf()方法
在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString(),(String)要转换的对象,St ...
- java.toString() ,(String),String.valueOf的区别
在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 常用的方法有Object#toString(),(String)要转换的对象,S ...
- 关于 java.toString() ,(String),String.valueOf的区别
今天,在群里有一个妹子问我一个问题,我开始时草草帮她解答,后来她说她还是没懂,然后自己仔细看了看,才发现自己其实更本没说清楚其中的道理,在查看源代码和API然后在网上看看前辈们的文章才知道了,这个问题 ...
随机推荐
- JS事件监听手机屏幕触摸事件 Touch
JS移动客户端--触屏滑动事件 移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的t ...
- nginx自动生成缩略图
网站上常常一张图片,多个地方需要使用不同的尺寸,一般的方案是上传的时候,根据不同的尺寸用程序生成多张图片. 这么做有两个缺点: 1.如果需要新的尺寸图片的话,只能遍历下数据库,重新生成一次图片. 2. ...
- 异常来自HRESULT:0x80070422
今天同事使用一个用VB.NET2008开发的应用程序时提示“出现了下列应用程序错误:无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动.(异常来自HRESULT:0x80070422)” ...
- 文件读写网络IO简单了解,同步IO和异步IO
在Linux中,对文件的读写其实就是IO. 与IO有关的名词:同步,异步,阻塞,非阻塞,甚至是同步阻塞,同步非阻塞,异步阻塞,异步非阻塞.别急,下面有举例IO分为两大种,同步和异步 同步IO:阻塞IO ...
- phpstorm 代码片段使用方法
原文链接: http://wwwquan.com/show-66-121-1.html 4.Live Templates代码片断 A)我们先介绍一个代码片段最基本的功能,我们要实现的目标是在html文 ...
- 'workspace' in VS Code
What is a 'workspace' in VS Code? You can save settings at the workspace level and you can open mult ...
- git commit的规范
https://www.yuque.com/fe9/basic/nruxq8#6c228def 制定一个 git commit 信息的提交规范是开发团队工作流必不可少的环节.试想一下,如果查看主分支上 ...
- 雷林鹏分享:Ruby 异常
Ruby 异常 异常和执行总是被联系在一起.如果您打开一个不存在的文件,且没有恰当地处理这种情况,那么您的程序则被认为是低质量的. 如果异常发生,则程序停止.异常用于处理各种类型的错误,这些错误可能在 ...
- redhat7下mysql5.7.12重启电脑后起不来问题
环境介绍: 64位reahat7 mysql5.7.12 初次安装后mysql运行是正常的,重启操作系统后检查mysql运行状态如下: [root@localhost ~]# systemctl st ...
- UVA-10570 Meeting with Aliens (枚举+贪心)
题目大意:将一个1~n的环形排列变成升序的,最少需要几次操作?每次操作可以交换任意两个数字. 题目分析:枚举出1的位置.贪心策略:每次操作都保证至少一个数字交换到正确位置上. # include< ...