怎么理解java反射机制?

怎么理解java中反射机制?或者说反射的作用和原理?简要阐述一下。

3个回答

简单的来说,反射机制其实就是指程序在运行的时候能够获取自身的信息。如果知道一个类的名称或者它的一个实例对象, 就能把这个类的所有方法和变量的信息(方法名,变量名,方法,修饰符,类型,方法参数等等所有信息)找出来。如果明确知道这个类里的某个方法名+参数个数 类型,还能通过传递参数来运行那个类里的那个方法,这就是反射。
在Java中,Class类与java.lang.reflect类库一起对反射的概念提供了支持,该类库包含了Field、Method以及Constructor类(每个类都实现了Member接口)。我们知道对RTTI(运行时类型识别)来说,编译器在编译时打开和检查.class文件。而对于反射机制来说,.class文件在编译时是不可获取的,所以是在运行时打开和检查.class文件的。

简单的来说,反射机制其实就是指程序在运行的时候能够获取自身的信息。如果知道一个类的名称或者它的一个实例对象, 就能把这个类的所有方法和变量的信息(方法名,变量名,方法,修饰符,类型,方法参数等等所有信息)找出来。如果明确知道这个类里的某个方法名+参数个数 类型,还能通过传递参数来运行那个类里的那个方法,这就是反射。
在Java中,Class类与java.lang.reflect类库一起对反射的概念提供了支持,该类库包含了Field、Method以及Constructor类(每个类都实现了Member接口)。我们知道对RTTI(运行时类型识别)来说,编译器在编译时打开和检查.class文件。而对于反射机制来说,.class文件在编译时是不可获取的,所以是在运行时打开和检查.class文件的。

用白话的方式来说:首先知道一点:jvm怎么运行 java程序的?

