资深Java面试题及答案(汇总)
1、说出几条 Java 中方法重载的最佳实践?
2、在多线程环境下,SimpleDateFormat 是线程安全的吗?
3、Java 中如何格式化一个日期?如格式化为 ddMMyyyy的形式?
4、Java 中,怎么在格式化的日期中显示时区?
5、如何测试静态方法?
6、怎么利用 JUnit 来测试一个方法的异常?
7、@Before 和 @BeforeClass 有什么区别?
8、怎么检查一个字符串只包含数字?
9、Java 中如何利用泛型写一个 LRU 缓存?
10、Java 中,怎么获取一个文件中单词出现的最高频率?
11、如何检查出两个给定的字符串是反序的?
12、Java 中如何将字符串转换为整数?
13、在没有使用临时变量的情况如何交换两个整数变量的值?
14、接口是什么?为什么要使用接口而不是直接使用具体类?
15、Java 中,抽象类与接口之间有什么不同?
16、除了单例模式,你在生产环境中还用过什么设计模式?
17、你能解释一下里氏替换原则吗?
18、什么情况下会违反迪米特法则?为什么会有这个问题?
19、适配器模式是什么?什么时候使用?
20、什么是“依赖注入”和“控制反转”?为什么有人使用?
21、抽象类是什么?它与接口有什么区别?你为什么要使用过抽象类?
22、构造器注入和 setter 依赖注入,那种方式更好?
23、依赖注入和工程模式之间有什么不同?
24、适配器模式和装饰器模式有什么区别?
25、适配器模式和代理模式之前有什么不同?
26、什么是模板方法模式?