论坛首页 Java企业应用论坛

String到底创建多少个对象及相不相等等问题的汇总

浏览 15221 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-04-12  
spyker 写道
jinnianshilongnian 写道
jyjava 写道
你开发中用的时候会去考虑这个东西吗,另外,你设计一个框架的时候会考虑这个吗,

在开发期间我并不考虑这种问题,此文的意思是:拿【new String("xyz")】面试没有意义,还不如问类似于下面的语句如何改造:
String str="";
for(int i=0;i<100000;i++) {
    str = str + i;
}



StringBuilder sb = new StrinBuilder("");
for(int i=0;i<100000;i++) {
    sb.append(i+"");
}

随手写的


考的重点
1、
   sb.append(i+"");  //直接 sb.append(i)即可,不需要+”“

2、默认容量(如果字串的长度能估算出来),指定默认容量, 如new StringBuilder(100),即不需要扩容(就没有复制数组)
0 请登录后投票
   发表时间:2012-04-12   最后修改:2012-04-12
你考scjp么 还是其他?这几天一直咬着string

用ide可能就不会写 i+""

这个性能差多少 ?感觉不差多少吧 jvm难道没有自己的优化
0 请登录后投票
   发表时间:2012-04-12  
spyker 写道
你考scjp么 还是其他?这几天一直咬着string

用ide可能就不会写 i+""

这个性能差多少 ?感觉不差多少吧 jvm难道没有自己的优化

最近总有人问 new String("abc")创建几个对象,所以做个汇总贴,放着 有问的 就看帖子 

性能你可以自己试试,我就不发了。(从时间和创建的对象数量对比)
0 请登录后投票
   发表时间:2012-04-15  
jinnianshilongnian 写道
spyker 写道
jinnianshilongnian 写道
jyjava 写道
你开发中用的时候会去考虑这个东西吗,另外,你设计一个框架的时候会考虑这个吗,

在开发期间我并不考虑这种问题,此文的意思是:拿【new String("xyz")】面试没有意义,还不如问类似于下面的语句如何改造:
String str="";
for(int i=0;i<100000;i++) {
    str = str + i;
}



StringBuilder sb = new StrinBuilder("");
for(int i=0;i<100000;i++) {
    sb.append(i+"");
}

随手写的


考的重点
1、
   sb.append(i+"");  //直接 sb.append(i)即可,不需要+”“

2、默认容量(如果字串的长度能估算出来),指定默认容量, 如new StringBuilder(100),即不需要扩容(就没有复制数组)

+1
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics