Java面试

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? ? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

hashCode()和equals()方法的重要性体现在什么地方 ? Java中的HashMap使用hashCode()和equals()方法来确定键值对的索引.如果没有正确的实现这两个方法,两个不同的键可能会有相同的hash值,因此,可能会被集合认为是相等的。

如何确保N个线程可以访问N个资源同时又不导致死锁 ? 指定获取锁的顺序,并强制线程按照指定的顺序获取锁。