![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 83
要变强不要秃
这个作者很懒,什么都没留下…
展开
-
jvm内存区域
运行时数据区域Java虚拟机所管理的内存将会包括以下几个运行时数据区域1. 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令...原创 2018-08-19 00:44:59 · 90 阅读 · 0 评论 -
jvm关于对象
虚拟机对象探秘对象的创建 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 对象的内存分配:Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指...原创 2018-08-19 16:05:41 · 112 阅读 · 0 评论 -
jvm高效并发与锁优化
主内存与工作内存主内存:Java内存模型规定了所有的变量都存储在主内存。 工作内存:线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的 所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成。 lock(锁定):作用于主内存的变量,它把一个变量标识...原创 2018-08-22 13:53:22 · 366 阅读 · 0 评论 -
jvm关于垃圾
如何进行垃圾回收挑选出垃圾要进行垃圾回收,当然要知道什么是垃圾,比如说我…手上这支笔,用完了就成为了垃圾,jvm同样也需要将不会再使用的对象进行回收。引用计数算法。 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。 缺陷:当对象间存在相互引用时,...原创 2018-08-20 15:07:35 · 96 阅读 · 0 评论 -
jvm类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始 化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initializati...原创 2018-08-21 13:34:28 · 86 阅读 · 0 评论 -
jvm编译优化技术
Java程序员有一个共识,以编译方式执行本地代码比解释方式更快,之所以有这样的共识,除去虚拟机解释执行字节码时额外消耗时间的原因外外,还有一个很重要的原因就是虚拟机设计团队几乎把对代码的所有优化措施都集中在了即时编译器之中因此一般来说,即时编译器产生的本地代码会比Javac产生的字节码更加优秀。 优化技术概览 我们将继续查看如下的几项最有代表性的优化技术是如何运作的,它们分别是:语言...原创 2018-08-21 14:36:46 · 1429 阅读 · 2 评论