这一章节我们来讨论一下得到Class对象的另一种方式.class。
1.例子
package com.ray.ch12;
public class Test {
public static void main(String[] args) {
System.out.println(Person.class.getName());
}
}
class Person {
static {
System.out.println("loading person");
}
public Person() {
System.out.println("creating person");
}
}
输出:
com.ray.ch12.Person
通过这种方式一样可以得到Person类的Class对象的引用,但是从输出我们观察到,在得到引用的同时,Person是没有加载到类加载器里面。
其实,初始化类包含三个步骤:
(1)加载。找到.class文件,加载到类加载器里面
(2)链接。为静态属性或者方法分配空间。
(3)初始化。初始化静态属性或者方法,如果有父类,则需要初始化父类。
初始化是在静态方法或者非静态域进行首次引用时才执行。
由于上面的代码还没有执行到初始化这一步,因此,是不会有loading等信息的打印。
结论:使用.class只会得到Class的引用,而Class.forName除了得到引用,还进行了初始化。
package com.ray.ch12;
public class Test {
public static void main(String[] args) {
Class personClass = Person.class;
System.out.println(Person.id);
try {
Class personClass2=Class.forName("com.ray.ch12.Person");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Person {
public final static int id = 1;
static {
System.out.println("loading person");
}
public Person() {
System.out.println("creating person");
}
}
输出:
1
loading person
总结:这一章节结束了.class的使用以及跟Class.forName的区别。
这一章节就到这里,谢谢。
-----------------------------------
目录
分享到:
相关推荐
用于3D图像处理的Java API 创建,编辑,操作和保存3D格式。 它使Java应用程序能够与3D文档连接,而无需在计算机上安装任何软件包。 Java API的Aspose.3D可帮助开发人员在游戏中建模和创建庞大的世界,为设计可视化...
从头开始搭建日历组件,有注释。最基础最智障的那种,零基础看着也差不多能会,可以下来玩玩,熟悉熟悉自己再写一个类似的日历组件。
与beyondcompare工具...或者您曾撰写两份以上的文字文件,内容稍有差异,但要从头查起,可能会相当累人,这时候就可以利用WinMerge来帮您自动比对。WinMerge会将两个文件内容做比对,并在相异之处以高亮度的方式显示
PostgreSQL 12.2 中文手册 chm格式 带多级目录,带索引列表 可全文搜索,可离线查阅 可收藏目录,可收藏索引 部分目录: 前言 1. 何为PostgreSQL? 2. PostgreSQL简史 3. 约定 4. 进一步的信息 5. 缺陷报告指南...
视频 https://www.bilibili.com/video/BV1914y1s7hi
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。...它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
军工行业2021年度投资策略:而今迈步从头越-20201115-招商证券.pdf
视频 https://www.bilibili.com/video/BV1914y1s7hi
本资料是UCSF DOCK的使用案例分享的输入资料,将使用DOCK 6.11自带的片段库,使用DOCK/RDKit的 DOCK_D3N功能从头设计分子。便于使用者直接从这部分设计工作开始,不需花时间来准备输入文件。
从头写React-like框架的工程搭建实现 最近在网上看到了 Build your own React 这篇文章,作者从零开始实现了一个简易类 React 框架,虽然没有过多的优化,但 React 中的核心思想 Concurrent Mode,Fiber ...
带有HTML,CSS,JS和一点PHP 目录 avatar-creation.html contact-page-without-php.html customizable-info-cards-page.html full-page-tabs.html horizontal-icon-navbar.html ...- simple-for
乙二醇2020年度策略报告:“熊”关漫道真如铁,而今迈步从头越-20191230-光大期货-36页.rar
web-class.gr 新页面开始。 这个免费的研讨会开始是对 (雅典国立技术大学)的一些本科生的承诺,目的是教授Web应用程序开发的任何基本原理,经过多年的发展,该课程一直吸引着各个认知水平和年龄的人们谁想要从头...
谷歌地图一个有用的应用程序,可以从头开始教 google 地图.. -- 初学者级别
Spring Tools 4是适用于您喜欢的编码环境的下一代Spring工具。无论是从Eclipse,Visual Studio Code还是Theia IDE,它都是从头开始大量重建的,为开发基于Spring的企业应用程序提供了世界一流的支持。
从头开始训练SSD-python源码.zip
从头开始训练Faster R-CNN-python源码.zip
互联网娱乐行业深度研究:网络文学二十年,让我们从头认识这个熟悉又陌生的巨大市场-20190228-国金-29页.rar