当执行java程序时,jvm会为该程序启动一条jvm进程,不管该进程多复杂启动了多少条线程,都处于该jvm进程中。
(1)同一个jvm进程的所有线程变量都使用该jvm进程的内存区。
(2)不同jvm进程并不能共享数据
下面是一个例子:
1、有一个含有静态变量的类AA:
package com.ru.jvm.jvm_class; public class AA { public static int a = 6; }
2、第一个测试类,对静态变量+1
package com.ru.jvm.jvm_class; public class Test1 { public static void main(String[] args) { AA a = new AA(); a.a ++; System.out.println("a =" + a.a); } }
这时:AA的静态变量a = 7:
a =7
3、第二个测试类直接打印AA的a变量
package com.ru.jvm.jvm_class; public class Test2 { public static void main(String[] args) { AA b = new AA(); System.out.println("a = " + b.a); } }
结果:
a = 6
从第2和地3步可以看出两个程序之间并没有相互影响。这是因为test1和test2执行时是两个不同的jvm进程,不同进程间不能互相通信
相关推荐
通过本次实验,不仅加深了对JVM类加载机制的理解,还学会了如何利用类加载器和单例模式来优化程序结构和性能。在实验过程中遇到了一些小问题,如类加载路径配置错误导致的类加载失败等问题,这些问题最终通过仔细...
总结,JVM 类加载机制是Java平台的核心特性之一,它确保了程序的稳定运行和动态扩展能力。理解类加载器的工作原理和双亲委派模型对于优化程序性能、解决类冲突以及构建复杂的模块化系统至关重要。在实际开发中,掌握...
JVM类加载过程 JVM(Java Virtual Machine)是Java语言的核心组件之一,它是Java语言的可移植性和跨平台性的基础。JVM主要组成部分包括类加载子系统、执行引擎、本地方法接口和运行时数据区。 类加载子系统是JVM的...
《JVM类装载器原理详解》 Java的JVM(Java Virtual Machine)类装载器是Java运行时系统的重要组成部分,负责在程序运行期间查找并加载类的二进制数据。理解类装载器的工作原理对于优化Java应用性能和实现动态加载类...
Java提供了多种并发工具和机制,如synchronized关键字、volatile关键字、各种锁机制、以及java.util.concurrent包下的并发类和接口。 描述中提到了一个博文链接,尽管没有给出具体内容,但根据标题,我们可以推测该...
Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为Java应用程序提供了一个跨平台的运行环境。JDK(Java Development Kit)包含了开发和运行Java程序所需的所有工具,包括JVM。当我们谈论"jdk,jvm...
- **方法区**:存储类和接口的信息,如常量池、字段和方法数据。 - **PC寄存器**:记录当前线程正在执行的字节码指令地址。 - **本地方法栈**:与Java方法不同,本地方法栈为JNI(Java Native Interface)调用的C/...
1. **JVM架构**:JVM包括类装载器、运行时数据区、执行引擎、本地方法接口和本地方法库等主要部分。了解这些组件的作用和交互方式是理解JVM工作流程的基础。 2. **内存模型**:JVM的内存分为堆内存(Heap)、栈内存...
根类加载器,也称为bootstrap class loader,是JVM内置的最基础的类加载器,由C++实现,负责加载JDK核心库,如rt.jar,这些库位于JRE的lib目录下,包含了Java的基础类和API。 扩展类加载器,又叫extension class ...
JVM(Java虚拟机)是Java语言运行的基础,它负责执行Java字节码,并且是...开发者可以通过对JVM进行调优,结合业务场景和应用需求,合理配置JVM内存大小、调整垃圾回收策略和类加载机制,从而达到优化应用性能的目的。
Java虚拟机(JVM)规范和Java语言规范是Java开发者深入理解这个平台和技术的基石。这两部分规范分别定义了Java程序如何在JVM上运行以及Java编程语言的语法和语义。 《Java语言规范》(Java Language Specification...
首先,它具备一种名为“类加载器”(Class Loader)的组件,用于加载和管理程序中的类文件。类加载器不仅能够按需加载类文件,还能够支持热更新等功能。此外,类之间的隔离也使得每个类的运行环境相对独立,提高了...
标题《JVM调优和故障排除手册》预示着文档将专注于Java虚拟机(JVM)的性能调优以及如何诊断和解决在JVM环境中遇到的问题。JVM是运行Java程序的核心,负责提供内存管理、垃圾回收、多线程处理以及本地方法调用等服务...
- JVM指令是字节码,每条指令对应一个特定的操作,如加载和存储变量、算术运算、控制流程、对象创建和方法调用等。 - 指令手册会列出所有这些指令,比如`iconst_5`表示将整数5压入操作数栈,`aload_0`用于将局部...
- **类文件解析**:JVM将类文件中的字节码转换成计算机能够理解的指令执行。 #### 10. 常用工具 - **VisualVM**:是一个可以监控运行时的Java应用程序和环境的工具。 - **Memory Analyzer**:用于分析Java堆转储的...
1. **JVM架构**:JVM主要由类装载器、运行时数据区、执行引擎、本地方法接口和本地库组成。了解每个部分的功能对于优化程序性能至关重要。 2. **类装载机制**:包括加载、验证、准备、解析和初始化五个阶段,确保类...
JVM的指令由一个字节长度、代表着某种特定操作含义的数字(成为操作码)以及跟随其后的零至多个代表此操作所需参数(操作数)而构成。JVM采用面向操作数栈而不是寄存器架构,所以大多只有一个操作码。
JVM 可以分为三类:VMWare、Visual Box 和 JVM。其中,VMWare 和 Visual Box 使用软件模拟物理 CPU 的指令集,而 JVM 使用软件模拟 Java 字节码的指令集。 JVM 的运行机制可以分为三个主要的子系统:类加载器子...
- 类的生命周期包括加载、验证、准备、初始化和卸载五个阶段。 - 双亲委派模型:类加载器在加载类时,会将任务委托给父类加载器,直到Bootstrap ClassLoader。 3. **内存区域**: - 程序计数器:记录当前线程...
JVM 原理讲解和调优 ...JVM 是 Java 语言的核心组件,它的结构组成、类加载机制、内存管理和垃圾回收机制等方面都是 JVM 的关键组件。了解 JVM 的原理和机制可以帮助我们更好地优化 Java 应用程序的性能。