作个比喻,jvm 就像一个 工厂, .class就是个产品品,被运到了工厂中,工厂里有一本账本,把进来的每一个物品的编号,名字等等都记下来了。
对象比喻成要准备加工的产品;
那么**反射**是什么呢? 反射比喻一个动作,就是你可以根据加工的产品去找账本相对应的记录,找到记录后,就可以得到此产品的任何信息,如果你想再造一个产品,把数据交个
另一个专门产产品的机器(这个机器是虚拟机里的某一种机制),它会自动产生一个产品(这是对象)。
还有一个问题?谁去运产品,谁去记录产品,谁去执行加工的流程?这些问题是jvm里的某些工具等等去做

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JAVA反射机制初步理解
对JAVA反射机制初步理解
java反射机制的理解
java反射机制:动态(运行时)获取类中的信息就是java反射,可以理解为对类的解剖。 反射机制主要提供的功能: 1)在运行时判断任意一个对象所属的类 2)在运行时构造任意一个类的对象 3)在运行时判断任意一个类所具有的成员变量和方法 4)在运行时调用任意一个对象的方法 反射技术的作用:提高了程序的可扩展性 示例 :Tomcat中使用反射机制读取web.xml配置文件
简单理解java反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 在面向对象的世界里,万事万物皆对象。那么java语言中,静态成员、类是谁的对象呢? 类是对象,类是java.lang.Class类的实例对象。那么Class类的实例对象如何表示呢?我们来
深入理解Java反射机制
反射机制定义          在Java程序的运行过程中,对于任意的类,都能知道类的所有属性与方法,也能调用其实例化对象的任何方法与属性,这种在程序运行过程中检查周围环境,并可以依次进行进一步改变环境的能力,就是反射。翻译一下:反射可以在程序运行时根据类名获得类的详细信息。 RTTI原理 Java在运行时识别对象和类的类型信息的主要方式有两种:一种是反射,另一种则是RTTI,我们首先了解一...
深入理解JAVA反射机制。
一、什么是反射? 1.反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。简而言之,通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。 2.核心是JVM在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。程序中一般的对象的类型都是在编
深入理解java反射机制
本文深刻并且通俗的讲解了java反射机制,相信笔者阅读之后能够基本掌握java反射 1、反射的根本 -- Class类 1.1 Class类的概念理解 在我们的生活中,很多很多的人,我们可以用一个java类Person来表示,那么我们的java程序有很多很多的类,又该怎样表示呢?就是Class!! java程序中的各个java类属于同一类事物,描述这一类事物的java类就是Class。 反射主要是指程序可以访问、检测和修改它本身的状态或行为的一种能力。 换一种更容易理解的说法,反射就是把java类中的各
Java 反射机制的理解
这两天把JAVA的反射机制看了一遍,回味真的很酸爽,应该说很痴迷和很敬佩JAVA设计者的睿智,太完美了,简直是对C++设计者的一种藐视(原理我的无知,我只是想表达下JAVA的反射有多么强大和完美)。首先定义一下什么是反射:JAVA开发者使用反射大多是为了动态的操纵JAVA代码。能够分析类能力的程序为反射。 反射机制可以用来: 在程序运行中分析类的能力。(比如获取类的各项参数方法,根据类
java深入理解反射机制
java类装载器 工作机制: 1:装载:查找和导入class文件 2:链接:执行校验(检查载入class文件的正确性),准备(给类静态变量分配存储空间)和解析(将符号引用变成直接引用)步骤 3:初始化:对类的静态变量、静态代码块执行初始化工作。 类装载工作主要是由类classLoder,及其子类来负责的。 classloder是一个java运行的主键 jvm在运行时会产生3个cl
java反射机制理解-上
一、什么是反射机制         简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,     那么就可以通过反射机制来获得类的所有信息。就是给java更大的灵活性,使java具备动态语言的特征。 二、哪里用到反射机制         在刚刚学jdbc时用过一行代码,Class.forName("com.mysql.jdbc.Driver.cla
Java反射机制的理解(一)
          首先,介绍下Class类:Class类也是一个java类,不同的是类名比较特殊。我们将现实生活中具有相同特点的一类事物进行抽象,在代码中通过类的定义进行表示。因为我们定义的类通常也具有某些共性,例如类名、属性和方法等,所以我们在此基础上,又进行了二次抽象和封装,将我们定义的类抽象成特殊类Class的对象。          然后,我们来看一下百度百科对Java反射机制的定义...
java的反射机制(个人理解)
java的发射机制 百度定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 个人理解:java反射机制是指在一个类能获取其他任意一个类中的所有静态变量(类属型)和实例变量(对象属性)以及你在这个类中所定义的所有方法。从而达到简化代码
java反射机制简单理解
java反射机制简单理解,非常容易理解的java反射机制
JAVA反射机制的简单理解
有时候我们说某个语言具有很强的动态性,有时候我们会区分动态和静态的不同技术与作法。我们朗朗上口动态绑定(dynamic binding)、动态链接(dynamic linking)、动态加载(dynamic loading)等。然而“动态”一词其实没有绝对而普遍适用的严格 定义,有时候甚至像对象导向当初被导入编程领域一样,一人一把号,各吹各的调。 这里说的动态语言指的是“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”;Java并不是一种动态语言,但 是可以通过反射机制来实现“动态”,用一个实例来说明一下:
理解Java反射机制
1、什么是反射反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。官方的解释如下:Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes,...
Java反射机制理解记录
最近做一个excel的模板导入,想做成动态性质的模板(大体上是模板中有几个属性,就放几个属性的值到bean中,用于存取) 。 当时就想到反射机制,巴拉巴拉出来。
深入理解java的反射机制
今天将从以下4方面来系统的学习一下java的反射机制: java反射是什么 java反射(Reflection)底层实现原理 java反射的简单演示 java反射的应用场景   1,java反射是什么   首先大家应该先了解两个概念,编译期和运行期,编译期就是编译器帮你把源代码翻译成机器能识别的代码,比如编译器把java代码编译成jvm识别的字...
Java反射机制理解
1.反射机制:.class->.java,通过反射机制访问对象的属性,构造方法等 2.常用类:自己查API java.lang.Class;                 java.lang.reflect.Constructor; java.lang.reflect.Field;         java.lang.reflect.Method; java.lang.refl
java的反射机制理解
在学习一个项目时用到了Java的反射机制来实现dao层,发现java的反射机制很有趣,现在做一下笔记: 什么是反射机制: 根据网文,java中的反射机制可以如此定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。机制原理: 首先不得不提
Java回调机制和Java反射机制理解
1. Java回调机制回调是一种双向调用模式,即被调用方在被调用时也会调用对方,这就叫回调。通过一个图来理解回调的过程: 1) A实现I的接口的方法 2) A持有B实例对象的引用 3) A传递I接口对象给B 4) A调用B的方法解决问题 5) B解决问题后,调用I接口的方法,因为A实现了I接口,也就相当于调用了A的方法。 代码示例: 接口I:public interfa
个人对于JAVA反射机制的理解
先引用一下官方的定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 一般我们的代码是.java 文件,经过编译变成系统可读的.class文件,也就是说所有的东西都已经写死了,执行的就是.class的内容。 反射机制相当
(重要)Java反射机制(容易理解)
Java反射指的是在运行状态时,能够获取类的属性和方法或者修改类运行时行为的过程。 java.lang.Class类提供了很多方法用于获取元数据、检查和改变类运行时的行为。 Java的反射主要涉及java.lang和java.lang.reflect包下的类。 反射应用场景举例 IDE, 如Eclipse、MyEclipse、NetBeans等; 调试器; 测试工具等; 各大框架、s...
怎样理解java中反射机制?
怎样理解java中反射机制?rn如jdbc加载驱动时用:Class.forName(driver);等
对java反射机制的理解及帮助文档
     一直以来感觉“java反射机制”是个很神秘,至少是我一时半会搞不懂的东西。。。也因为这种一直报着害怕的感觉没敢深入学习,可是就是前几天因为看到“大话设计模式 之 小菜编程成长记”中讲的设计模式中讲到java反射,使得我不得不好好的学习下java反射,真正静下心来学习过后才发现原来java反射没有我想象的那么可怕,原来java已经给写好了反射的API,只要调用一切都可以得到。。。。   ...
