String StrigBuffer StringBuilder 浅解
Posted 砥砺前行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String StrigBuffer StringBuilder 浅解相关的知识,希望对你有一定的参考价值。
1.String是最基本的字符串类,用于表示字符串。
特点:对象内容不可变,但可以通过指向不同的对象来“表示”不同的内容。
使用场景:如果不涉及到内容改变,可以使用String。
注意:如果想将String作为输出型参数,抱歉,做不到。 方法返回后,内容还是没有赋上值。具体原因就得追究到内存原理上了。此处不再叙述。
2.StringBuffer:针对String要改变内容必须指向别的对象的缺陷而设计,StringBuffer可以直接改变其内容,不需要指向别的对象。
特点:内容可改变(通过append/insert等方法); 线程安全。
使用场景:字符串内容需要不断进行改变的地方,比如不断重组,且需要保证线程安全。
3.StringBuilder:同StringBuffer。
与StringBuffer区别在于:StringBuffer是线程安全的,而StringBuilder是线程不安全的。但效率上来说,StringBuilder比StringBuffer高。
使用场景:字符串内容需要不断进行改变的地方,比如不断重组,且就是在单线程中使用,不涉及到线程安全。
综上可知,实际中的场景应该是使用String和StringBuilder比较多。
以上是关于String StrigBuffer StringBuilder 浅解的主要内容,如果未能解决你的问题,请参考以下文章
在 Spark Scala 中将 RDD[(String, String, String)] 转换为 RDD[(String, (String, String))]
“字符串”类型的参数不可分配给“$string”类型的参数 | `$string.$string` | `$string.$number`'
Activity 类型的方法 managedQuery(Uri, String[], String, String[], String) 已弃用