反射
发表于|更新于|JVM
|浏览量:
反射
Java反射机制是在运行状态中,
对于任何一个类,都能够知道这个类的所有属性和方法;
对于任何一个对象,都能够任意调用他的方法和属性;
这种动态获取信息和动态调用对象方法的功能就叫做反射机制。

文章作者: Alfred
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Alfred的小站!
相关推荐

2021-08-16
jvm如何加载.class文件
jvm如何加载.class文件JVM是一个内存中的虚拟机 Class Loader:根据特定格式,加载class文件到内存 Execution Engine:解释器,对命令进行解析 Native Interface:融合不同语言的原生库为java所用 Runtime Data Area:JVM内存空间结构模型 由Class Loader加载.class文件到内存,Execution Engine进行解析运行,如果有native方法交给Native interface执行

2021-04-11
内存模型
内存模型 Runtime Data Aera Method Area:是Java虚拟机规范中的概念,在HotSpot的实现中: JDK7及以前,HotSpot用永久带来实现方法区,存在jvm内存中,与堆连续的地址空间,GC和老年代一起。 JDK8及以后,HotSpot把很多东西放到了堆或者本地内存,而方法区则成为了元空间的实现,同时元空间不再与堆连续,而且是存在于本地内存(Native memory)。 JVM内存模型 线程私有:程序计数器,虚拟机栈,本地方法栈 线程共享:MetaSpace、Java堆 程序计数器(Program Counter Register) 是一块较小的内存空间,可以看做是当前线程所执行的字节码行号的指示器; 字节码解释器工作时,通过改变计数器的值选取下一条执行的字节码指令;(一些基本功能都需要依赖计数器来完成 如 分支 循环 跳转 异常处理 线程恢复...

2021-04-11
常考题型
JVM三大性能调优参数 -Xms -Xmx...

2021-04-11
GC
GC 垃圾回收机制判断对象是否为垃圾的算法引用计数算法 通过判断对象的引用数量来决定对象是否可回收 每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1 优点:执行效率高,程序执行受影响较小 缺点:无法监测出循环引用的情况,导致内存泄露 由于其缺点的存在,主流JVM基本不使用此方式。 可达性分析算法 通过判断对象的引用链是否可达来就决定对象是否可以被回收 对内存中的整个对象图进行遍历,从GC Root开始,回收器将所有访问到的对象标记为存活,完成遍历后不可达的对象会被作为垃圾对象而清除。 可以作为GC Root的对象 虚拟机栈中引用的对象(栈帧中的本地变量表) 方法区中的常量引用的对象 方法区中的类静态属性引用的对象 本地方法栈中JNI(Native方法)的引用对象 活跃线程的引用对象 垃圾回收算法标记-清除算法(Mark and...

2021-04-11
ClassLoader
ClassLoader类从编译到执行的过程 编译器将源文件转化为字节码文件 ClassLoader将字节码转化为JVM中的Class<T>对象 JVM利用Class<T>对象实例化为T对象 ClassLoaderClassLoader在java中有着非常重要的作用,它主要工作在class装载的加载阶段,其主要作用是从外部系统获得class二进制数据流,它是java的核心组件,所有的class都是由ClassLoader进行加载的,ClassLoader负责通过将class文件里的二进制数据流装进系统,然后交给java虚拟机进行连接、初始化等操作。 ClassLoader的种类 BootStrapClassLoader:C++...

2021-04-11
常见面试题
常见面试题Object的finalize()方法的作用是否与C++的析构函数作用相同finalize()方法垃圾回收器准备释放内存的时候,会先调用finalize()。 与C++的析构函数不同,析构函数调用确定,而它的是不确定的 当对象变成(GC Roots)不可达时,GC会判断该对象是否覆盖了finalize方法,若未覆盖,则直接将其回收。否则,若对象未执行过finalize方法,将其放入F-Queue队列,由一低优先级线程执行该队列中对象的finalize方法。执行finalize方法完毕后,GC会再次判断该对象是否可达,若不可达,则进行回收,否则,对象“复活”。 方法执行随时可能被终止 给与对象最后一次重生的机会 对象不一定会被回收。 垃圾回收不是析构函数。 垃圾回收只与内存有关。 垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。 Java中的强引用,软引用,弱引用,虚引用有什么用强引用 最普遍的引用:Object obj = new...
公告
This is my Blog