摘要:   Java库包含许多必须通过调用close方法手动关闭的资源。 示例包括InputStream,OutputStream和java.sql.Connection。 关闭资源经常被客户忽视,可预见的可怕性能后果。 虽然其中许多资源使用终结方法作为安全网,但终结方法不能很好地工作( 阅读全文
posted @ 2019-04-06 15:19 coloured_glaze 阅读(198) 评论(0) 推荐(0)
摘要:   终结方法是不可预测的,通常很危险,一般情况下是不必要的(Finalizers are unpredictable, often dangerous, and generally unnecessary.)。使用 终结方法会导致行为不稳定,降低性能,以及可移植性问题。当然,终结 阅读全文
posted @ 2019-04-06 15:18 coloured_glaze 阅读(436) 评论(0) 推荐(0)
摘要:   当你从手工管理内存的语言(比如C或者C++)转换到具有垃圾回收功能的语言的时候,程序猿的工作就会变得更加容易,因为当你用完了对象之后,他们就会被自动回收。当你第一次经历对象回收功能的时候,会觉得这简直有点不可思议。这很容易给你留下这样的印象,认为自己不再需要考虑内存管理的事情 阅读全文
posted @ 2019-04-06 15:17 coloured_glaze 阅读(190) 评论(0) 推荐(0)
摘要:   一般来说,最好能重用对象而不是在每次需要的时候就创建一个相同功能的新对象。重用的方式既快速,有流行。如果对象是不可变(immutable)的(第17项),那么就能重复使用它。   作为一个极端的反面例子,考虑下面的语句:   该语句每次 阅读全文
posted @ 2019-04-06 15:16 coloured_glaze 阅读(206) 评论(0) 推荐(0)
摘要:   许多类依赖于一个或多个底层资源。 例如,拼写检查器依赖于字典。常见的做法是将这些类实现为静态实用程序类(第4项):   同样的,将它们作为单例实现的情况并不少见(第3项):   这些方法都不令人满意,因为它们假设只有一本值得使用的字典。 阅读全文
posted @ 2019-04-06 15:15 coloured_glaze 阅读(186) 评论(0) 推荐(0)