注解_反射_字节码
you些话
记录学JAVA的路程,发表的文章为我的线上笔记,以便于复习
展开
-
JVM核心机制_深入类加载器_层次结构(三种类加载器)_代理加载模式_双亲委派机制
java.class.ClassLoader类• 作用:– java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称, 找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个 Java 类,即 java.lang.Class类的一个实例。 – 除此之外,ClassLoader还负责加载 Java 应用所需的资源,如图像文 件和配置文件等。• 相关方法 – getParent() 返回该类加载器的父类加载器。 loadClass(String nam原创 2020-11-22 22:50:38 · 115 阅读 · 0 评论 -
分析类加载全过程
链接 将Java类的二进制代码合并到JVM的运行状态之中的过程 ••验证:– 确保加载的类信息符合JVM规范,没有安全方面的问题。• 准备:– 正式为类变量(static变量)分配内存并设置类变量初始值的阶段,这些内存都将在方法区中进行分配• 解析– 虚拟机常量池内的符号引用替换为直接引用的过程初始化 •• 初始化阶段是执行类构造器()方法的过程。类构造器()方法是由编译器自动收集 类中的所有类变量的赋值动作和静态语句块(static块)中的语句合并产生的。• 当初始化一个类的时候,如果原创 2020-11-22 21:07:04 · 66 阅读 · 0 评论 -
初步JVM内存分析
package com.lzy.JVM;public class Demo01 {public static void main(String[] args) { A a=new A(); System.out.println(A.width);}}class A{ public static int width=100; static { System.out.println("静态初始化类A"); width=300; }}代码运行,首先会加载类Demo01,方法原创 2020-11-22 20:05:42 · 188 阅读 · 0 评论 -
javassist库介绍__API详解
处理类的基本用法测试产生新的方法//通过反射调用新生成的方法修改已有的方法信息,修改方法体的内容//通过反射调用新生成的方法属性的操作构造方法的操作获得注解的操作package com.lzy.assist;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Arrays;import javassist.CannotCompileEx原创 2020-11-21 21:56:56 · 494 阅读 · 0 评论 -
javassist下载使用以及XJad下载以及使用
package com.lzy.assist;import java.io.IOException;import javassist.CannotCompileException;import javassist.ClassPool;import javassist.CtClass;import javassist.CtConstructor;import javassist.CtField;import javassist.CtMethod;import javassist.NotFo原创 2020-11-21 18:00:55 · 1113 阅读 · 0 评论 -
脚本引擎执行javascript代码_Rhino引擎方法
package com.lzy.test.bean;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.net.URL;import java.util.List;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.Scrip原创 2020-11-21 16:37:07 · 400 阅读 · 3 评论 -
动态编译_反射调用main_DynamicCompile方法问题
package com.lzy.test.bean;import java.io.IOException;import java.lang.reflect.Method;import java.net.URL;import java.net.URLClassLoader;import javax.tools.JavaCompiler;import javax.tools.ToolProvider;public class TestDemo01 {public static void原创 2020-11-21 14:08:09 · 92 阅读 · 0 评论 -
反射机制_提高反射效率_操作泛型_操作注解
通过反射获取泛型信息package com.lzy.test.bean;import java.lang.reflect.Method;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.List;import java.util.Map;import com.lzy.test.bean.User;/** * 通过反射获取泛型信息 * * */原创 2020-11-21 11:45:38 · 114 阅读 · 0 评论 -
反射机制介绍__Class对象获取
反射机制User类package com.lzy.test.bean;public class User {private int id;private int age;private String uname;public User(int id, int age, String uname) { super(); this.id = id; this.age = age; this.uname = uname;}public User() { }public int原创 2020-11-18 14:30:57 · 67 阅读 · 0 评论 -
初始注解---如何自定义注解
什么是注解是从JDK5.0开始引入的新技术。· Annotation的作用︰-不是程序本身,可以对程序作出解释。(这一点,跟注释没什么区别)-可以被其他程序(比如∶编译器等)读取。(注解信息处理流程,是注解和注释的重大区别。如果没有注解信息处理流程,则注解毫无意义). Annotation的格式︰–注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value=“unchecked”)。. Annotation在哪里使用?一可以附加在packag原创 2020-11-18 12:42:12 · 179 阅读 · 0 评论