1. 类加载的顺序(初始化顺序)
类加载的顺序:
a. 加载静态成员/静态代码块(静态成员与静态代码块加载先后顺序与代码顺序一致)
b. 加载非静态成员/非静态代码块
c. 调用构造方法
当存在继承关系时:
超类的静态成员/超类的静态块
子类的静态成员/子类的静态块
超类的非静态成员/超类的非静态代码块
超类的构造函数
子类的非静态成员/子类的非静态代码块
子类的构造函数
类加载有三种方式:
1)命令行启动应用时候由JVM初始化加载
2)通过Class.forName()方法动态加载
3)通过ClassLoader.loadClass()方法动态加载
类加载流程:加载-> 链接(验证、准备、解析)-> 初始化 -> 使用 ->卸载
参考: java中类的加载,及执行顺序 http://my.oschina.net/fangshaowei/blog/152035
java类的加载顺序 http://moliniao.iteye.com/blog/976287
2. 类加载机制
参考:
深入探讨 Java 类加载器 http://www.ibm.com/developerworks/cn/java/j-lo-classloader/
Java类加载机制深度分析 http://my.oschina.net/xianggao/blog/70826
3. 一个public类,它的构造函数是private的,那么这个类是可以被继承的吗?
答:不可以。因为类加载时会首先去初始化它的父类,私有的构造函数是不能被访问的
4. 一个Java类的静态方法是否可以被继承,为什么?
答:不可以
5. IOC的实现原理
AOP和IoC实现原理 http://blog.csdn.net/longyulu/article/details/36174979
6. RMI与WebService的区别,已经它们的实现原理
7. 当循环遍历一个ArrayList的时候,删除了这个列表里的元素,会不会出现问题?
答: 会,fail-fast机制,抛出ConcurrentModificationException异常
8. HashMap的数据结构,它怎么处理hash冲突?ConcurrentHashMap的数据结构,它怎么实现并发?