jdk中StringBuilder字符串调优和intern();方法

本文探讨了Java中的字符串特性,包括String的不可变性和字符串池。介绍了StringBuilder和StringBuffer的区别,强调StringBuilder在JDK5.0后的高效性能和非线程安全性。同时,讨论了JDK在字符串拼接时的自动扩容调优,并指出intern()方法的应用,特别是静态字段中的字符串会存储在池中且不可变。
摘要由CSDN通过智能技术生成

String

  • 字符串是常量,创建之后不可改变
  • 字符串字面值存储在字符串池中,可以共享
  • String s = “Hello”; 产生一个对象,字符串池中存储
  • String s = new String(“Hello”); //产生两个对象,堆、池中各存储一个
  • String类常用方法集合代码实例:点击String类方法集合

可变字符串

  • StringBuffer:可变长字符串,JDK1.0提供,运行效率慢,线程安全
  • StringBuilder:可变长字符串,JDK5.0提供,运行效率快,线程不安全
  • 注意:jdk中Stringbuffer和Stringbuilder的所有功能都是一样的,但是当然还是有一些差异化,同样也是一把双刃剑,不同的场景选择不同的可变字符串类型

jdk中StringBuilder调优以及intern();方法应用(main函数中)
注意:默认放在类(class)中的字符串是放在池中的,是不可以改变的(作为常量放在池中,不可以改变)
再次注意:需要拼接的时候jdk自动对字符串进行扩容调优,不管你拼接多少个字符串,最后只是一个字符串在不停的扩容、拼接,实际上只有一个地址(不会产生任何中间变量)

/** 
* @author Ziph
* @date 2020年3月3日
* @Email mylifes1110@163.com
* 
* intern();
* 手动在程序运行中,将字符串放在池中
* 要求:满足首次出现
*/
public class TestStringOptimize {
   
	public static void main(String[] args
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值