`
李灵晖-raylee
  • 浏览: 135632 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

从头认识java-12.2 Class对象(3)-.class

 
阅读更多

这一章节我们来讨论一下得到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的区别。

这一章节就到这里,谢谢。

-----------------------------------

目录

分享到:
评论

相关推荐

    mchange-commons-java-0.2.11.zip

    在Java开发中,这样的库可以极大地提高开发效率,因为它封装了常见的功能,开发者可以直接使用,而无需从头编写代码。 描述中的 "mchange-commons-java-0.2.11.jar包" 是该库的主要组成部分,是一个Java归档(JAR)...

    eclipse-java-2021-12-R-win32-x86_64.zip

    用户可以轻松地导入现有的Java项目,或者从头开始创建新的项目,包括Maven或Gradle构建系统。 3. **构建工具**:Eclipse 集成了构建工具,如Ant和Maven,使得构建和管理项目依赖变得简单。对于现代Java开发,Maven...

    android-studio-2021.2.1.15-windows软件包

    1. **创建项目**:通过选择模板或从头开始,快速初始化一个Android项目。 2. **编写代码**:在IDE中编写Java或Kotlin代码,构建应用逻辑。 3. **设计界面**:使用XML或可视化工具设计用户界面,实现丰富的交互...

    aip-java-sdk-4.2.0

    标题 "aip-java-sdk-4.2.0" 指的是一个针对Android平台的AIP(Artificial Intelligence Platform)SDK的特定版本,版本号为4.2.0。这个SDK是百度公司提供的,用于帮助开发者在Android应用程序中集成和使用百度的各种...

    api-ntrip-java-client-master.zip_android_ntrip_ntrip java实现_ntr

    - **JSON或XML解析**:NTRIP数据可能以这两种格式传输,需要解析成Java对象。 - **Android权限管理**:可能需要获取网络访问权限。 - **线程管理**:网络操作通常在后台线程执行,防止UI阻塞。 - **异步处理**:如...

    aspose-words-14.7.0.jar.zip

    《Aspose.Words for Java 14.7.0:高效文档处理的利器》 Aspose.Words 是一款由 Aspose 公司开发的高级文档处理库,特别为 Java 平台设计。在这个版本 14.7.0 的 jar 包中,它提供了丰富的功能,使开发者能够方便地...

    Python库 | classy_core-0.2.0.dev20211229-py3-none-any.whl

    **Python库:Classy Core 0.2.0.dev20211229-py3-none-any.whl** 本文将深入探讨Python库“Classy Core”的详细内容,该库在开发过程中提供了名为“0.2.0.dev20211229-py3-none-any.whl”的特定版本。此版本是针对...

    aspose-words-java-23.6-jdk17.jar.zip

    【标题】"Aspose.Words for Java 23.6 with JDK 17 Support" Aspose.Words 是一个强大的文档处理库,专为Java开发者设计,用于创建、操作和转换各种文档格式。版本23.6是这个库的一个重要更新,它引入了对Java ...

    aspose.pdf-11.8.0.jar

    Aspose.Pdf是一款知名的Java库,专为处理PDF文档而设计。这个库的版本11.8.0,即“aspose.pdf-11.8.0.jar”,提供了丰富的功能,使得开发人员能够轻松地创建、修改、转换、打印以及在Java应用程序中集成PDF文档。...

    org.apache.poi.xwpf.converter.core-1.0.4.jar

    3. **Jar文件**: "org.apache.poi.xwpf.converter.core-1.0.4.jar"是这个转换库的具体实现,包含了所有必需的类和方法,使得开发者可以在他们的项目中直接引用并使用转换功能。通常,你需要把这个jar文件添加到你的...

    PyPI 官网下载 | aws-solutions-constructs.aws-lambda-s3-1.54.0.tar.gz

    Constructs是AWS Cloud Development Kit (CDK)的核心概念,它是一种用高级语言定义基础设施的开发工具,如TypeScript、Python或Java。 在这个特定的版本1.54.0中,aws-lambda-s3构造体提供了预定义的模板,以便于...

    aspose-words-18.4-java.zip

    Aspose.Words for Java是Aspose公司开发的一款强大的文档处理组件,主要针对Java开发者设计,用于在Java应用程序中创建、编辑、转换和呈现各种Microsoft Word文档格式。版本18.4是该组件的一个特定更新,提供了对新...

    PyPI 官网下载 | cpp-enum-class-string-idl-0.0.1.tar.gz

    标题中的"PyPI 官网下载 | cpp-enum-class-string-idl-0.0.1.tar.gz"表明这是一个从Python Package Index(PyPI)官方源下载的软件包,名为"cpp-enum-class-string-idl",版本号为0.0.1。PyPI是Python社区用来分发和...

    官方最新itextpdf-5.5.8.jar+中文支持包itext-asian.jar

    总结来说,这个压缩包提供了iText库的最新稳定版本,结合其亚洲语言支持扩展,使得Java开发者能够方便地创建和处理包含中文的PDF文档,无论是从头新建还是修改已有的PDF,都能得心应手。对于需要处理中文PDF的企业和...

    手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip

    【标题】: "手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip" 这个压缩包文件包含了搭建微服务开发环境所需的基础软件,包括JDK(Java Development Kit)和MySQL数据库。...

    aspose-words-15.8.0-jdk16.jar

    《Aspose.Words 15.8.0 for Java:高效处理Word文档的利器》 在IT领域,处理文档是一项常见的任务,而Java开发者在处理Word文档时常常会依赖一些库来提高效率和便捷性。Aspose.Words是其中的一款强大工具,专为Java...

    java-pdf&word-jar.zip

    Java平台提供了一系列库来支持这些操作,本项目中涉及的主要有Spire.Doc、Spire.PDF以及Apache PDFBox。让我们详细探讨这些库的功能及其在Java开发中的应用。 首先,`Spire.Doc.jar`是Spire.Doc for Java的库文件,...

    java-sdk-master.zip_leancound集成第三方插件_即时通讯

    3. 使用客户端对象发送消息,SDK会处理网络通信和协议转换。 同时,Leancound的SDK可能还提供了事件监听器,使得开发者可以注册回调函数,以处理各种事件,如消息接收、用户在线状态改变等。这有助于实现更复杂的...

    spire.presentation.free-5.1.0.jar

    "Spire.Presentation.Free-5.1.0.jar" 是一个Java库,专门用于处理Microsoft PowerPoint格式的文件。这个库提供了丰富的API,使得在Java应用中创建、编辑和转换PPTX、PPT以及PPS文件变得轻而易举。在Java开发中,...

    commons-io-2.4.jar包 官方免费版

    Commons IO是Java编程语言中的一个开源库,由Apache软件基金会维护。这个库提供了一系列与输入输出操作相关的实用工具类,极大地简化了Java程序员处理IO任务的复杂性。标题提到的"commons-io-2.4.jar"是这个库的一个...

Global site tag (gtag.js) - Google Analytics