
1: hash map, hash tables 的区别
The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.
2: class loader有几种,它们都干嘛,从哪里load class,以及它们的关系是啥。
为啥要自己做classloader ?
Class loaders may typically be used by security managers to indicate security domains.
a ClassLoader instance will delegate the search for the class or resource to its parent class loader before attempting to find the class or resource itself
The virtual machine's built-in class loader, called the "bootstrap class loader", does not itself have a parent but may serve as the parent of a ClassLoader instance.
some classes may not originate from a file; they may originate from other sources, such as the network.
引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。
扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。
系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader() 来获取它。
对于开发人员编写的类加载器来说,其父类加载器是加载此类加载器 Java 类的类加载器。一般来说,开发人员编写的类加载器的父类加载器是系统类加载器。
Java 虚拟机不仅要看类的全名是否相同,还要看加载此类的类加载器是否一样。只有两者都相同的情况,才认为两个类是相同的。
代理模式是为了保证 Java 核心库的类型安全。通过代理模式,对于 Java 核心库的类的加载工作由引导类加载器来统一完成,保证了 Java 应用所使用的都是同一个版本的 Java 核心库的类,是互相兼容的。
3: 线程与同步问题,线程间通信机制有哪些,如何搞定。
4. 异常分为那几种(checked or nonchecked exception),如果你自己去design exception,是checked or nonchecked exception?
http://blog.csdn.net/kingzone_2008/article/details/8535287
5. AOP 和动态代理
6. concurrentHashMap是干啥用的?
7. JDK1.5以后增加了哪些并发控制的东西?
8. 说下lock,同步的过程
9. 说下deadlock形成的原因,如果程序有deadlock,有何表现,用啥方法去检测?如何避免?
jps, jstack可以dump JVM的印象,就能发现问题。
10. 动态加载和反射原理和过程
11. 具体说下class loader的机制,过程。啥情况下要用定制的class loader
12. 说下 RESTFUL web serverice的原理
13. 说下 SOAP-based web service的原理
14. 谈下goF模式都有些啥,你在开发中用到了些啥?
15. java有内存泄露吗?如何检测内存泄露,用啥工具,咋样做?
17. 你自己用了啥工具去做Java-based UT? (HttpUnit,mock object, cactus, junit)
18. 说下 jikinps , git的用法,干嘛使的?
19: threadlocal是干嘛用的,用在啥场合?
20:NIO是啥意思,说说原理。
21: 详细说JVM GC 内存回收机制