- 不用使用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()==0比String.equals("")要快。使用Java 6时,String.isEmpty()更快;
- 调用String.toString()是没有意义的;
- 由于String是不可变的,所以String的方法中,所有返回修改过的String的都是返回了一个新的实例;
- String.split(regex)事实上简单的调用了Pattern.compile(regex).split(this, limit),且每次compile()都会返回一个新Pattern。所以如果频繁调用split的话,最好创建单个Pattern实例并重复使用来取代split()。
Java String性能提示
最新推荐文章于 2022-12-02 10:32:30 发布