1.4 为什么 java 容易被反编译?
因为
java 程序是动态连接的。从一个类到另一个类的引用是符号化的。在静态连接的可
执行程序中。类之间的引用只是直接的指针或者偏移量。
相反在
java 的 class 文件中,指
向另一个类的引用通过字符串清楚的标明了所指向的这个类的名字。
如果引用是指向一个字段的话。这个字段的名字和描述符(字段的类型)会被详细说明。
如果引用指向一个成员方法,那么这个成员方法的名字和描述符(方法的返回值类型,
方法参数的数量和类型)会被详细说明。
包含对自己字段和成员方法的符号引用。
包含可选的调试信息。
(包括局部变量的名称和类型)
1.5 垃圾回收器缺点:
无法确认什么时候开始回收垃圾,无法确认是否已经开始收集,也无法确认要持续多长时
间