解决方案 »
- 为什么我每次配置struts2,老出现404。
- java通过poi读写excel写入oracle!!!请高手代码
- javascript中load另一个页面,是否可以启用sturts标签取值?
- 怎样让struts2的set标签能像jstl的set标签一样使用?
- 请大家帮我看看这个错误该怎么解决
- 很困难的一个问题 关于屏蔽ie下载功能 或是在线浏览office
- 感觉JAVA的数组处理能力没有别的语言灵活
- 为什么delphi接收不到axis的webservice 服务器端返回的对象呀.........
- 各位老大,如何删除weblogic建好的域
- 刚下载的JBUILDER5 不能进行EJB开发(NEW中为虚)为什么?
- json对象转换问题
- 线程安全,多线程,同步,异步这些概念都是什么意思
http://blog.csdn.net/jiangnan2014/article/details/21742701
不同的方法。
其实主要是String中的:
private final char value[];
private final int count;
private final int offset;
http://hi.baidu.com/ishanlin/item/0f7314ec7458efc0baf37d11
2、String 你可以看它的api,定义为public final class String, 所以它是不可变的,我们通常会这么做,String a = "a"; String b = "b"; a = a + b;其实这样做JVM会开辟个新地址表示新的结果a,所以这样加大了JVM的开销。
3、StringBuffer没有2中的问题,你直接StringBuffer sb = new StringBuffer(); sb.append("ab");但是他是线程安全的,效率就不怎么高,所以Java API推荐使用StringBuilder,这个和StringBuffer一样,只是是非线程安全,效率也会高点。
stringbuffer的值可以变化
一直都是同一个对象
而string是不能变化的
就是说如果对一个字符串有多次增加等操作的话
用stringbuffer一直是一个对象
而用string会生成很多个对象
这样效率没有stringbuffer高