摘要: setAccessible作用是启动和禁用访问安全检查的开关 参数值为true则指示反射的对象在使用时应该取消java语言访问检查。 提高反射的效率。如果代码中必须使用反射,而该句代码需要频繁的被调用,那么请设置为true; 使得原本无法访问的私有成员也可以访问 参数值为false则指示反射的对象应 阅读全文
posted @ 2020-01-26 15:38 卑斯的卑微 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 类加载的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口。 类缓存:标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存 阅读全文
posted @ 2020-01-26 15:32 卑斯的卑微 阅读(1792) 评论(0) 推荐(0) 编辑
摘要: 类的主动引用(一定会发生类的初始化) 当虚拟机启动,先初始化main方法所在的类 new一个类的对象 调用类的静态成员(除了final常量)和静态方法 使用java.lang.reflect包的方法对类进行反射调用。 当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类 类的被动引用(不会发 阅读全文
posted @ 2020-01-26 15:28 卑斯的卑微 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 类的加载过程 当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过下面三个步骤对该类进行 初始化: 加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象 链接:将java类的二进制代码合并到 阅读全文
posted @ 2020-01-26 15:26 卑斯的卑微 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 介绍反射之前先介绍静态动态语言的概念 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化,通俗点说就是在运行时代码可以根据某些条件改变自身结构 主要动态语言:Object-C、C#、JavaScript、PHP、Python 阅读全文
posted @ 2020-01-26 15:23 卑斯的卑微 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1、什么是注解 Annotation是从JDK5.0开始引进的新技术 Annotation的作用 不是程序本身,可以对程序作出解释(这一点与注释(Comment)没什么区别) 可以被其他程序(比如:编译器等)读取 Annotation 注解是以"@注解名"在代码中存在的,还可以添加一些参数值,例如: 阅读全文
posted @ 2020-01-26 14:57 卑斯的卑微 阅读(185) 评论(0) 推荐(0) 编辑