`
退役的龙弟弟
  • 浏览: 446334 次
  • 性别: 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对象, 是为了准确的获得方法(因为有方法重载, 方法名一样, 所以需要方法的参数类型) Class对象.getMethods(); 获得所有的公共的方法(包括继承获得的公共构造方法); ...

    Java反射机制,通过对象访问调用类的私有成员或方法

    Java反射机制,万物皆对象,class也是一个类的对象,通过类类型,反射获得类的成员属性,构造方法,成员方法,并调用类中的方法,也可以调用私有方法。

    java面向对象程序设计习题-(11).doc

    方法包括:获得学号,获得班号,获得姓名,获得性别,获得年龄,获得班 级总人数,修改学号,修改班号,修改姓名,修改性别,修改年龄以及一个toString() 方法将Student类中的所有属性组合成一个字符串。定义一个...

    第 3 次JAVA上机 报 告

    (3) 使用getValue()方法获得myValue对象中的数据并将它们打印在屏幕上 class MyValue { private int value; public void setValue(int x) { value=x; } public int getValue() { return value; ...

    java习题-反射-chap15.pdf

    Chp15 反射Key Point ●Class 对象及其基本操作●Method 对象...说明下面几种情况,应该采用哪种获得类对象的方法1)获得String 类的类对象2)加载一个类,该类的全限定名写在某个配置文件中3)打印某个对象的所有方法

    北航网络教育JAVA语言与面向对象程序设计单选题及答案.doc

    JAVA语言与面向对象程序设计单选题 applet的主要方法 在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成主类实例的初始化工作。 A.A. start( ) B. B. stop( ) C. C. init( ) D. D. paint...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java联想(中文)

    11.1.1 Class对象 11.1.2 造型前的检查 11.2 RTTI语法 11.3 反射:运行期类信息 11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按...

    java开源包3

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    JAVA阶段模拟试题

    17在Java中,Scanner类提供从控制台获取键盘输入的功能,下列语句()能够正确实例化Scanner类的对象,用于获得键盘输入的数据。(选一项) a) Scanner input = new Scanner(System.out); b) Scanner input = new ...

    JAVA面试题最全集

    方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() ...

    Thinking in Java简体中文(全)

    11.1.1 Class对象 11.1.2 造型前的检查 11.2 RTTI语法 11.3 反射:运行期类信息 11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按...

    java 面试题 总结

    wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 14、Overload...

    通讯录管理系统 Java设计 源程序

    /* 通讯录管理系统 ... * 获得数据库连接的方法 * @return Connection */ public class Message AddMessageFrame DeleteMessageFrame LoginFrame MainFrame QueryMessageFrame UpdateMessageFrame ... ...

    该仓库为Java进阶部分课堂同步代码.rar

    而是在Class文件的方法表中将该方法的access_flags字段中的synchronized标志位置1,表示该方法是同步方法并使用调用该方法的对象或该方法所属的Class在JVM的内部对象表示Class做为锁对象 执行monitorenter指令时,...

    Java异常处理机制的静态编译实现与优化

    相比于动态编译执行Java程序,在某些情况下,将Java程序静态编译成本地代码的执行模式,可以获得更好的性能.本文提出了一种适合处理Java异常机制的静态编译算法,并基于Open64开源编译器,对该算法进行了代码实现和验证。...

    java学习重点

    继承性 继承是一个对象获得另一个对象的属性的过程,继承机制是一个对象成为一个更具通用类的一个特定实例成为可能,避免了代码的重复编写; 多态性 (重载overload,方法名相同、参数的个数不同、参数的类型不同、...

    java 编程入门思考

    11.1.1 Class对象 11.1.2 造型前的检查 11.2 RTTI语法 11.3 反射:运行期类信息 11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按...

    java开源包11

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

Global site tag (gtag.js) - Google Analytics