简介
本文主要介绍String,StringBuffer,StringBuilder三者的区别,如有问题或者补充,欢迎评论区
项 | String | StringBuffer | StringBuilder |
---|---|---|---|
可变性 | 不可变。 原因:Value数组是final类型,所以每次操作的都是新对象 | 可变。 原因:其父类是(AbstractStringBuffer)的Value数组不是final修饰 | 可变。 原因:其父类是(AbstractStringBuffer) 的Value数组不是final修饰 |
线程安全性 | 线程安全。 原因:Value数组是final类型修饰 | 线程安全。 原因:方法都了synchronized锁(单线程的情况不建议使用,效率太低) | 线程不安全。 原因:方法没有加锁;(单线程情况下建议使用,速度快,多线程会出现安全问题,不建议使用) |
留言