随笔分类 - 注解与反射
摘要:反射操作注解 getAnnotations():获取全部注解 getAnnotation():获取单个注解 public class Demo10 { public static void main(String[] args) throws Exception { //通过反射获得注解 Class
阅读全文
摘要:反射操作泛型 Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数值的安全性和免去强制类型转化问题,一旦编译完成后,所有与泛型有关的类型全部擦除。 为了通过反射操作这些类型,Java新增了ParameterizedType,GenericArrayType,T
阅读全文
摘要:性能对比分析 public static void main(String[] args) throws Exception { test01(); test02(); test03(); } //普通反射调用 public static void test01(){ Person person =
阅读全文
摘要:动态创建对象执行方法 有了Class对象,能做什么? 创建类的对象:调用Class对象的newInstance()方法 类必须有一个无参数的构造器 b)类的构造器访问权限需要足够 思考 难道没有无参的构造器就不能创建对象了吗?只要在操作的时候明确的调用类中的构造器,并将参数传递出去之后,才可以实例化
阅读全文
摘要:运行时类的完整结构 通过反射获取运行时类的完整结构 Fidel(字段),Method(方法),Constructor(构造器),Superclass(父类),Interface(接口),Annotation(注解) public static void main(String[] args) thr
阅读全文
摘要:类加载器 类加载的作用:将class文件字节码加载到内存中,并将这些静态的数据转化成方法区运行时的数据结构,然后在堆中生成一个代表这个类的Class对象,作为方法区中类数据的访问入口。 类缓存: 标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间
阅读全文
摘要:类的初始化 类的主动引用(一定会发生类的初始化) 当虚拟机启动,先初始化main方法所在的类。 new一个类的对象。 调用类的静态成员(除了final常量)和静态方法。 使用java.long.reflect包的方法对类进行反射调用。 当初始化一个类,如果父类没有被初始化,则先会初始化它的父类。 p
阅读全文
摘要:Java内存分析 public class Demo03 { public static void main(String[] args) { Test test = new Test(); System.out.println(Test.a); } /* * 1.加载到内存,会产生一个类对应的cl
阅读全文
摘要:Class类 对象照镜子后可以得到的信息:某个类的属性、方法和构造器、某个类到底实现了哪些接口。对于每个 类而言,JRE 都为其保留一个不变的 Class 类型的对象。一个 Class 对象包含了特定某个结构 (class/interface/enum/annotation/primitive ty
阅读全文
摘要:反射机制Reflection 1、静态 VS 动态语言 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的 函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自 身结构。 主要动态语言:Object-C、C#、JavaScrip
阅读全文
摘要:注解Annotation Annotation 是从JDK5.0开始引入的新技术 . Annotation的作用 不是程序本身 , 可以对程序作出解释.(这一点和注释(comment)没什么区别) 可以被其他程序(比如:编译器等)读取. Annotation的格式 注解是以”@注释名”在代码中存在的
阅读全文

浙公网安备 33010602011771号