java jvm初步了解;打卡狂神
需积分: 0 180 浏览量
更新于2023-04-09
收藏 2.4MB PDF 举报
Java JVM 初步了解
在 Java 中,JVM(Java Virtual Machine)扮演着至关重要的角色,它是 Java 语言的 runtime 环境,负责将 Java 字节码翻译成机器代码并执行。下面是对 JVM 的初步了解。
1. JVM 的理解
JVM 是 Java_virtual_machine 的缩写,它是一个虚拟机,可以在不同的操作系统上运行 Java 语言的字节码。JVM 的主要作用是将 Java 字节码翻译成机器代码,并执行这些代码。同时,JVM 还提供了许多其他功能,如垃圾回收、内存管理等。
2. Java8 虚拟机和之前的变化更新
Java8 虚拟机是 Java 语言的最新版本,它相比之前的版本有了很大的变化。Java8 虚拟机采用了 Metaspace,取代了之前的 PermGen 空间,解决了之前的内存溢出问题。同时,Java8 虚拟机还引入了新的垃圾回收算法,like G1 垃圾回收器,提高了垃圾回收的效率。
3. OOM 和 StackOverFlowError
OOM(Out of Memory)是 Java 中的一种常见错误,发生在 JVM 无法分配对象时。StackOverFlowError 是一种特殊的 OOM 错误,发生在方法调用栈溢出时。要分析 OOM 和 StackOverFlowError 错误,需要使用 JVM 的一些工具,如 jmap 和 jstack。
4. JVM 的常见调优参数
JVM 的调优参数有很多,如 -Xmx、-Xms、-XX:+UseG1GC 等。这些参数可以用来调整 JVM 的堆大小、垃圾回收算法等。
5. 内存快照和 Dump 文件
JVM 的内存快照可以使用 jmap 工具生成,而 Dump 文件可以使用 jhat 工具分析。这些文件可以帮助我们了解 JVM 的内存使用情况,找出内存泄露的原因。
6. JVM 中的类加载器
JVM 中的类加载器是一种机制,用于加载和链接 Java 类。Java 中有三种类加载器:引导类加载器、扩展类加载器和应用程序类加载器。类加载器的机制可以防止类的重复加载和版本冲突。
7. JVM 的体系结构
JVM 的体系结构主要包括类加载器、执行引擎、运行时数据区和本地方法栈等。类加载器负责加载和链接 Java 类,执行引擎负责执行 Java 字节码,运行时数据区负责存储 Java 对象的数据,本地方法栈负责调用本地方法。
8. JVM 的垃圾回收
JVM 的垃圾回收机制可以自动回收无用的对象,释放内存资源。JVM 的垃圾回收算法有很多,如 Mark-Sweep 算法和 Concurrent Mark-Sweep 算法等。
9. JVM 的沙箱机制
JVM 的沙箱机制是一种安全机制,用于限制 Java 代码的访问权限。沙箱机制可以防止恶意代码的攻击,保护 Java 应用程序的安全。
10. native 方法和 JNI
JVM 的 native 方法可以调用 C 语言的库,扩展 Java 语言的功能。JNI(Java Native Interface)是一种机制,用于在 Java 代码中调用 C 语言的库。