今天,百忙之中,学习提升自己,读了一本书《突破程序员基本功的16课》
做点小笔记:
熟悉掌握Java的内存回收,垃圾回收机制,才能提高Java程序的运行性能。
1. 内存管理的小技巧
(1)尽量使用直接量
当需要使用字符串,还有Byte、Short、Integer、Long、Float、Double、Boolean、Character包装类的实例时,
程序不应该才用new 的方式来创建对象,应该直接采用直接量来创建它们。
例如,程序需要 “hello” 字符串
String str = "hello";
这种方式会创建一个hello字符串,而且JVM的字符串缓存池还会缓存这个字符串。
但是如果是:
String str = new String ("hello");
此时同样创建了一个缓存在字符串缓存池中的 hello 字符串,除此之外,str 所引用的String 对象底层包含了一个
char[] 数组,这个数据里面的依次存放了 h e l l o 的字符串。
2.尽量使用 StringBuilder 和 StringBuffer 进行字符串连接,避开直接使用String
String、StringBuilder、StringBuffer都可以进行字符串连接,其中 String 代表字符序列不可变的字符串,而StringBuilder 和 StringBuffer
都代表字符序列可变的字符串。
如果程序使用多个String 对象进行字符串连接预算,在运行时将生成大量临时字符串,这些会保存在内存中从而导致性能下降。
3.尽量少用静态变量
4.避免在经常调用的方法,循环中创建对象
例如 for 循环里面 new Object(),原因都知道,没new 对象就会分配内存空间。
5.缓存经常使用的对象
缓存框架,
使用HashMap缓存