摘要:
类的主动引用(一定会发生类的初始化) 当虚拟机启动,先初始化main方法所在的类 new一个类的对象 调用类的静态成员(除了final常量)和静态方法 使用java.lang.reflect包的方法对类进行反射调用。 当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类 类的被动引用(不会发 阅读全文
摘要:
类的加载过程 当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过下面三个步骤对该类进行 初始化: 加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象 链接:将java类的二进制代码合并到 阅读全文
摘要:
介绍反射之前先介绍静态动态语言的概念 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化,通俗点说就是在运行时代码可以根据某些条件改变自身结构 主要动态语言:Object-C、C#、JavaScript、PHP、Python 阅读全文
摘要:
1、什么是注解 Annotation是从JDK5.0开始引进的新技术 Annotation的作用 不是程序本身,可以对程序作出解释(这一点与注释(Comment)没什么区别) 可以被其他程序(比如:编译器等)读取 Annotation 注解是以"@注解名"在代码中存在的,还可以添加一些参数值,例如: 阅读全文