String、StringBuffer、StringBuilder

String简介:

String是一个由final修饰的类,所以String无法被继承,并且Sring中的所有成员方法都默认为final方法。

String类文件的部分源码

从源码中可以得知String类是通过char数组来保存字符串的,并且char数组被final修饰,所以说String只能被赋值一次(这里如果有异议请看另一篇文章“final关键字”),

这里只列出了substring方法,其他方法就不一一列举了

从源码中再次了解到String的任何一个change操作其实都new Char[]了,所以:String对象一旦被创建就固定不变了,对String对象的任何change操作都不会影响原来的值,长期不用的值最终会被GC处理掉,在开发当中尽可量的少创建String对象。

StringBuilder 和 StringBuffer 简介:

由于对String对象的频繁操作大部分都是从新的创建一个新的对象,对于内存空间造成了极大的浪费,所以才出现的StringBuilder和StringBuffer,在功能上他俩之间并没有太大的区别,最主要的就是StringBuilder为非线程安全的,StringBuffer为线程安全的。·所以在实际工作当中如果能确定操作为单线程的时候一定要使用StringBuilder,如果能确定为多线程中操作一定要使用StringBuffer,

String   StringBuilder    StringBuffer 三者继承结构

姓名:爱新觉罗胖小

说明:第一次写文章,有不对,不全的地方请大家评论留言我会及时改正。

你可能感兴趣的:(String、StringBuffer、StringBuilder)