String类小知识

1.String类底层是由char[]数组实现的。
2.subString方法java7之后和之前的不同。之前的subString是共享之前的对象。导致之前长度的字符串无法被回收,存在内存泄漏的风险。java7之后使用拷贝的方法,把原来的字符串拷贝一份再裁剪,原来的对象就会被回收。效率会慢一点。
3.“+”的重载,String s = "A"+"B";相当于(new StringBuilder("A").append("B").toString();
4.String类不可变性,每次改变都是新建一个对象。如果有多次改变的需求,应该使用StringBuffer或者StringBuilder类。StringBuffer是线程安全的,效率慢。StringBuilder反之。
5.Swich支持String类,编译后发现其实case的是String类的hashCode,然后再用equals比较字符串。swich其实只支持一种类型,就是整型。


参考:http://www.hollischuang.com/archives/1330

 

posted @ 2018-03-21 10:26  NG柠檬  阅读(146)  评论(0编辑  收藏  举报