`
- 浏览:
7226 次
-
1.2 JVM
Jvm是Java平台的能力源泉,正是它完成了让Java能无视底层硬件和操作系统的幕后工作。它很小,却是维护世界和平,保护Java子民不被恶意代码踢馆的奥特曼。
Jvm是一个概念上的计算机,但像真正的计算机一样拥有自己的指令集,在运行时也会对各种内存空间进行操作。其实如果你不是火星人,就应该不会对使用虚拟机程序语言来执行感到大惊小怪,像UCSD Pascal的P-Code机就是这类虚拟机中最为著名的一个。
Sun完成了Jvm的初号机,用来在PDA之类的手持设备上运行Jvm的指令集。Oracle现在则在手机、台式机和服务器上跑Jvm,但这并不意味着Jvm会对硬件环境或者操作系统挑三拣四。Jvm不是一款神一样的模拟器,它只是撑起一座让Jvm的指令集和CPU的指令集沟通的桥梁。不过,也许某天你一觉醒来,Jvm的指令集与CPU的指令集就融为了一体。
有意思的是,其实Jvm是个Java盲,它只读得懂Java编译变成二进制之后的class文件。class文件包含着字节码,符号表,以及一些杂七杂八的信息。
为了安全起见,Jvm要求class文件里的字节码必须使用强类型和类型约束。不过,任何一种程序语言,只要有爱,是都可以生成能够通过Jvm质量认证的class文件。无论是哪种程序语言至上论者,只要也想试一试一次编译到处运行的禁果,就会发现Jvm就像是为那门语言量身订做的一样。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本系列课程从JVM基础到高级实战,老师手把手教...1.2JVM参数调优 1.3JVM参数设置思路1.4JVM调优常用指令说明 第七节:JVM项目实战 1.1案例背景 1.2排查步骤 1.3.arthas 1.3.1.arthas简介 1.3.2.arthas实战 1.3总结
**1.2 JVM架构** JVM主要由以下几个部分组成: - **类加载器子系统**:负责将.class文件加载到内存中。 - **运行时数据区**:包括方法区、堆、栈等区域,用于存储程序运行时的数据。 - **执行引擎**:解释或编译字节...
**1.2 JVM由哪些部分组成?** JVM主要由以下四个关键组件构成: 1. **类的加载机制**:这是JVM的基础,负责加载Java类,并准备执行这些类。类加载机制确保了类的正确加载,并管理类的生命周期。 2. **JVM内存结构*...
1.2 JVM内存管理 JVM内存主要分为堆内存和栈内存。堆内存用于存储对象实例,而栈内存则用于存储方法调用时的局部变量。此外,还有方法区(或称为永久代)存放类的元数据,包括类信息、常量池等。Java的垃圾收集机制...
##### 1.2 JVM体系结构 JVM主要由以下几个部分组成: - **类加载器子系统**:负责将字节码文件加载到内存中。 - **执行引擎**:解释或编译字节码并执行。 - **本地接口**:允许Java代码调用本地方法或访问本地库。 -...
**1.2 JVM的主要功能** - **加载Class文件**:解析并加载Java程序编译后的字节码文件(.class文件)。 - **调用本地接口**:通过JNI (Java Native Interface) 调用本地代码库中的函数。 - **解释命令**:将字节码指令...
**1.2 JVM实例的运行** 一旦JVM实例被创建,`main()`方法就被调用作为程序的起点。在此之后,所有的其他线程都是由这个主线程直接或间接创建的。在JVM中存在两种类型的线程:守护线程(Daemon Threads)和用户线程...
《Ant与Eclipse集成:JVM1.2版本1.0的jar.zip包解析》 在软件开发领域,Ant和Eclipse是两个重要的工具。Ant是Apache软件基金会下的一个Java项目,它是一个基于XML的构建工具,常用于自动化Java项目的构建、测试和...
#### 1.2 JVM的架构 - **类加载器子系统**:负责将.class文件加载到内存中,并对其进行验证、解析和初始化。 - **运行时数据区**:包括方法区、堆、栈、程序计数器等区域,用于存储运行时所需的数据。 - **执行引擎*...
1.2 JVM内存区域 JVM内存区域分为五部分:程序计数器、虚拟机栈、本地方法区、堆和方法区/永久代。 1.2.1 程序计数器(线程私有) 程序计数器是一块小的内存空间,主要用于记录当前线程执行的字节码指令的地址。 ...
##### 1.2 JVM内存管理参数 - **-Xss**:设置线程栈大小。 - **-XX:PermSize**:设置永久代初始大小。(注:在JDK 8之后,永久代被元空间取代) - **-Xms**:设置初始堆大小。 - **-Xmx**:设置最大堆大小。 #### ...
**1.2 JVM的类加载器层次结构** 当JVM启动时,会初始化三个主要的类加载器: - **Bootstrap ClassLoader**(启动类加载器):这是最基础的类加载器,用于加载JVM的核心类库,如java.lang.*等。它不继承自`java....
**1.2 JVM内存区域** JVM内存管理是Java开发人员必须了解的核心概念之一。它主要包括以下几个部分: - **程序计数器(Program Counter Register)**:每个线程拥有一个独立的程序计数器,用于记录当前线程所执行的...
1.2 JVM、JDK 和 JRE * JVM(Java Virtual Machine)是 Java 语言的虚拟机,负责解释和执行 Java 字节码。 * JDK(Java Development Kit)是 Java 语言的开发工具包,包括 JVM、编译器、调试器等。 * JRE(Java ...
#### 1.2 JVM 配置 Elasticsearch是基于Java运行的,因此需要JVM支持。确保你的系统中已经安装了JDK,并且版本至少为8u92。建议使用JDK的Server模式,并禁用serial garbage collector,启用更高效的垃圾收集器,...
**1.2 JVM运行数据区域的三大核心** - **Eden区**:新创建的对象一般会被放置于此区。 - **Survivor区**:分为From和To两个部分,通过多次垃圾回收,逐渐将对象迁移到该区域,以判断其是否值得长期保存。 - **Old区...