对Java中反射机制的理解
简单的说,反射机制就是在程序的运行过程中被允许对程序本身进行操作,比如自我检查,进行装载,还可以获取类本身,类的所有成员变量和方法,类的对象,还可以在运行过程中动态的创建类的实例,通过实例来调用类的方法,这就是反射机制一个比较重要的功能了。那么要通过程序来理解反射机制,首先要理解类的加载过程。 在Java程序执行的时候,要经历三个步骤:加载、连接和初始化。首先程序要加载到JVM的方法区中,然...
简单理解java中的反射机制
反射机制:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 1.首先我们要了解java中的Class类: 其实每当我们编写并编译一个类时,JVM就会创建这个类对应的Class类对象,记录着该类的相关类型信息;并且这个Class对象会保存在同...
对java反射机制的一些理解
1.什么是java的反射机制? 说实话,一开始的时候我真的不知道什么是java的反射机制,反射机制又有什么用呢?甚至于在刚开始的时候,我还觉得java反射机制真的麻烦,还不如平常的使用类以及其实例对象还有方法等。但随着慢慢的理解以及了解,才发现其实java的反射机制还是很棒的,甚至于说这才是java的精髓所在,那么我们就一起来探讨一下吧: 反射(Reflection)机制:其实就是程序在运行的
深入理解系列之JAVA反射机制
反射是指,程序运行期间,对于任意一个类,都能够知道这个类的所有属性和方法,且都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 问题一、反射机制的理论基础是什么? 如前言所属,基本每个java程序员都知道反射的概念和作用,但是为什么java可以支持反射?为什么C/C++就没有呢?其实,java之所以能够实现反射其根本的理论基...
关于java反射机制的个人理解
最近学习java web了解到java的反射机制,java反射机制算是java的显著特性之一。查找了大量资料之后,自我总结了一些反射机制的知识点。 什么是java反射机制        我们都知道java是运行在JVM上的半解释形语言(所谓半解释形,就是指它既需要像编译形语言那样编译,也需要JVM解释运行),java源代码经过编译之后
java的反射机制的理解和代码的分析
首先要从宏观入手理解什么是反射和弄清反射的作用,这两个基本的理解了,反射的代码什么的就懂了。而且也不用非得把代码背下来。懂原理很重要。 按个人理解,反射就是在模仿虚拟机创建对象的一个过程。回想之前写代码,创建的对象都是直接new出来的。这样就会发现一个问题,你运行一个程序的时候,这个对象就写死了。你创建的时候是什么样那就什么样了,就很死板。比如你玩LOL,直接new的方式创建对象,就相当于每次游
关于java中的反射机制理解!
 *  *关于类的加载器  *     当程序要使用某个类的时候,如果该类还未被加载到内存中,系统会通过加载 , 连接, 初  *     始化这三步来实现对这个类的进行初始化.  *     1.加载                          就是指将class文件读入内存,并为之创建一个Class对象。                          任何类被使用
