1、String和Boolean
如下两种写法看似没有什么区别,但是如果深入jvm底层了解,我们可以利用jvm运行时常量池的特性,避免创建具有相同功能的String对象(尤其是在循环内部创建)可以带来比较可观的性能优化以及节约内存。
错误写法
// 每次都会创建一个新的String对象,且不会加入常量池
String name2 = new String(“李子捌”);
正确写法
// 正确写法
String name1 = “李子捌”;
除此之外,刚写Java代码的程序员们,也要正确的选择String、StringBuilder、StringBuffer类的使用。String为不可变对象,通常用于定义不变字符串;StringBuilder、StringBuffer用于可变字符串操作场景,如字符串拼接;其中StringBuffer是线程安全的,它通过Synchronized关键字来实现线程同步。
// StringBuffer中的append()方法
public synchronized StringBuffer append(String str) {
toStringCache = null;
super.append(str);
return this;
}
// StringBuilder中的append()方法
public StringBuilder append(String str) {
super.append(str);
return this;
}
Boolean是常用的类型