下载此文档

提高String和StringBuffer性能的技巧.docx


文档分类:建筑/环境 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
[翻译]提高String和StringBuffer性能的技巧 String和StringBuffer之概览创建字符串的较佳途径滞留字符串带来的优化连接字符串时的优化技巧借助StringBuffer的初始化过程的优化技巧关键点 String和StringBuffer之概览非可变对象一旦创建之后就不能再被改变,可变对象则能够在创建之后被改变。String对象是非可变对象,StringBuffer对象则是可变对象。为获得更佳的性能你需要根据实际情况小心谨慎地选择到底使用这两者中的某一个。下面的话题会作详细的阐述。(注意:这个章节假设读者已经具备Java的String和StringBuffer的相关基础知识。) 创建字符串的较佳途径你能够按照以下方式创建字符串对象:="hello";    Strings2="hello"; =newString("hello");   Strings4=newString("hello"); 上面哪种方式会带来更好的性能呢?下面的代码片断用来测量二者之间的区别。package;/**Thisclassshowsthetimetakenforcreationof * StringliteralsandStringobjects. */lassStringTest1{publicstaticvoidmain(String[]args){   //createStringliterals   longstartTime=();   for(inti=0;i<50000;i++){   Strings1="hello";   Strings2="hello";   }   longendTime=();   ("TimetakenforcreationofStringliterals:"                 +(endTime-startTime)+"milliseconds");   //createStringobjectsusing‘new‘keyword          longstartTime1=();   for(inti=0;i<50000;i++){   Strings3=newString("hello");   Strings4=newString("hello");   }   longendTime1=();   ("TimetakenforcreationofStringobjects:"                 +(endTime1-startTime1)+"milliseconds");   }}这段代码的输出:TimetakenforcreationofStringliterals:0millisecondsTimetakenforcreationofStringobjects:170milliseconds JVM是怎样处理字符串的呢? Java虚拟机会维护一个内部的滞留字符串对象的列表(唯一字符串的池)来避免在堆内存中产生重复的String对象。当JVM从class文件里加载字符串字面量并执行的时候,它会先检查一下当前的字符串是否已经存在于滞留字符串列表,如果已经存在,那就不会再创建一个新的String对象而是将引用指向已经存在的S

提高String和StringBuffer性能的技巧 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人梅花书斋
  • 文件大小29 KB
  • 时间2020-02-18
最近更新