随笔分类 -  Java注解和反射

摘要:模拟ORM的类注解和属性注解 //模拟ORM public class Demo11 { public static void main(String[] args) { Class clazz = Role.class; //获取类的注解信息 Annotation[] classAnnotatio 阅读全文
posted @ 2022-06-12 03:04 Epiphany8Z 阅读(20) 评论(0) 推荐(0) 编辑
摘要:Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数据的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦除 为了通过反射操作这些类型,Java新增了ParameterizedType, GenericArrayType, TypeV 阅读全文
posted @ 2022-06-12 02:30 Epiphany8Z 阅读(23) 评论(0) 推荐(0) 编辑
摘要:1.普通方式 2.反射但不关闭安全检查的方式方式 3.反射并关闭安全检查的方式 public class Demo09 { public static void main(String[] args) throws ClassNotFoundException, InvocationTargetEx 阅读全文
posted @ 2022-06-12 02:03 Epiphany8Z 阅读(41) 评论(0) 推荐(0) 编辑
摘要:创建类的对象:调用Class对象的newlnstance()方法 类必须有一个无参数的构造器。 类的构造器的访问权限需要足够 思考:难道没有无参的构造器就不能创建对象了吗?并非如此,因此,只要在操作的时候明确的调用类中的构造器,并将参数传递进去之后,就可以实例化操作。 步骤如下: 通过Class类的 阅读全文
posted @ 2022-06-12 01:50 Epiphany8Z 阅读(78) 评论(0) 推荐(0) 编辑
摘要:通过反射获取运行时类的完整结构Field、Method、Constructor、Superclass、Interface、Annotation public class Demo07 { public static void main(String[] args) throws ClassNotFo 阅读全文
posted @ 2022-06-12 00:18 Epiphany8Z 阅读(21) 评论(0) 推荐(0) 编辑
摘要:类加载器作用是用来把类(class)装载进内存的。JVM规范定义了如下类型的类的加载器。 引导类加载器:用C++编写的,是JVM自带的类加载器,负责Java平台核心库(rt.jar),用来装载核心类库。该加载器无法直接获取 扩展类加载器:负责jre/lib/ext目录下的jar包或-D java.e 阅读全文
posted @ 2022-06-11 00:10 Epiphany8Z 阅读(41) 评论(0) 推荐(0) 编辑
摘要:发生类的初始化(主动): 当虚拟机启动,先初始化main方法所在的类 new一个类的对象 调用类的静态成员(除了final常量)和静态方法 使用java.lang.reflect包的方法对类进行反射调用 当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类 不发生类的初始化(被动): 当访问 阅读全文
posted @ 2022-06-10 23:52 Epiphany8Z 阅读(28) 评论(0) 推荐(0) 编辑
摘要:加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构然后生成一个代表这个类的java.lang.Class对象. 链接:将Java类的二进制代码合并到JVM的运行状态之中的过程。 验证:确保加载的类信息符合JVM规范,没有安全方面的问题 准备:正式为类变量(st 阅读全文
posted @ 2022-06-10 22:49 Epiphany8Z 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-06-10 22:47 Epiphany8Z 阅读(8) 评论(0) 推荐(0) 编辑
摘要:public class Demo03 { public static void main(String[] args) { //1.对象 Class c1 = Object.class; //2.接口 Class c2 = Comparable.class; //3.一维数组 Class c3 = 阅读全文
posted @ 2022-06-10 22:06 Epiphany8Z 阅读(52) 评论(0) 推荐(0) 编辑
摘要:对象照镜子后可以得到的信息:某个类的属性、方法和构造器、某个类到底实现了哪些接口。对于每个类而言,JRE都为其保留一个不变的Class类型的对象。一个Class对象包含了特定某个结构(class/interface/enum/annotation/primitive type/void/)的有关信息 阅读全文
posted @ 2022-05-22 19:50 Epiphany8Z 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Java反射: Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 Class C=Class.forName("java.lang.String") 加载完类之后,在堆内 阅读全文
posted @ 2022-05-22 19:18 Epiphany8Z 阅读(19) 评论(0) 推荐(0) 编辑
摘要:动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构 主要动态语言:Object-C、C#、JavaScript、PHP、Python等 静态语言 与动态语言相对应的,运行 阅读全文
posted @ 2022-05-22 19:12 Epiphany8Z 阅读(58) 评论(0) 推荐(0) 编辑
摘要:Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别) 可以被其他程序(比如:编译器等)读取 Annotation的格式: 注解是以"@注释名"在代码中存在的﹐还可以添加一些参数值,例如:@S 阅读全文
posted @ 2022-05-21 22:29 Epiphany8Z 阅读(20) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示