如果你是Java面试官,你会问什么问题?
1,谈谈你对Java平台的理解?“Java是解释执行”,这句话对吗?考点分析:对于这样的一般题,你需要表现出你的思维是深入的,系统的,你的Java知识是全面的。一定要避免让面试官觉得你是一个知其然不知其所以然的人。毕竟了解基本组成和机理是日常工作中问题诊断或性能调优等很多事情的基础。相信没有招聘人员会不喜欢爱学习爱思考的面试官。回到正题,我们可以从多个方面简单谈谈对Java平台的理解,比如:Java语言特性,包括泛型、Lambda等语言特性;基础类库,包括集合、IO/NIO、网络、并发、安全等基础类库。对于我们日常工作中广泛使用的类库,可以在面试前进行系统总结,有助于即兴发挥。2.Hashtable、HashMap和TreeMap有什么区别?考点分析:以上回答只是对一些基本特性的简单总结,对于Map来说还有很多问题可以扩展,从各种数据结构和典型应用场景到程序设计和实现的技术考虑,尤其是在Java 8中,HashMap本身发生了很大的变化,这些都是经常考察的方面。很多朋友给我反馈,面试官似乎也很喜欢考察HashMap的设计和实现细节,所以今天我就补充相应的源代码解读,主要集中在以下几个方面:了解Map相似的整体结构,尤其是有序数据结构的一些关键点。从源代码中分析HashMap的设计和实现要点,了解容量和负载因子,为什么需要这些参数,如何影响Map的性能,以及在实践中如何选择。了解树木改造的相关原理和改进的原因。除了典型的代码分析,还经常会提到一些有趣的并发相关问题,比如HashMap在并发环境下无限循环占用CPU、大小不准确等奇怪的问题。我认为这是一个典型的用法错误,因为HashMap明确声明它不是线程安全的数据结构。如果忽略这一点,简单地用在多线程场景中,必然会出现问题。了解这个错误产生的原因,也是深入理解并发程序运行的好方法。对于发生了什么,可以参考很久以前的这个分析,里面甚至提供了示意图,别人写的我就不重复了。3.Java提供了哪些IO方法?NIO是如何实现复用的?考点分析:实际面试中,从传统IO到NIO和NIO 2,可以拓展的地方很多,考察点涉及方方面面,比如:基本API功能与设计,InputStream/