Java反射机制是java的这门语言所独有的,这也是面试官喜欢问的知识点之一,我们不能仅仅从会使用反射这个类以及类中方法,来认定自己会这个知识点,我认为这太过于表面,不是我们学习java的正确的方式。

首先我们先了解反射的相关概念:反射是指java运行状态中,任何类都能知道当前类的属性和方法,任何对象都能调用当前对象的属性和方法。
我们首先来看一个例子:
package com.javabase.reflect;import java.lang.reflect.Field;
import java.lang.reflect.Method;public class Demo01 {public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {Class p1 = Class.forName("com.javabase.reflect.person");System.out.println(p1.getName());Method m1 = p1.getMethod("test2");System.out.println(m1);Field[] fields = p1.getFields();for (Field f:fields){System.out.println(f.getName());}}
}
这是个简单的反射的例子,其中我认为反射的最重要的一句代码,也是java发射的核心代码 — Class.forName(“当前类的地址”);,这是该类被加载到java虚拟机的过程。我们可以从forName中的源码可以看出
 public static Class<?> forName(String className)throws ClassNotFoundException {Class<?> caller = Reflection.getCallerClass();return forName0(className, true, ClassLoader.getClassLoader(caller), caller);}
我们可以看出有个类加载的过程

就是将当前类的对象加载到java虚拟机中,得到了类对象,类对象存在java的堆中,所有的类的类对象都被java虚拟机存储在jvm中的堆中,方便java虚拟机对类对象的管理。
可以通过上述的例子来画出java虚拟机中运行的图。

这就是我的个人理解,如有错误,还望各位指教。

java反射底层原理。相关推荐

  1. Java反射底层原理以及应用

    写在前面: Java反射, 这个东西百度就会出来相关概念: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动 ...

  2. java反射底层原理,总结到位

    1 进程 进程与程序 操作系统之中最为通用的概念就是「进程」.与此相关的面试题以及各种技术优化策略也层出不穷,足以够证明它对于理解操作系统中举足轻重的地位.事实上,通过「进程」,程序员可以更为直观的理 ...

  3. java底层原理书籍_不愧是阿里p8大佬!终于把Java 虚拟机底层原理讲清楚了,请签收...

    概述 JVM 的内存模型和 JVM 的垃圾回收机制一直是 Java 业内从业者绕不开的话题(实际调优.面试)JVM是java中很重要的一块知识,也是面试常问的问题之一,直至今天,仍然还有许多面试者在被 ...

  4. java反射原理_java反射原理是什么?java反射机制原理详解

    前面给大家介绍了一下什么是java反射机制,那么下面要给大家介绍的就是java反射机制的原理,那么它的原理究竟是怎样的呢?下面就通过下面来做一下详细的了解吧. 首先我们再来介绍一下java反射机制. ...

  5. java反射原理三种,java反射的原理、作用

    1.什么是反射,反射原理java反射的原理:java类的执行需要经历以下过程,编译:.java文件编译后生成.class字节码文件 加载:类加载器负责根据一个类的全限定名来读取此类的二进制字节流到JV ...

  6. java反射的原理,作用

    什么是反射,反射原理 Java反射的原理:java类的执行需要经历以下过程, 编译:.java文件编译后生成.class字节码文件 加载:类加载器负责根据一个类的全限定名来读取此类的二进制字节流到JV ...

  7. Java CAS底层原理

    Java CAS底层原理 Java CAS底层原理,这一篇就够了!!! CAS全称(Conmpare And Swap)比较并交换,是一种用于在多线程环境下实现同步功能的机制.CAS 操作包含三个操作 ...

  8. java反射机制原理,为什么需要反射,反射的作用

    最近在学java反射以及动态代理,好多博客都写的十分官方.就自己整合些资料.加深java反射机制的理解. 在说反射之前,我们要先了解动态语言和静态语言的概念: 动态类型语言 所谓动态类型语言,就是类型 ...

  9. 10分钟看懂, Java NIO 底层原理

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 写在前面 ...

最新文章

  1. 微信小程序开发--数据绑定
  2. MySQL 到底是怎么解决幻读的?
  3. 【转】ArcGIS.Server.9.2.DotNet的ADF的Toolbar工作过程分析
  4. IntelliJ IDEA for Mac 如何创建普通的Java项目_创建项目_新建项目
  5. android 时间应用程序,Android在首次启动时需要更多时间启动应用程序
  6. 输入一颗二元树,从上向下按层打印树的每个节点,同一层中,按照从左到右的顺序打印。...
  7. JavaScript技巧[转载]
  8. OpenMP模式下多线程文件操作 (转)
  9. InnoSetup 制作安装包进阶版
  10. SpringBoot项目防止Sql注入
  11. 笔试题目:升级装备题
  12. UPS 笔记 (逆变电源 DSP)
  13. 定点运算之原码一位乘法
  14. 装完系统还要装什么_一键重装系统后需要干嘛
  15. 计算机如何格式化和重装系统,怎样格式化c盘重新安装系统_重装系统时如何格式化C盘...
  16. Intel TBB 开发指南 3 parallel_reduce
  17. 大数据征信进入洗牌期,区块链或成新一代征信系统底层架构
  18. Android——安卓卡片样式——CardView使用、CardView失效等
  19. Python实现数字图像处理之5种彩色空间转换(单图+多图+视频)
  20. 计算机中丢失IDAP,certify_ldap.dll

热门文章

  1. 为了让5G更省电,这家设备商秀出黑科技
  2. 龙芯(mips)+麒麟V10 electron适配
  3. GHOST的口诀:备份122、还原123
  4. 结合GUI可视化发送QQ消息 —— 2022/2/11
  5. 6、指正的定义、内存、使用、指针常量、常量指针
  6. 推荐系统架构与算法流程详解
  7. 计算机专业大学排名(全168所学校)
  8. html表格字间距怎么调整,word表格中怎么调整文字行间距以及字符间距?
  9. 微信小程序 textarea读取到的文本换行问题 以及保存回车换行到后台
  10. 正则表达式习题解答-Python核心编程3 第一章