当前标签: JVM
初步了解JVM第一篇
大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制、编译过程和如何对Java程序进行调优相信都会有一个很好的认知。 废话不多说,直接带大家来初步认识一下JVM。 * 什么是JVM? JVM(Java Virtual Machine)是一个抽象的计算机,和实际的计算机一样,它具有指令集并...
2019-12-15 22:56
阅读(81)
Java 调式、热部署、JVM 背后的支持者 Java Agent
我们平时写 Java Agent 的机会确实不多,也可以说几乎用不着。但其实我们一直在用它,而且接触的机会非常多。下面这些技术都使用了 Java Agent 技术,看一下你就知道为什么了。 -各个 Java IDE 的调试功能,例如 eclipse、IntelliJ ; -热部署功能,例如 JRebel、XRe...
2019-09-11 08:57
阅读(57)
jvm虚拟机栈的作用
jvm虚拟机栈的作用 jvm虚拟机栈栈帧的组成 jvm虚拟机栈,也叫java栈,它由一个个的栈帧组成,而栈帖由以下几个部分组成 * 局部变量表-存储方法参数,内部使用的变量 * 操作数栈-在变量进行存储时,需要进行入栈和出栈 * 动态连接-引用类型的指针 * 方法出口-方法的返回 * 一段原...
2019-08-29 11:59
阅读(67)
jvm原理和代码运行的过程
一次编译,到处运行 java一直宣传的口号是:一次编译,到处运行。那么它如何实现的呢?我们看下图: graph TD java原程序--javac编译-->java字节码 java字节码-->jvm虚拟机 jvm虚拟机--java解释-->windows机器码 jvm虚拟机--java解释-->linux机器码 ...
2019-08-20 11:46
阅读(204)
深入理解JVM虚拟机开篇:JVM介绍与知识脉络梳理
微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站。作者黄小斜,专注 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!(关注公众号后回复”Java“即可领取...
2019-08-17 18:10
阅读(78)
认识JVM的内存分配
当我们在JVM中运行一段程序代码,JVM初始运行的时候都会分配好Method Area(方法区)和Heap(堆) ,而JVM每遇到一个线程,就为其分配一个Program Counter Register(程序计数器), VM Stack(虚拟机栈)和Native Method Stack (本地方法栈),当线程终止...
2019-08-15 16:21
阅读(72)
JVM垃圾收集策略与算法
垃圾收集策略与算法 程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭;栈帧随着方法的开始而入栈,随着方法的结束而出栈。这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。 而对于 Java 堆和方法区,我们只有在程序运行期间...
2019-08-10 15:19
阅读(83)
万万没想到,JVM内存结构的面试题可以问的这么难?
在我的博客中,之前有很多文章介绍过JVM内存结构,相信很多看多我文章的朋友对这部分知识都有一定的了解了。 那么,请大家尝试着回答一下以下问题: 1、JVM管理的内存结构是怎样的? 2、不同的虚拟机在实现运行时内存的时候有什么区别? 3、运行时数据区中哪些区域是线程共享的?哪些是独享的? 4、除了JVM运行时...
2019-08-08 10:39
阅读(265)