`
johnjobe
  • 浏览: 46707 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

java反射(转)

阅读更多

1.反射的基础类: java.lang.Class

2.Class代表了一类事物,java类用于描述一类事物的共性,如该类事物有什么属性,没什么属性,至于这个属性的值是什么,则是由这个类的实例对象来确定的。java程序中的java类,属于同一类事物,描述这类事物的java类名就是Class。

3.Class的各实例对象分别对应各个类在内存中的字节码。java源程序被编译成一对二进制的class代码,当我们需要用到某个类是,首先把类的字节码加载到内存中,然后再用该字节码去复制一个个的实例对象。每份字节码都是Class的实例对象,即Class类的实例对象就代表内存中的字节码。

4.一个类被类加载器加载到内存中,占用一片存储空间,他这个空间里的内容就是这个类的字节码,不同类的字节码是不同的,所以他们咋内存中的内容就是不同的。这个样子的一个个空间分别用一个个的对象来表示,这些显然具有形同的类型,这个类型就是Class类型。

 

5.如何获得各类的字节码:有三种方式:

 

 

//类名.class 例如:

System.class

//写程序的时候就知道类的名称

//对象.getClass() 例如:

new Date().getClass()

//Class.forName() 例如:

Class.forName("java.util.Date");//类的字符串的完整名称

 6.Class.forName()的作用:得到这个类的字节码,包含下面两种情况
.这个类
的字节码已经加载到java
虚拟机中,只需要找到返回.
.这个类
的字节码在java虚拟机没找到,于是用类加载器加载,然后把类的字节码缓存起来再返回.

 

 7.8个基本类型和一个void共9个预定义的Class实例对象
例如:

public static void main(String[] args) throws Exception { 
System.out.println(int.class.isPrimitive());//true 
System.out.println(int.class == Integer.class);//false 
System.out.println(int.class == Integer.TYPE);//true,TYPE表示基本类型 Class实例。 
System.out.println(void.class.isPrimitive());//true 
System.out.println(int[].class.isArray());//true 
} 

  

 

 

 

 

 

 

个人觉得java的内省在调用getter和setter的时候更有优势,为什么再各种培训视频的时候都在讲实用拼写字符串的方式来获取字段的getter和setter方法呢?高手能不能解释下呢?

分享到:
评论

相关推荐

    最全面的java反射总结

    Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心在于`java.lang.Class`类以及相关的类和接口,如`java.lang.reflect`包下...

    java反射 java反射 java反射java反射

    Java反射是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。在Java中,反射机制提供了强大的能力,包括在运行时检查类的结构、创建对象实例、调用方法以及访问和修改字段值。...

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    java反射,获取所有属性、方法以及List集合类

    Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类...

    Java反射性能测试分析

    ### Java反射性能测试分析 #### 引言 Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地访问、检测和修改类、接口、字段和方法等对象。然而,反射操作通常会引入额外的开销,这在性能敏感的...

    Java反射函数机制实现List转换Json

    Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括获取类的信息、创建对象、调用方法以及访问和...

    java反射机制.zip

    java反射机制java反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制...

    JAVA反射机制的入门代码

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法...

    Java反射机制总结

    ### Java反射机制总结 #### 反射的概念与起源 反射的概念最早由Smith于1982年提出,指的是程序能够访问、检测并修改其自身状态或行为的能力。这一概念的提出迅速引起了计算机科学领域的广泛关注,并在之后的研究中...

    java面试题--反射机制

    ### Java反射机制详解 #### 一、引言 在Java面试中,经常会出现与反射机制相关的题目。这是因为Java反射机制不仅是Java语言的一项重要特性,也是理解Java动态特性的关键所在。通过本文,我们将深入探讨Java反射...

    java 反射得到某个方法

    在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java.lang.Class`类是反射的核心,它代表了Java中的每一个类。我们可以通过以下方式获取到一个...

    Java反射经典实例

    Java反射是Java编程语言中的一个强大特性,它允许运行时的程序访问并操作类、接口、字段和方法等信息,即使这些信息在编译时并未明确知晓。在Java中,反射通常通过`java.lang.Class`类和相关的API来实现。本实例将...

    反射实例-JAVA反射机制

    ### 反射实例—JAVA反射机制 #### 一、反射概念及原理 反射在计算机科学领域,特别是程序设计中,是指程序有能力访问、检测和修改其自身的结构和行为。这一概念最早由Smith于1982年提出,并迅速应用于各种编程语言...

    java反射实现Object转json

    对于"java反射实现Object转json"这个主题,我们将深入探讨如何使用反射机制将Java对象转换为JSON格式的数据。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    java反射源代码

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有高度的灵活性,尤其在处理框架、插件系统以及元数据驱动...

    通过Java反射机制获取JavaBean对象

    1.通过Java反射机制获取JavaBean对象。 2.通过JavaBean全路径字符串获取JavaBean对象。 3.获取JavaBean注解信息

    java 反射机制例子

    ### Java反射机制详解 #### 一、反射的基本概念与历史背景 反射的概念最早由Smith在1982年提出,其核心思想是程序有能力访问、检测甚至修改自身的状态和行为。这种能力一经提出,迅速成为了计算机科学领域的研究...

    java Map转换成bean,利用java反射以及java和bean包

    这个过程通常涉及到Java反射机制和JavaBeans包中的工具类。下面我们将详细探讨如何实现这一转换,并解释相关的Java知识点。 首先,Java反射是Java语言的一个重要特性,它允许程序在运行时检查类、接口、字段和方法...

    java反射.pdf

    ### Java反射机制详解 #### 一、什么是Java反射? Java反射是Java编程语言的一个特性,它允许运行时检查和操作程序结构(类、字段、方法等)。反射的主要用途包括但不限于:动态实例化对象、访问私有成员、调用...

Global site tag (gtag.js) - Google Analytics