Java注解和反射
Java注解和反射学习笔记
飞过秋天
一曲肝肠断,天涯何处觅知音。
展开
-
十六、获取注解信息
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、练习:ORMObject relationship Mapping 对象关系映射类和表对应属性和字段对应对象和记录对应要求:利用注解和反射完成类和表结构的映射关系2、代码/** * @Description 反射操作注解 * @Author Administrator * @Date 2020/12/2 13:39 */public class Test12 { .原创 2020-12-04 08:30:29 · 146 阅读 · 0 评论 -
十五、反射获取泛型信息
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、代码/** * @Description 反射获取泛型 * @Author Administrator * @Date 2020/12/2 13:23 */public class Test11 { public void test01(Map<String, User> map, List<User> list){ System.ou.原创 2020-12-03 10:48:48 · 256 阅读 · 0 评论 -
十四、性能对比分析
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V3属性或者方法的setAccessible方法:启用和禁用访问安全检查。1、代码package com.hejin.reflection;import java.lang.reflect.Method;/** * @Description 分析性能问题 * @Author Administrator * @Date 2020/12/2 13:08 */public class Te.原创 2020-12-03 10:47:08 · 273 阅读 · 0 评论 -
十三、动态创建对象执行方法
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V3Class对象能做什么创建类的对象:调用Class对象的newInstance()方法类必须有一个无参数的构造器类的构造器的访问权限需要足够难道没有无参的构造器就不能创建对象了吗?只要在操作的时候明确地调用类中的构造器,并将参数传递进去,才可以实例化操作。代码/** * @Description 反射动态创建对象 * @Author Administrator * @Dat.原创 2020-12-03 10:44:32 · 312 阅读 · 0 评论 -
十二、获取类的运行时结构
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、Class对象的常用方法/** * @Description 获得类的信息 * @Author Administrator * @Date 2020/12/2 10:55 */public class Test08 { public static void main(String[] args) throws ClassNotFoundException, NoSuchFie.原创 2020-12-03 10:41:25 · 130 阅读 · 0 评论 -
十一、类加载器的作用
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、类加载的作用将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口。2、类缓存标准的JavaSE类加载器可以按要求查找类,但是一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间。不过JVM垃圾回收机制可以回收这些Class对象。3、类加载流程4、类加载器的类型.原创 2020-12-03 10:36:25 · 2859 阅读 · 0 评论 -
十、分析类初始化
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、什么时候会发生类初始化类的主动引用(一定会发生类的初始化)当虚拟机启动时,先初始化main方法所在的类new一个类的对象调用类的静态成员(除了final常量)和静态方法使用java.lang.reflect包的方法对类进行反射调用当初始化一个类,如果其父类没有被初始化,则会先初始化它的父类类的被动引用(不会发生类的初始化)、当访问一个静态域时,只有真正声明这个域的类才会被.原创 2020-12-03 10:31:33 · 118 阅读 · 0 评论 -
九、类加载内存分析
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、Java内存堆栈方法区2、类的加载过程类的加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象。类的链接:将Java的二级制代码合并到JVM的运行状态之中的过程。验证:确保加载的类信息符合JVM规范,没有安全方面的问题准备:正式为类变量(static)分配内存并设置类变量默认初.原创 2020-12-03 10:24:38 · 128 阅读 · 1 评论 -
八、所有类型的Class对象
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V3classinterface数组枚举注解基本数据类型void例子/** * @Description TODO * @Author Administrator * @Date 2020/11/29 20:45 */public class Test04 { public static void main(String[] args) { /**.原创 2020-12-03 10:17:48 · 213 阅读 · 1 评论 -
七、Class类
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、常用方法方法名功能说明static Class.forName(String name)返回指定类名的Class对象newInstance()根据对象的class新建一个对象getName()返回String形式的该类的名称getSuperclass()获取继承的父类getInterfaces()获取继承的接口getClassLoade.原创 2020-12-03 10:15:51 · 165 阅读 · 0 评论 -
六、获得反射对象
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、Java反射机制研究及应用在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法);在运行时调用任意一个对象的方法工厂模式:Factory类中用反射的话,添加了一个新的类之后,就不需要再修改工厂类Factory了数据库JDBC中通过Class.forName(Driver).来获得数据库连.原创 2020-12-03 10:13:44 · 225 阅读 · 0 评论 -
五、Java反射概述
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、静态 vs 动态语言动态语言是一类在运行时可以改变其结构的语言:比如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要动态语言:Object-C、C#、JavaScript、PHP、Python等。例如:function f() { var x = "var a=3; var b=5;alert.原创 2020-12-02 15:43:52 · 95 阅读 · 0 评论 -
四、Java自定义注解
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V3使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.an.原创 2020-12-02 15:41:36 · 123 阅读 · 0 评论 -
三、Java元注解
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V3元注解的作用是负责注解其他注解。除了直接使用JDK 定义好的注解,我们还可以自定义注解,在JDK 1.5中提供了4个标准的用来对注解类型进行注解的注解类,我们称之为 meta-annotation(元注解),他们分别是:@Target@Retention@Documented@Inherited我们可以使用这4个元注解来对我们自定义的注解类型进行注解。1、@Target.原创 2020-12-02 15:39:21 · 144 阅读 · 0 评论 -
二、Java内置注解
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V3定义在java.lang包下。1、@Override重写java.langAnnotation Type Override@Target(value=METHOD) @Retention(value=SOURCE)public @interface OverrideIndicates that a method declaration is intended to overri.原创 2020-12-02 15:37:06 · 190 阅读 · 0 评论 -
一、什么是注解
狂神说Java:https://www.bilibili.com/video/BV1p4411P7V31、概念Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。和 注释不同,Java 注解可以通过反射获取注解内容。在编译器生成类文件时,注解可以被嵌入到字节码中。Java 虚拟机可以保留注解内容,在运行时可以获取到注解内容 。 当然它也支持自定义 Java 注解。不是程序本身,可以对程序作出解释。可以被其他程序(比如编译器)读取。2、注解可.原创 2020-12-02 15:32:21 · 426 阅读 · 0 评论