关于java类装载器与反射机制的理解
类装载器ClassLoader一,作用  将一个java字节码文件装入JVM(java虚拟机)中,步骤如下:      (1)装载,查找和导入Class文件      (2)链接,校验、准备和解析步骤               ①校验:检查载入Class文件的正确性               ②准备:给类的静态变量分配存储空间               ③解析:将符号引用转换为      (...
深入理解java中的反射机制
java反射机制
JAVA中的反射机制理解与浅析
java反射机制 反射的理解 示例代码
java反射机制深入理解剖析
title: java反射机制深入理解分析 date: 2018-3-3 14:18:40 categories: - JDK tags: - JDK - 反射 反射的简单介绍 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 一个类有多个组成部分,例如:成员...
反射机制的理解
一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。   尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection。这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行...
Java反射机制 Java反射机制
Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制
java反射机制怎么使用
什么是反射?     java的反射机制是在运行状态中,对于任意一个类,都能知道它的属性和方法,对于任意一个对象,都能 调用它的方法和属性。 常用的反射使用:     class:     Class classDm = class.forName("类的完整类名")--------获取一个类对象     ClassDm.newInstance();-------获取类的实例对象 这...
【java小白入门】理解java反射机制
      java初学者一枚,入行刚几个月,文中观点仅代表个人理解,不足之处请多指教。       反射在java中是一个非常重要的概念,经常会听到说“反射是框架的灵魂”这句话,但是对于初学者来说仅仅是会使用框架,框架底层的实现原理是不太清楚的,本人也是作为一个初学者,目前仅停留在会使用框架的层面,但是深刻理解了反射机制可以让我们在使用框架的时候能够大概清楚它内部是怎样操作的,而具体的实现方式...
初始Java反射机制,通过修改工厂设计模式理解反射机制的优点
        Java反射机制是Java中很重要的一部分,通过反射可以用另一种,不同于new()的实例化类对象的方法。不用Import导包,用Qualified Name 的字符串实例化对象。(forName()方法) 下面代码通过两种方法实例化Date对象。import java.util.Date; public class Fs { public static void main(St...
Java反射机制笔记-反射机制
反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Java反射机制是在进行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法。本实例介绍反射类的方法以及如何获得和调用其他类的属性、构造方法和方法信息。技术要点:运用反射的技术要点如下:反射机制最重要的内容-检查类的结构;反射机制提供以下功能:在运行时判断任意一个对象所属的类Class...
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件