Java String性能提示

本文介绍了一系列针对Java中String对象的优化方法,包括如何高效地创建和操作字符串,以及避免不必要的性能开销。文章强调了使用StringBuilder而非String进行拼接、利用String的equals方法比较字符串、合理设置StringBuffer或StringBuilder的初始容量等最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 不用使用String的构造函数,可能的话直接使用字符串。两个特例:1)想把char []转换为一个String, 2) 使用一个大的String对象的substring()方法;
  • String.equals()String.equalsIgnoreCase()要快;
  • 尽量使用StringBuilder来构造一个String,而不是“+”操作符和String.concat() (除非是一个表达式,String s = a + b + c);
  • StringBuilder是不同步的(not synchronized ),所以要比StringBuffer快;
  • String[Buffer|Builder]构造函数中加上容量参数,因为创建一个太小的buffer会降低性能;
  • String.length()==0String.equals("")要快。使用Java 6时,String.isEmpty()更快;
  • 调用String.toString()是没有意义的;
  • 由于String是不可变的,所以String的方法中,所有返回修改过的String的都是返回了一个新的实例;
  • String.split(regex)事实上简单的调用了Pattern.compile(regex).split(this, limit),且每次compile()都会返回一个新Pattern。所以如果频繁调用split的话,最好创建单个Pattern实例并重复使用来取代split()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值