Java编程思想之类型信息

1:java识别对象和类的信息主要有两种方式:一种是我们在编译时就已经知道了所有的类型,另一种是反射机制,它允许我们在运行时发现和使用类的信息。

2:类是程序的一部分,每个类都有一个Class对象,每当编写或者编译了一个新类都会产生一个Class对象,更恰当的说是被保存在了一个同名的.class文件中。

3:所有的类都是在第一次使用时动态的加载到JVM中的,当new新建类对象或者加载类静态资源都会加载类。

4:一旦某个类的Class对象加载到内存,它就被用来创建这个类的所有对象利用反射机制。

5:Class类被人为加载主要有Class.forName("全类名"),这个的副作用在于如果此类没有被加载就加载它。或者使用Class a = a.class这样做不会产生上面的副作用。

6:将类加载到内存主要有三部分:加载,链接(继承存在时链接父lei),初始化

7:static final 类型的成员变量不需要类初始化就可以读取。

8:instanceof保持了类型的概念,考虑到了继承equals和==在比较是不是一个class对象时一样的结果,class的比较不考虑继承,或者是这个确切的类型或者不是。

9:java反射机制(不用创建对象(编译期)而是在运行时通过反射得到Class类对象然后创建对象或者其他的方法成员变量等信息)(主要是四个类Class(位置更高,整体的映射或者是抽象) Constructor Field Method(类部分的抽象或映射)),就是将java类中各种成分映射到相应的java类,可以动态的生成某各类的成员,一个java类可以用Class类表示,Class的实例用字节码表示,上面已经提到了获取字节码的方法。java中的各种成员也可以用相应的java类来表示,例如表示构造函数的类Constructor,表示属性的类Field 表示方法的类Method,后面的三个类都位于java.lang.reflect包中。

10:空对象null指的是不指向任何东西,如果直接定义引用Student student 调用Student中的方法编译期就不会通过,如果Student student = null;再调用方法会报空指针异常,但是如果调用类静态资源则没有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值