4、指出下面程序的运行结果。 class A { static { System.out.print("1"); } public A() { System.out.print("2"); } } class B extends A{ static { System.out.print("a"); ...
分类:
编程语言 时间:
2017-04-18 14:06:09
阅读次数:
270
1. 在不确定某个參数或对象是否是数组的时候。就能够使用发射机制。把该对象的Class对象传给Array.isArray(Class<?>) 方法进行推断。通过Class对象的 getComponentType() 方法能够进一步知道数组组件的详细类型。数组假设是多维的话能够递归调用Array.is ...
分类:
编程语言 时间:
2017-04-16 17:16:17
阅读次数:
141
Java通过指定类对应的Class对象,程序可以获得该类里包括的所有Field,不管该Field使用private修饰,还是使用public修饰。获得了Field对象后,就可以很容易的获得该Field的数据类型,例如,下面的代码便是获得该Field对象foeld的类型: 但是通过这种方式只对普通类型 ...
分类:
编程语言 时间:
2017-04-16 14:02:00
阅读次数:
263
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Class 类 ,一个Class对象将表示一个类的属性;获取Class类一共有三种方式如下 pac ...
分类:
编程语言 时间:
2017-04-13 16:59:34
阅读次数:
276
ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类, 然后由ClassLoader返回这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources(Class,文件,来自网络的字节流等), 通过C ...
分类:
其他好文 时间:
2017-04-09 19:41:32
阅读次数:
214
《effective c++》中提到: 如果class之间的继承关系是private,编译器不会自动将一个derived class对象转换为一个base class对象。 如果不能转换那多态就没有意义了,所以肯定是可以转换的,不过转换发生在derived class内部: ...
分类:
其他好文 时间:
2017-04-02 14:28:51
阅读次数:
129
1.1. Class类 Class是一个Java类,用于描述Java类的类。 至少有以下三种方式获取一个类的Class对象实例。 (1)通过Class.forName()方法。 (2)通过类的静态成员class变量。 (3)通过对象的getClass()方法。 运行结果: class com.tes ...
分类:
编程语言 时间:
2017-03-31 21:20:03
阅读次数:
182
运行结果(抛出的异常可能有差异): 类的构造器全部如下private huang.de.wei.ClassTest()public huang.de.wei.ClassTest(java.lang.String)class对象所对应的全部public构造器:public huang.de.wei.C ...
分类:
编程语言 时间:
2017-03-31 10:09:06
阅读次数:
347
运行时类型信息使得你可以在程序运行时发现和使用类型信息。主要有两种方式:一种是"传统的"RTTI,它假定我们在编译时已经知道了所有的类型;另一种是"反射"机制,它允许我们在运行时发现和使用类的信息。Class对象类是程序的一部分,每个类都有一个Class对象。换言之,每当编写..
分类:
编程语言 时间:
2017-03-30 20:48:35
阅读次数:
158
篇幅较长预警 为了方便解释java内存机制,先从类的加载开始谈起 1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 ...
分类:
编程语言 时间:
2017-03-28 21:28:14
阅读次数:
222