创建和销毁对象
避免创建不必要的对象。
比如使用正则表达式matche字符串时,可以将其显式编译为一个pattern实例(不可变),当需要比较时,直接重用该实例。
避免使用终结方法和清除方法。
- 永远也不要依赖终结方法或者清除方法来更新重要的持久状态。因为根本就不保证会被执行。
- 不要被Sysme.gc和System.runFinalization这两个方法迷惑。理由同上。
- 使用终结方法和清除方法有一个非常严重的性能损失。因为它会阻止有效的垃圾回收。
- 终结方法有一个严重的安全问题。(终结方法攻击)
- 如果确实有资源需要终止,可以使其实现AutoCloseable。一般的终结方法只是充当close的安全网。
try-with-resources优先于try-finally。(在有嵌套try结构时有效避免问题,资源需要实现AutoCloseable接口)