java反射底层原理。
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反射底层原理。相关推荐
- Java反射底层原理以及应用
写在前面: Java反射, 这个东西百度就会出来相关概念: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动 ...
- java反射底层原理,总结到位
1 进程 进程与程序 操作系统之中最为通用的概念就是「进程」.与此相关的面试题以及各种技术优化策略也层出不穷,足以够证明它对于理解操作系统中举足轻重的地位.事实上,通过「进程」,程序员可以更为直观的理 ...
- java底层原理书籍_不愧是阿里p8大佬!终于把Java 虚拟机底层原理讲清楚了,请签收...
概述 JVM 的内存模型和 JVM 的垃圾回收机制一直是 Java 业内从业者绕不开的话题(实际调优.面试)JVM是java中很重要的一块知识,也是面试常问的问题之一,直至今天,仍然还有许多面试者在被 ...
- java反射原理_java反射原理是什么?java反射机制原理详解
前面给大家介绍了一下什么是java反射机制,那么下面要给大家介绍的就是java反射机制的原理,那么它的原理究竟是怎样的呢?下面就通过下面来做一下详细的了解吧. 首先我们再来介绍一下java反射机制. ...
- java反射原理三种,java反射的原理、作用
1.什么是反射,反射原理java反射的原理:java类的执行需要经历以下过程,编译:.java文件编译后生成.class字节码文件 加载:类加载器负责根据一个类的全限定名来读取此类的二进制字节流到JV ...
- java反射的原理,作用
什么是反射,反射原理 Java反射的原理:java类的执行需要经历以下过程, 编译:.java文件编译后生成.class字节码文件 加载:类加载器负责根据一个类的全限定名来读取此类的二进制字节流到JV ...
- Java CAS底层原理
Java CAS底层原理 Java CAS底层原理,这一篇就够了!!! CAS全称(Conmpare And Swap)比较并交换,是一种用于在多线程环境下实现同步功能的机制.CAS 操作包含三个操作 ...
- java反射机制原理,为什么需要反射,反射的作用
最近在学java反射以及动态代理,好多博客都写的十分官方.就自己整合些资料.加深java反射机制的理解. 在说反射之前,我们要先了解动态语言和静态语言的概念: 动态类型语言 所谓动态类型语言,就是类型 ...
- 10分钟看懂, Java NIO 底层原理
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 写在前面 ...
最新文章
- 微信小程序开发--数据绑定
- MySQL 到底是怎么解决幻读的?
- 【转】ArcGIS.Server.9.2.DotNet的ADF的Toolbar工作过程分析
- IntelliJ IDEA for Mac 如何创建普通的Java项目_创建项目_新建项目
- android 时间应用程序,Android在首次启动时需要更多时间启动应用程序
- 输入一颗二元树,从上向下按层打印树的每个节点,同一层中,按照从左到右的顺序打印。...
- JavaScript技巧[转载]
- OpenMP模式下多线程文件操作 (转)
- InnoSetup 制作安装包进阶版
- SpringBoot项目防止Sql注入
- 笔试题目:升级装备题
- UPS 笔记 (逆变电源 DSP)
- 定点运算之原码一位乘法
- 装完系统还要装什么_一键重装系统后需要干嘛
- 计算机如何格式化和重装系统,怎样格式化c盘重新安装系统_重装系统时如何格式化C盘...
- Intel TBB 开发指南 3 parallel_reduce
- 大数据征信进入洗牌期,区块链或成新一代征信系统底层架构
- Android——安卓卡片样式——CardView使用、CardView失效等
- Python实现数字图像处理之5种彩色空间转换(单图+多图+视频)
- 计算机中丢失IDAP,certify_ldap.dll