`
退役的龙弟弟
  • 浏览: 453800 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java获得class对象的3中方法

 
阅读更多

Class类(在java.lang包中,Instances of the class Classrepresent classes and interfaces in a running Javaapplication):

   在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息
   获取Class实例的三种方式:
     (1)利用对象调用getClass()方法获取该对象的Class实例;
     (2)使用Class类的静态方法forName(),用类的名字获取一个Class实例(staticClass forName(String className)  Returns the Classobject associated with the class or interface with the given stringname. );
     (3)运用.class的方式来获取Class实例,对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的Class实例

注:第三种方式最推荐,(1)代码安全性高,以为在程序编译器就知道类是否存在(2)程序性能更高以为不需要执行方法性能更好
   在newInstance()调用类中缺省的构造方法 ObjectnewInstance()(可在不知该类的名字的时候,常见这个类的实例) Creates a new instance of the class represented by this Classobject.
   在运行期间,如果我们要产生某个类的对象,Java虚拟机(JVM)会检查该类型的Class对象是否已被加载。如果没有被加载,JVM会根据类的名称找到.class文件并加载它。一旦某个类型的Class对象已被加载到内存,就可以用它来产生该类型的所有对象

复制代码
 1 public class ClassTest {
2 public static void main(String [] args)throws Exception{
3 String str1="abc";
4 Class cls1=str1.getClass();
5 Class cls2=String.class;
6 Class cls3=Class.forName("java.lang.String");
7 System.out.println(cls1==cls2);
8 System.out.println(cls1==cls3);
9 }
10 }
复制代码

返回结果为:true,true.
解释:虚拟机只会产生一份字节码, 用这份字节码可以产生多个实例对象。

 

转自:http://www.cnblogs.com/whgw/archive/2011/10/04/2198837.html

分享到:
评论

相关推荐

    java元数据——CLass类

    1. 通过 Class 的 forName(String name) 方法传入一个类的完整类路径,也可以获得Class 对象,但由于使用的是字符串,必须强制转换才可以获取泛型的Class的Class对象,并且你应该考虑到这个方法可能抛出的 ...

    Java泛型的用法及T.class的获取过程解析

    最后,我们使用`getActualTypeArguments()`方法获取Type对象中的实际类型参数,然后将其强制转换为Class对象。 四、泛型的使用场景 泛型可以应用于多种场景中,例如: * 集合框架:泛型可以用于集合框架中,例如...

    Class对象获取的三种方法

    在Java编程语言中,`Class`对象扮演着至关重要的角色,它提供了运行时关于类、接口、数组类、基本类型和枚举类型的反射信息。获取`Class`对象的方法有多种,其中最为常见的便是通过`.class`语法、`Class.forName...

    java.lang.Class类

    2. 使用Class类的静态forName()方法获得与字符串对应的Class对象。 3. 获取Class类型对象的第三个方法非常简单。如果T是一个Java类型,那么T.class就代表了匹配的类对象。 Class类的常用方法包括: 1. getName():...

    javajava 反编译 .class查看

    Java是一种广泛使用的面向对象的编程语言,其源代码通常是用.java文件编写,经过编译后变成字节码的.class文件,这些文件可以在Java虚拟机(JVM)上运行。有时,我们可能需要查看或理解已经编译过的.class文件,这时...

    Java的面向对象特性 PPT

    在Java中,类定义了一组相关的属性(数据成员)和方法(函数)。例如,你可以创建一个名为"Student"的类,其中包含属性如姓名、年龄和成绩,以及方法如显示信息、注册课程等。通过类,我们可以将数据和操作数据的...

    json转对象数组与对象数组转json --Java

    在这个示例中,我们通过`JSONArray.fromObject()`将JSON字符串转换为`JSONArray`对象,然后使用`JSONSerializer.toJava()`方法将该数组转换为`PropertyT`类型的对象数组。 #### 对象数组转JSON 接下来,我们来看看...

    普通java类中获取pageContext对象

    在探讨如何在普通的Java类中获取`PageContext`对象之前,我们先来了解一下`PageContext`的基本概念及其在JavaWeb开发中的重要性。`PageContext`是JavaServer Pages(JSP)技术的核心类之一,它提供了对当前页面的上...

    Java对象和类 最详细说明

    **方法**:在Java中,方法类似于函数,用于实现对象的行为。方法的使用可以提高代码的重用性和维护性。 **new 关键字**:用于在运行时分配内存。在Java中,所有对象都在堆内存中获取空间。 #### 三、对象与类的...

    Java面向对象总结

    继承是面向对象编程中的一个重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现了代码的复用。 1. **子类继承父类就拥有了父类的属性和方法**:当一个类(子类)继承另一个类(父类)时,...

    java 通过反射获取类上注解,方法上注解,注解里的值及方法参数

    首先,通过`Class`对象的`getMethod()`或`getDeclaredMethod()`方法获取到`Method`对象,然后调用`getAnnotations()`。 ```java Method method = clazz.getMethod("myMethod"); Annotation[] methodAnnotations =...

    Java面向对象编程PPT

    - 虚方法与非虚方法:Java中的所有方法默认都是虚方法,可以被覆盖;使用`final`或`static`修饰的方法是非虚方法,不能被覆盖。 - 多态的应用:通过父类引用指向子类对象,可以调用子类覆盖父类的方法,实现动态...

    Java-Java面向对象中引用传递教程

    - 当一个对象作为参数传递给方法时,方法内部获得的是对象引用的副本,这意味着所有对对象的修改都是针对原始对象进行的。 - 示例代码: ```java public class Test { public static void main(String[] args) ...

    java如何获得数据库表中各字段的字段名

    ### Java如何获得数据库表中各字段的字段名 在Java编程中,经常需要与数据库进行交互,例如查询、更新或删除等操作。其中一项常见需求是获取数据库表中的所有字段名称。这通常在动态生成报表或者需要根据数据库结构...

    猜拳游戏:java面向对象,kotlin面向对象,js面向对象,3个方法开发.zip

    标题 "猜拳游戏:java面向对象,kotlin面向对象,js面向对象,3个方法开发.zip" 提供了关于一个编程项目的概览,这个项目采用了三种不同的编程语言——Java、Kotlin和JavaScript,来实现同一个猜拳游戏。面向对象...

    东北大学JAVA 面向对象实验全部实验代码1到6

    3. 继承:Java支持单继承和多层继承,允许一个类(子类)继承另一个类(父类)的属性和方法。这有助于代码复用和结构化设计。实验中可能会有子类对父类的扩展,如“Teacher”类继承自“Person”类。 4. 多态:多态...

    Java类和对象的概念-Java教程共3页.pdf.zip

    在Java中,类和对象是核心概念,它们构成了程序的基本结构和功能实现。 1. **类(Class)**: 类是Java中的蓝图,它定义了一组属性(数据成员)和行为(方法)。类是面向对象编程的基础,因为它允许我们将数据和...

    JAVA中获得本地系统时间的方法

    ### JAVA中获得本地系统时间的方法 在Java编程中,获取本地系统的当前时间是常见的需求之一。这不仅可以用于记录日志、实现定时任务等功能,还能帮助开发者进行时间相关的数据处理。本文将详细介绍两种常用方法来...

    java反射获取所有属性,获取所有get方法,包括子类父类

    在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建动态代理等。在标题和描述中提到的知识点主要集中在如何通过反射获取类的所有属性和get方法,包括来自子类和父类的。下面将详细...

    java资料类,对象和接口

    Java是一种面向对象的编程语言,它的核心概念包括类(Class)、对象(Object)和接口(Interface)。在这次实验中,我们将深入理解这三个概念,并通过实际的代码示例来加深理解。 1. 类(Class): 类是Java中的...

Global site tag (gtag.js) - Google Analytics