择善JAVA学习String和StringBuffer

来源:互联网 发布:php redis 队列算法 编辑:程序博客网 时间:2024/06/05 09:26

      String其实就是字符数组,String str="abc";

等效于:
     char data[] = {'a', 'b', 'c'};
     String str = new String(data);

那么String就是字符数组,有关数组的操作在String就有,每个字符其实都有一个下标。


而StringBUffer是一个容器,操作增删改查用这个比较好。

String和StringBuffer的区别相当于数组和ArrayList的区别。

      如果用String增字符串和另一个字符串相加用+号,操作的是常量池,那么原来两个字符串还在常量池,又增加了一个加上去后的字符串,等于有三个字符串存在常量池,而其中有两个是没有用的。如果操作的多,就会造成常量池溢出,浪费内存,而常量池是不会回收的。

而StringBuffer操作字符串相加用append,操作的是堆内存。堆内存中有匿名的个体,垃圾回收机制会回收,不会造成内存溢出。所以用字符串的加长、减少等用StringBuffer。

String和StringBuffer是兄弟的关系,不是谁是谁的父亲,都是Object的子类,都是lang包,自动导入。

0 0
原创粉丝点击