🥦示例一:创建过多的String对象
🥦示例二:未关闭文件流
🥦示例三:内存泄漏
🥦示例四:重载finalize方法
示例一:创建过多的String对象
public class StringExample {
public static void main(String[] args) {
String s = "";
for (int i = 0; i < 100000; i++) {
s += "hello"; // 创建了100000个String对象
}
System.out.println(s);
}
}
这个代码示例创建了一个空的String对象s,然后通过一个循环将"hello"字符串拼接到s字符串末尾。由于每次拼接都会创建一个新的String对象,因此这个循环将创建100000个String对象。这可能会导致内存占用过高和性能问题,因为Java中的String对象是不可变的,即一旦创建就不能再修改,因此每次拼接都会创建一个新的String对象。
为了解决这个问题,可以使用StringBuilder或StringBuffer来拼接字符串。这两个类都是可变的,可以在原有的字符串基础上进行修改,避免了创建过多的String对象。
🥦课程总结
🥦