package com.zeph.jvm1; public class Singleton { private static Singleton singleton = new Singleton(); public static int a; public static int b = 0; private Singleton() { a++; b++; } public static Singleton getSingleton() { return singleton; } public static void main(String[] args) { Singleton singleton = Singleton.getSingleton(); System.out.println(singleton.a); System.out.println(singleton.b); } }
输出1和0,调用类的静态方法,主动加载类,但尚未初始化,然后初始化,首先初始化new Singleton(),此时a=1,b=1,然后初始化b=0,于是输出1和0
package com.zeph.jvm1; public class Singleton { public static int a; public static int b = 0; private static Singleton singleton = new Singleton(); private Singleton() { a++; b++; } public static Singleton getSingleton() { return singleton; } public static void main(String[] args) { Singleton singleton = Singleton.getSingleton(); System.out.println(singleton.a); System.out.println(singleton.b); } }
输出1和1
反之,最后初始化newSingleton,所以是1和1
引自:http://blog.csdn.net/benw1988/article/details/7606642
相关推荐
通过对“圣思园张龙 深入理解jvm”的内容进行梳理,我们了解到Java虚拟机作为Java技术体系的重要组成部分,在软件开发中扮演着极其重要的角色。掌握其内部工作原理和优化技巧对于提升Java应用程序的性能至关重要。...
圣思园 张龙 深入JVM 共7讲 第2部分(共2部分) 圣思园 张龙 深入JVM 共7讲 第2部分(共2部分)
JVM(Java Virtual Machine,Java虚拟机)是运行所有Java程序的假想计算机,是Java程序的运行环境,负责执行指令、管理数据、内存、寄存器等,是实现Java跨平台特性的关键部分。JVM指令手册详细记录了JVM的所有操作...
2. **运行引擎**:执行装载的类或接口中的指令,是JVM的核心。 3. **方法区**:存储解析后的类信息,包括常量池、字段信息、方法信息等。 4. **堆**:所有线程共享的内存区域,用于存储程序运行时创建的对象实例。...
标题中提到了JVM原理、JVM调优、JVM内存模型和JAVA并发,这些都是Java虚拟机(JVM)相关的核心概念。JVM是运行Java字节码的虚拟计算机,为Java提供了一个跨平台的环境,确保Java程序可以在不同的操作系统上运行而...
在Java编程环境中,了解JVM(Java虚拟机)中所有线程的活动状态对于调试多线程程序至关重要。本文将详细讲解如何查看JVM中的线程活动情况,并提供相关示例代码。 首先,Java提供了`java.lang.management....
在Java开发中,JVM(Java Virtual Machine)是运行所有Java程序的核心,它负责解析字节码并执行。为了确保应用程序高效稳定地运行,开发者需要对JVM进行监控,了解其内部状态,如内存使用、线程活动等。本文将探讨...
JVM规范详细定义了Java可执行代码(即字节码)的格式,包括操作码和操作数的语法和数值、标识符的数值表示方式、以及Java类文件中的Java对象和常量缓冲池在JVM中的存储映像。 这些定义为JVM解释器的开发人员提供了...
java对象在jvm中的存储情况 jvm
Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为Java应用程序提供了一个跨平台的运行环境。JDK(Java Development Kit)包含了开发和运行Java程序所需的所有工具,包括JVM。当我们谈论"jdk,jvm...
本次实验的主要目的是深入理解Java虚拟机(JVM)中的类加载机制。通过实践操作,掌握类的加载、连接与初始化过程,了解不同类型的类加载器及其工作原理,学会创建自定义的类加载器,并对类的卸载有所认识。实验将结合...
在典型的 JVM 实现中,存在一个简单的 CPU 架构模型,包括以下几个主要部分: - **PC(Program Counter)**:程序计数器,用于记录当前正在执行的指令的位置。 - **Operand Stack Pointer**:操作数栈指针,用于...
Singleton设计模式是软件工程中最常用的设计模式之一,它的主要目的是确保一个类只有一个实例,并提供全局访问点。在Java中,Singleton模式的实现有多种方式,每种方式都有其优缺点,我们将详细探讨这些实现方法并...
在现代软件开发中,Java虚拟机(JVM)作为执行Java字节码的核心组件,其性能直接影响到Java应用的运行效率与稳定性。特别是在大数据处理场景下,合理设置JVM内存参数显得尤为重要。本文将深入探讨JVM内存管理的基础...
在JVM的工作过程中,运行时数据区(也称为Java堆内存)是另一个重要的概念。它分为以下区域: - **堆**:存储所有实例对象和数组。Java垃圾收集器负责管理堆内存,进行对象创建和销毁。 - **栈**:每个线程都有...
这份“java圣思园学笔记+文档(张龙)”的压缩包文件,很可能包含了张龙老师在圣思园教学过程中的详细笔记和相关文档,这些资料对于正在学习或复习Java编程的学员来说是宝贵的资源。通过这份笔记,你可以系统地学习...
在这个压缩包中,"JVM图解.png"可能是对JVM内部结构的可视化表示,"JVM图解"可能是一个详细的文档,解释了JVM的工作原理,而"JVM指令手册 中文版"则提供了JVM可执行的所有指令的详细信息。下面,我们将深入探讨JVM的...
赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
尚硅谷jvm课件整理ppt
首先,需要理解JVM(Java虚拟机)的基本概念,以及在性能调优中的关键作用。JVM是运行Java程序的核心组件,负责解释Java字节码,并将字节码转换成特定平台的机器码。在性能优化过程中,JVM的配置、监控和调优是确保...