首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java反射(完)类加载反射获取信息

三.类加载 1.动态加载和静态加载 基本说明 反射机制是 java 实现动态语言的关键,也就是通过反射实现类动态加载 1.静态加载:编译时加载相关的类,如果没有则报错,依赖性太强 2.动态加载:运行时加载需要的类...,如果运行时不用该类,即使不存在该类,则不报错,降低了依赖性 3.举例说明 类加载时机 1.当创建对象时(new))2.当子类被加载时 3.调用类中的静态成员时 4.通过反射 Class.forName...("com.test.Cat"); 2.类加载流程图 类加载各阶段完成任务 3.类加载的五个阶段 3.1 加载阶段 JVM 在该阶段的主要目的是将字节码从不同的数据源(可能是 class 文件、...也可能是 jar 包,甚至网络)转化为二进制字节流加载到内存中,并生成一个代表该类的 java.lang.Class 对象 3.2 连接阶段 3.2.1 验证 1.目的是为了确保 Class 文件的字节流中包含的信息符合当前虚拟机的要求...3.3 初始化 Initialization(初始化) 1.到初始化阶段,才真正开始执行类中定义的 Java 程序代码,此阶段是执行()方法的过程。2.

49520

Java 反射理解(二)-- 动态加载

概念 在获得类类型中,有一种方法是 Class.forName("类的全称"),有以下要点: 不仅表示了类的类类型,还代表了动态加载类 编译时刻加载类是静态加载类,运行时刻加载类是动态加载类 演示 我们以具体的代码来演示什么是动态加载类和静态加载类...{ // 动态加载类,在运行时刻加载 // args 是使用命令行的参数列表 形如: java 指定的程序名 参数 // args...我们新建 OfficeAble.java 、 Word.java 、Excel.java : OfficeAble.java: interface OfficeAble { public void...此时 OfficeBetter.java 是并没有重新编译过的,这就说明了 Word 类是动态加载的。...同理,执行: java OfficeBetter Excel 打印出:excel...start...,Excel 类是动态加载的。 ---- 完。

54640
您找到你想要的搜索结果了吗?
是的
没有找到

Java反射探索-----从类加载说起

转载请注明出处http://blog.csdn.net/evankaka         摘要:本文主要讲了Java加载的机制,这是学习反射的入门基础。...一、类加载 JVM和类       当我们调用Java命令运行某个Java程序时,该命令将会启动一条Java虚拟机进程,不管该Java程序有多么复杂,该程序启动了多少个线程,它们都处于该Java虚拟机进程里...3、通过网络加载class文件。 4、把一个Java源文件动态编译、并执行加载。 类加载器通常无须等到“首次使用”该类时才加载该类,Java虚拟机规范允许系统预先加载某些类。...Java程序对类的使用方式 主动使用 1、创建类的实例 2、方法某个类或接口的静态变量,或者对该静态变量赋值 3、调用类的静态方法 4、反射(如 Class.forName(“com.itzhai.Test...6、newInstance( )是一个方法,而new是一个关键字; 注:一般在通用框架里面用的就是class.forName来加载类,然后再通过反射来调用其中的方法,譬如Tomcat源码里面,这样就避免了

49410

Java基础增强】类加载器和反射

1.类加载器 1.1类加载器【理解】 作用 负责将.class文件(存储的物理文件)加载在到内存中 1.2类加载的过程【理解】 类加载时机 创建类的实例(对象) 调用类的类方法...访问类或者接口的类变量,或者为该类变量赋值 使用反射方式来强制创建某个类或接口对应的java.lang.Class对象 初始化某个类的子类 直接使用java.exe命令来运行某个主类...它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回...2.1反射的概述【理解】 反射机制 是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意属性和方法; 这种动态获取信息以及动态调用对象方法的功能称为...Java语言的反射机制。

15030

Java Review(三十九、类加载机制与反射

通过网络加载 class 文件。 把 一 个 Java 源文件动态编译, 并执行加载。 类加载器通常无须等到“ 首次使用” 该类时才加载该类, Java 虚拟机规范允许系统预先加载某些类。...使用反射方式来强制创建某个类或接口对应 的 java.lang.Class 对 象 。...通过反射查看类信息 Java 程序中的许多对象在运行时都会出现两种类型: 编译时类型和运行时类型, 例如代码: Person p=new Student();,这行代码将会生成一个 p 变量, 该变量的编译时类型为...在很多 Java EE (例如Spring)框架中都需要根据配置文件信息来创建 Java 对象,从配置文件读取的只是某个类的字符串类名, 程序需要根据该字符串来创建对应的实例, 就必须使用反射。...下面程序利用反射来创建一个 JFrame 对象, 而且使用指定的构造器: import java.lang.reflect.*; public class CreateJFrame { public

82430

java反射菜鸟教程_Java反射

JAVA反射机制 1定义: 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。...反射java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高!...2.作用 A:反编译:.class–>.java B:通过反射机制访问java对象的属性,方法,构造方法等; 这样好像更容易理解一些,下边我们具体看怎么实现这些功能。...getClass(); (2).通过Class类的静态方法——forName()来实现: Class c2 = Class.forName(“MyObject”); (3).如果T是一个已定义的类型的话,在java...MyObject x = new MyObject(); MyObject y = x.getClass().newInstance(); c.getClassLoader() 返回该Class对象对应的类的类加载

81610

加载反射2

java零基础入门-高级特性篇(十五) 类加载反射 2 继续上一章的内容,当我们获取到了类的Class对象,下面就可以用Class对象来干大事了。 反射 反射是什么?...反射是一种能力,能够在程序运行的过程中获取类的信息,创建对象,使用方法的能力。 ? 反射 看名字,首先想到的是光的反射。...java中的反射也有类似的特性,当一个java加载到jvm后,生成了Class对象,这时候Class对象就像镜子一样,当我们在java应用程序中需要获取到已加载java类的信息时,通过反射这个功能,...反射获取信息 ?...反射调用方法 ? 调用方法 反射调用方法的流程也与上面差不多,首先是获取Class对象,有了Class对象再创建实例对象,然后获取类的方法,最后用反射获取的方法类调用方法。

47120

Java反射(一)反射机制

反射在设计模式和框架底层都会用到 2.加载完类之后,在堆中就产生了一个 Class 类型的对象(一个类只有一个 Classi 对象),这个对象包含了类的完整结构信息。通过这个对象得到类的结构。...这个对象就像一面镜子,透过这个镜子看到类的结构,所以,形象的称之为:反射 p 对象-->类型 Person 类对象 cls-->类型 Class 类 2.反射原理图 3.反射相关类 Java 反射机制可以完成...在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时得到任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的成员变量和方法 生成动态代理 反射相关的主要类 java.lang.Class...:代表一个类,Class 对象表示某个类加载后在堆中的对象 java.lang.reflect.Method:代表类的方法,Method 对象表示某个类的方法 java.lang.reflect.Field...:代表类的成员变量,Field 对象表示某个类的成员变量 java.lang.reflect.Constructor:代表类的构造方法,Constructor 对象表示构造器 这些类在 java.lang.reflection

96450

利用Java反射和类加载机制绕过JSP后门检测

本文主要讨论利用 Java 反射机制和 Java加载机制构造 JSP 系统命令执行后门,并绕过一般软件检测的方法。...0x05:使用 Java加载机制绕过检测 Java加载机制简单来说就是 JVM 查找到类的所在位置,并将找到的 Java 类的字节码装入内存,生成对应的 Class 对象。...Class 对象;第三种使用 Java 反射机制和第四种使用 Java加载机制,都可以从全限定的类名字符串中获得 Class 对象,编码或变换下字符串的表现形式就可以规避 Runtime 等关键字...但其实在规避命令执行关键字的同时引入了 Java 反射和类加载机制相关的关键词。...但对于个人来说,只需要全局搜索代码中的".invoke("关键词,人工简单看下代码,就能判断是不是 Java 反射后门和 Java加载机制后门了。

2.2K00

Java 反射 VS Kotlin 反射

Kotlin 跟 Java 可以无缝衔接,因此 Kotlin 能够使用 Java反射机制。另外,Kotlin 也有自己的反射机制,需要额外地引入 kotlin-reflect.jar。...kotlin.reflect.full 是主要的 Kotlin 反射 API kotlin.reflect.jvm 用于 Kotlin 反射Java 反射的互操作。...Kotlin 反射的特性包含: 提供对属性和可空类型的访问权限,这是由于 Java 没有属性和可空类型的概念。 Kotlin 反射不是 Java 反射的替代品,而是功能的增强。...可以使用 Kotlin 反射来访各种基于 JVM 语言编写的代码。 下面以 Java反射和 Kotlin 的反射进行对比。 一....Java 反射与 Kotlin 反射的互操作性 为一个 Kotlin 属性获取一个 Java 的 getter/setter 方法或者幕后字段,需要使用 kotlin.reflect.jvm 包。

2.4K30

JVM--类加载反射

对JVM的内存有了一定理解后,再来看JVM是如何加载类,以及Java反射机制 一、类加载过程 有了前面的了解,我们知道Java文件先要编译成class文件,再由JVM加载class到方法区成为类元信息...,最后实例化class对象,加载类的过程又可以细分为:加载、连接、初始化、使用、卸载 类加载生命周期 1.加载(Loading) Java编译为class文件后,在使用类时,JVM如果没有加载过class...在前面的类加载过程中,除了在加载阶段用户应用程序可以通过自定义类加载器参与之外,其余动作完全由虚拟机主导和控制。到了初始化阶段,才真正开始执行类中定义的java程序代码(字节码)。...类加载时机 三、类加载器-双亲委派机制 类加载时,如果以前加载过,那么就不需要加载该类,实现这个机制的,就是双亲委派 子加载器不断往上询问是否加载过,再有顶至下加载该类,可以加载就直接加载,否则往下委派加载...双亲委派机制 四、反射 反射Java中一种机制,它能够帮助我们动态的使用一个类,其本质就是获取类元信息,并通过符号引用来操作内存或调用方法 例子使用的类如下: public class Hello

25020

Java 反射

反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制...在了解反射机制之前我们首先了解一下Java加载的过程 加载 加载是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象...类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。...反射机制的相关类 通过反射可访问的主要描述信息 组成部分 访问方法 返回值类型 说明 包路径 getPackage() Package对象 获得该类的存放路径 类名称 getName() String对象...com.company.Student.show4(int) 调用了,私有的,并且有返回值的,int参数的show4(): age = 20 返回值:abcd 参考资料 Java基础之—反射(非常重要

78420

Java反射

刚开始学Java 一般不太会关注到反射,但是如果看很多框架的源码,发现反射无处不在。最近一个业务需求中用了反射,感觉非常丝滑。...前文回顾(推荐点击下方蓝色链接阅读): Java 程序员都需要懂的 反射! 前言 鲁班: 什么是反射? 安琪拉: 反射Java 中提供的运行期获取对象信息的能力。...,那JDK 加载时先有Class 还是先有Object 呢?...如何加载 ?这个可以留个思考题。 真实业务场景 鲁班: 那知道反射有什么用?对我平常写 curd 有帮助吗?...执行都要从Class 类信息中加载,我们知道类的方法信息是放在单独的方法区的,对象在堆区,但是相比于反射带来的便利,如果不是高并发需要十分频繁的调用,反射的性能损耗可以忽略,并且反射性能损耗也有方法优化降低

72220

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券