`
racingbird
  • 浏览: 23964 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

类型信息

 
阅读更多

初始化有效地实现了尽可能的"惰性"。从对 initable引用的创建中可以看到,

仅使用.class语法来获得对类的引用不会引发初始化。但是,为了产生Class

引用,Class.forName()立即就进行了初始化,就想在对initable3引用的创建

中看到的。

 

如果一个static final值是"编译期常量",就想Initable.staticFinal那样,

那么这个值不需要对Initable类进行初始化就可以被读取。但是,如果只是一个

域设置为static和final的,还不足以去确保这种行为。

 

如果一个static域不是final的,那么对它访问时,纵使要求它被读取之前,

要先进行链接(为这个域分配存储空间)和初始化(初始化该存储空间), 就像在对

Initable2.staticNonFinal的范文中看到的那样。

 

 

package TypeInfo;

import java.util.Random;


class Initiable{
	static final int staticFinal = 47;
	static final int staticFinal2 = ClassInitialization.rand.nextInt(1000);
	static{
		System.out.println("Initializing Initable");
	}
}

class Initable2{
	static int staticNonFinal = 147;
	static{
		System.out.println("Initializing Initable2");
	}
}

class Initable3{
	static int staticNonFinal = 74;
	static{
		System.out.println("Initalizing Initable2");
	}
}
public class ClassInitialization {
	public static Random rand = new Random(47);
	public static void main(String[] args) {
		Class initable = Initiable.class;
		System.out.println("After Creating Initable ref");
		// Does not trigger initialization
		System.out.println(Initiable.staticFinal);
		// Does trigger initialization;
		System.out.println(Initiable.staticFinal2);
		// Does trigger initialization;
		System.out.println(Initable2.staticNonFinal);
		System.out.println("After creating Initables3 ref");
		System.out.println(Initable3.staticNonFinal);
	}
}
 

 

分享到:
评论

相关推荐

    第十四章 类型信息

    在编程世界中,类型信息是程序理解数据结构和操作的关键元素。它涉及到变量、对象以及它们所持有的数据的种类。本章将深入探讨类型信息在软件开发中的重要性,特别是从源码分析和工具使用的角度。 类型信息在编程...

    收集JavaScript代码的运行时类型信息

    在JavaScript开发过程中,理解代码的运行时类型信息是优化性能、调试问题和编写高效代码的关键。"收集JavaScript代码的运行时类型信息"这个主题旨在探讨如何有效地获取和利用这些信息。 JavaScript是一种动态类型...

    电信设备-多源数据协同的精细森林植被类型信息遥感更新方法.zip

    "电信设备-多源数据协同的精细森林植被类型信息遥感更新方法"这一主题涉及到多个关键知识点,包括遥感技术、多源数据融合、森林植被类型识别以及信息更新策略。 遥感技术是通过非接触方式获取地球表面信息的技术,...

    2020-06-04事件类型信息处理方法、事件类型识别方法及装置.pdf

    2020-06-04事件类型信息处理方法、事件类型识别方法及装置

    c#反射机制学习和利用反射获取类型信息

    - 获取类型信息:使用Type对象,可以获取类型的所有成员信息,包括方法(MethodInfo)、属性(PropertyInfo)、字段(FieldInfo)、事件(EventInfo)等。 - 动态调用方法:通过MethodInfo对象,可以获取方法的...

    c#反射例子(源码)

    C#反射是.NET框架提供的一种强大功能,它允许在运行时检查类型信息并动态操作代码。这个例子(源码)提供了深入理解C#反射机制的机会。以下是对标题和描述中涉及知识点的详细解释: 1. **什么是反射?** 反射是...

    全国土壤类型数据(矢量数据)

    全国土壤类型数据(矢量数据)是一份极为重要的地理信息系统(GIS)资源,它涵盖了中国各地的土壤类型信息。这份数据集可用于多个领域的科学研究,包括但不限于土壤功能性分析和土壤承载能力评价。在深入探讨这份...

    土壤类型矢量_新疆维吾尔自治区.zip

    标题中的“土壤类型矢量_新疆维吾尔自治区.zip”表明这是一个地理信息系统(GIS)相关的数据文件,其中包含了关于新疆维吾尔自治区的土壤类型信息。这类数据通常以矢量格式存储,这意味着它是由点、线、面等几何对象...

    加密狗类型信息检测工具

    加密狗检测工具,检测系统中加密狗信息。

    Java数据类型与各数据库类型映射一览表

    该表格详细说明了每种数据类型在不同数据库管理系统中的映射关系,并提供了相关的 Java 对象类型和数据库类型信息。 在本表格中,我们可以看到不同的数据类型,如 BIGINT、BINARY、BIT、BLOB、CHAR、CLOB、DATE、...

    浙江省土壤类型shp矢量图层数据下载

    本资源“浙江省土壤类型shp矢量图层数据下载”提供了浙江省的土壤类型信息,这对于农业规划、环境研究、土地利用分析等多个领域都具有极高的价值。 首先,我们需要了解什么是shp文件。SHP是ESRI(Environmental ...

    类型库与ITypeLib接口

    1. 类型信息的接口:ITypeLib允许迭代获取类型库中包含的类型描述。 2. 提供全局函数和数据:类型库包含了模型中若干对象集的描述,例如方法、属性等。 3. 提供全面的信息:包括类型库对于用户的可用文件名和帮助等...

    江苏省土壤类型shp矢量图层数据下载

    本资源"江苏省土壤类型shp矢量图层数据下载"正是GIS应用的一个实例,提供了江苏省的土壤类型信息,这对于农业、环境科学、城市规划等领域都具有极大的价值。 首先,`shp`文件是ESRI(Environmental Systems ...

    Java在运行时识别类型信息的方法详解

    Java 在运行时识别类型信息的方法详解 Java 中的运行时类型识别(RTTI)机制是指在程序执行过程中,Java 虚拟机(JVM)可以识别出对象的真正类型信息,而不仅仅是引用类型。这项机制是通过 Class 类实现的。 Class...

    Java泛型类型擦除后的补偿

    - 在编译期间,所有的泛型类型信息都会被替换为它们的实际类型或者 Object 类型。例如,`List<String>` 会被擦除为 `List<Object>`。 - 类型参数的边界(如 `<T extends Number>`)也会被忽略,因为运行时不再需要...

    C++运行时获取类型信息的type_info类与bad_typeid异常

    在C++编程语言中,运行时获取类型信息是一项重要的功能,尤其对于动态类型检查和多态性至关重要。`type_info`类是C++标准库的一部分,位于`<typeinfo>`头文件中,它提供了在运行时查询和比较类型的能力。`type_info`...

    dpkg命令安装包,查看系统架构类型信息

    dpkg命令安装包,查看系统架构类型命令: dpkg --print-architecture

    反编译中数据类型重构技术研究

    个方面阐述了用已获取的类型信息推导未知类型的过程;针对指针与整型变量的歧义问 题,给出了基于运行时信息指针辅助判定方法,同时针对基本类型重构结果不确定的情况, 给出了基于数据流分析框架的双向类型传播模型...

    FileAnalyze文件类型分析工具

    在使用FileAnalyze时,用户只需将包含未知文件的目录或驱动器导入软件,它会自动扫描并列出所有文件的类型信息。这对于清理硬盘、恢复误删文件或处理未知数据集非常有用。同时,这款工具可能还具备批量重命名功能,...

    中国气候类型分布矢量shapefile

    这个数据集是以矢量格式存储的,意味着它包含了地理特征的点、线和多边形等几何对象,每个对象都有对应的气候类型信息。 在GIS领域,Shapefile是一种常见的地理数据格式,由多个相关文件组成,这些文件共同构成一个...

Global site tag (gtag.js) - Google Analytics