初学java,弱弱的问一下,类名.class是啥意思?
初学java,问个弱问题。看书中,看到这样的一句
News n = firstSess.load(News.class, new Integer(pk));
第一个参数News.class是啥意思啊?
这里News是一个类。
firstSess是hibernate的一个Session实例。
------解决方案--------------------java虚拟机一开始的时候是不加载这个类的所以这个类的一些静态变量之类的董事是不存在的,只有当你第一次使用这个类的时候虚拟机才会加载这个类。在虚拟机当中存在Class这个类,其他的类的的名称加上.class(即类名.class)是这个类的一个对象。当我们需要使用这个类的时候可以用class的函数通过类名.class来加载这个类或者直接通过使用这个类来让虚拟机加载你的类.
------解决方案--------------------New.class 表示是这个 New 类的 Class 对象,这个类的 class 静态属性是由编译器给加上的。同样的,在数据中的 length 常量也是在编译期加上的。
------解决方案--------------------类名.class是一个关联于类的对象。对于每一个类型都对应一个Class对象(基本类型除外)
Class对象描述的是类的信息,包括静态属性、方法等,它是在类加载的时候生成的。
当要生成一个类型的对象是会先去检查是否已经存在该类的Class对象,否则视为该类为被加载!~