列出 5 个应该遵循的 JDBC 最佳实践
有很多的最佳实践,你可以根据你的喜好来例举。下面是一些更通用的原则:
1、使用批量的操作来插入和更新数据
2、使用 PreparedStatement 来避免 SQL 异常,并提高性能。
3、使用数据库连接池
4、通过列名来获取结果集,不要使用列的下标来获取。
说出几条 Java 中方法重载的最佳实践?
下面有几条可以遵循的方法重载的最佳实践来避免造成自动装箱的混乱。
a)不要重载这样的方法:一个方法接收 int 参数,而另个方法接收 Integer 参数。
b)不要重载参数数量一致,而只是参数顺序不同的方法。
c)如果重载的方法参数个数多于 5 个,采用可变参数。
在多线程环境下,SimpleDateFormat 是线程安全的吗?
不是,非常不幸,DateFormat 的所有实现,包括 SimpleDateFormat 都不是线程安全的,因此你不应该在
多线程序中使用,除非是在对外线程安全的环境中使用,如将 SimpleDateFormat 限制在 ThreadLocal
中。如果你不这么做,
在解析或者格式化日期的时候,可能会获取到一个不正确的结果。因此,从日期、时间处理的所
有实践来说,我强力推荐 joda-time 库。
关于 OOP 和设计模式的面试题
这部分包含 Java 面试过程中关于 SOLID 的设计原则,OOP 基础,如类,对象,接口,继承,多态,
封装,抽象以及更高级的一些概念,如组合、聚合及关联。也包含了 GOF 设计模式的问题。
接口是什么?为什么要使用接口而不是直接使用具体类?
接口用于定义 API。它定义了类必须得遵循的规则。同时,它提供了一种抽象,因为客户端只使用
接口,这样可以有多重实现,如 List接口,你可以使用可随机访问的 ArrayList,也可以使用方便插
入和删除的 LinkedList。接口中不允许写代码,以此来保证抽象,但是 Java 8 中你可以在接口声明
静态的默认方法,这种方法是具体的。
Java 中,抽象类与接口之间有什么不同?
Java 中,抽象类和接口有很多不同之处,但是最重要的一个是 Java 中限制一个类只能继承一个类,
但是可以实现多个接口。抽象类可以很好的定义一个家族类的默认行为,而接口能更好的定义类
型,有助于后面实现多态机制。
除了单例模式,你在生产环境中还用过什么设计模式?