jvm介绍(很好的一篇文章).docxVIP

  • 1
  • 0
  • 约7.12千字
  • 约 12页
  • 2021-04-12 发布于天津
  • 举报
jvm 介绍(很好的一篇文章) 1 JVM 简介 JVM 是我们 Javaer 的最基本功底了, 刚开始学 Java 的时候, 般都是从 #8220;Hello World#8221; 开始的,然后会写 个复杂点 class ,然后再找一些开源框架,比如 Spring , Hibernate 等等,再然后就开发企业级的应用,比如网站、 企业内部应用、实时交易系统等等,直到某一天突然发现做 的系统咋就这么慢呢,而且时不时还来个内存溢出什么的, 今天是交易系统报了 StackOverflowError ,明天是网站系统 报了个 OutOfMemoryError ,这种错误又很难重现,只有分 析 Javacore 和 dump 文件,运气好点还能分析出个结果, 运行遭的点,就直接去庙里烧香吧!每天接客户的电话都是 战战兢兢的,生怕再出什么幺蛾子了。我想Java 战战兢兢的,生怕再出什么幺蛾子了。我想 Java 做的久 点的都有这样的经历,那这些问题的最终根结是在哪呢? JVM 。 虚拟机,也就是在JVM 全称是 Java Virtual Machine ,Java 虚拟机,也就是在 计算机上再虚拟一个计算机,这和我们使用VMWare 不样,那个虚拟的东西你是可以看到的,这个 计算机上再虚拟一个计算机,这和我们使用 VMWare 不 样,那个虚拟的东西你是可以看到的,这个 JVM 你是看不 到的,它存在内存中。我们知道计算机的基本构成是:运算 器、控制器、存储器、输入和输出设备,那这个 JVM 也是 有这成套的元素, 运算器是当然是交给硬件 CPU 还处理了, 只是为了适应 #8220; 一次编译,随处运行 #8221; 的情况, 需要做一个翻译动作,于是就用了 JVM 自己的命令集,这 与汇编的命令集有点类似,每一种汇编命令集针对一个系列 的 CPU ,比如 8086 系列的汇编也是可以用在 8088 上的, 但是就不能跑在 8051 上,而 JVM 的命令集则是可以到处运 行的,因为 JVM 做了翻译,根据不同的 CPU ,翻译成不同 的机器语言。 JVM 中我们最需要深入理解的就是它的存储部分, JVM 中我们最需要深入理解的就是它的存储部分, 存储?硬 盘? NO,NO, JVM 是一个内存中的虚拟机,那它的存储 就是内存了,我们写的所有类、常量、变量、方法都在内存 中,这决定着我们程序运行的是否健壮、是否高效,接下来 的部分就是重点介绍之。 2 JVM 的组成部分 我们先把 JVM 这个虚拟机画出来,如下图所示: 从这个图中可以看到, JVM 是运行在操作系统之上的, 它与 硬件没有直接的交互。 我们再来看下 JVM 有哪些组成部分, 家看这个图,整个 JVM 分为四部分: 如下图所示:该图参考了网上广为流传的 如下图所示: 该图参考了网上广为流传的 JVM 构成图,大 q Class Loader 类加载器 类加载器的作用是加载类文件到内存,比如编写一个 HelloWord.java 程序,然后通过 javac 编译成 class 文件, 那怎么才能加载到内存中被执行呢?Class Loader 那怎么才能加载到内存中被执行呢? Class Loader 承担的 就是这个责任,那不可能随便建立一个 .class 文件就能被加 载的, Class Loader 加载的 class 文件是有格式要求,在 JVM Specification中式这样定义 JVM Specification 中式这样定义 Class 文件的结构: ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attribute_info attributes[attributes_count]; } } 需要详细了解的话,可以仔细阅读《 JVM Specification 》的 第四章 #8220;The class File Format#8221; ,这里不再详 细说明。 友情提示: Class

文档评论(0)

1亿VIP精品文档

相关文档