1.Class是什么,一个Class实例对象对应一个类字节码。得到一个类的字节码,然后由类的字节码创建该类的实例对象的过程:
Class clazz1 = Class.forName("Student");
Class clazz2 = Class.forName("java.util.Date");
Student s1 = (Student)clazz1.newInstance();
Student s2 = (Student)clazz1.newInstance();
2.类装载器的作用,ClassLoader.
3.什么是AOP,AOP的实现原理,如何通过类装载器来实现AOP,ASM与CGLIB的基本原理。
4.ExtClassLoader,AppClassLoader,类装载器的委托机制。为什么junit.jar包不能放置在jre/lib/ext目录中的原因分析。
5.编写一个对类进行简单加密的程序,设计思想,注意事项。
6.看到学员程序,分析了OutputStream与Writer的区别,关系,应用场合等等。命令行窗口与键盘重定向问题,李杰创建了多个PrintStream对象与一个文件进行关联,每次都是通过一个新的PrintStream对象进行写入所造成的问题。
7.看了学员的程序,提出了“面向接口编程,不要面向类编程”。
8.子类方法抛出的异常只能:从原理去理解。
9.编写了一个自己的类装载器,可实现对加密过的类进行装载和解密。顺便也演示如何查看某个类被加载的类装载器,以及如何打印出类装载器层次树的代码。
今天,学员们普遍反映信息量太大,需要时间来消化课堂讲解的知识,没有时间整理学习心得和写Blog,所以,最近的讲课进度将有所放缓。