Java类型识别

1.类型识别在Java中,如何工作首先要了解类型信息在运行期间如何表示的。这项工作是由Class的特殊对象完成的。他包含了类的信息,
2,每个类都有一个Class对象,每编译一个新类就产生一个Class对象,更恰当的说是被保存在一个同名的.class文件中,运行期,一旦我们想生成这个类的一个对象,运行这个程序的Java虚拟机首先检查这个类的Class对象是否已经加载,如果没有,JVM根据类名查找class文件,并将其载入,所以Java程序并不是一开始就被完全加载的,这一点与很多传统语言都不同。
3.一旦某个类的Class对象被载入内存,它就用来创建这个类的所有对象,

class Candy {
static {
System.out.println("loading candy");
}
}
class Gum {
static {
System.out.println("loading gum");
}
}
class Cookie {
static {
System.out.println("loading cookie");
}
}
public class TestShop {
public static void main(String[] args) {
System.out.println("inside main");
new Candy();
System.out.println("after creating candy");
try {
Class.forName("Gum");
} catch(ClassNotFoundException e) {
System.out.println("not found gum");
}
System.out.println("after create gum");
new Cookie();
System.out.println("after create cookie");
}
}

输出:
inside main
loading candy
after creating candy
not found gum
after create gum
loading cookie
after create cookie


Candy、Gum、Cookie中都有一个static语句,在第一次加载时被执行,会打印相应的信息,告诉我们这个类什么时候被执行了。创建对象的语句被写在main中打印语句之前,用来判断加载的时间点,
1.class对象在需要的时候才被加载,static是类被加载时才执行的。
2.class。forname()这是CLASS类的一个静态方法,传入一个参数,就会返回一个class对象的引用。


Java提供了一种方法来得到class对象的引用:
Gum.class 这样更加安全,因为他在编译期间就会受到检查

3.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值