包含 Java 中各个部分的最佳实践,如集合、字符串、IO、多线程、错误和异常处理、设计模式等等。
1. 多线程程序的时候你会遵循哪些最佳实践
这是我在写 Java 并发程序的时候遵循的一些最佳实践:
- 给线程命名,这样可以帮助调试。
- 最小化同步的范围,而不是将整个方法同步,只对关键部分做同步。
- 如果可以,更偏向于使用 volatile 而不是 synchronized。
- 使用更高层次的并发工具,而不是使用 wait() 和 notify() 来实现线程间通信,如 BlockingQueue,CountDownLatch 及 Semeaphore。
- 优先使用并发集合,而不是对集合进行同步。并发集合提供更好的可扩展性。
2. 使用 Collections 的最佳实践
这是我在使用 Java 中 Collectionc 类的一些最佳实践:
- 使用正确的集合类,例如,如果不需要同步列表,使用 ArrayList 而不是 Vector。
- 优先使用并发集合,而不是对集合进行同步。并发集合提供更好的可扩展性。
- 使用接口代表和访问集合,如使用List存储 ArrayList,使用 Map 存储 HashMap 等等。
- 使用迭代器来循环集合。
- 使用集合的时候使用泛型。
3. 说出至少 5 点在 Java 中使用线程的最佳实践
这个问题与之前的问题类似,你可以使用上面的答案。对线程来说,你应该:
- 对线程命名
- 将线程和任务分离,使用线程池执行器来执行 Runnable 或 Callable。
- 使用线程池
4. 说出 5 条 IO 的最佳实践
IO 对 Java 应用的性能非常重要。理想情况下,你不应该在你应用的关键路径上避免 IO 操作。下面是一些你应该遵循的 Java IO 最佳实践:
- 使用有缓冲区的 IO 类,而不要单独读取字节或字符。
- 使用 NIO 和 NIO2
- 在 finally 块中关闭流,或者使用 try-with-resource(Java7) 语句。
- 使用内存映射文件获取更快的 IO。
5. 5个应该遵循的 JDBC 最佳实践
有很多的最佳实践,你可以根据你的喜好来例举。下面是一些更通用的原则:
- 使用批量的操作来插入和更新数据
- 使用 PreparedStatement 来避免 SQL 异常,并提高性能。
- 使用数据库连接池
- 通过列名来获取结果集,不要使用列的下标来获取。
6. Java 中方法重载的最佳实践
下面有几条可以遵循的方法重载的最佳实践来避免造成自动装箱的混乱。
- 不要重载这样的方法:一个方法接收 int 参数,而另个方法接收 Integer 参数。
- 不要重载参数数量一致,而只是参数顺序不同的方法。
- 如果重载的方法参数个数多于 5 个,采用可变参数。