JVM
lemonmini
这个作者很懒,什么都没留下…
展开
-
Java深入剖析之JVM
Java运行时数据区:Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域,如图:1、程序计数器:指向当前线程正在执行的字节码指令。线程私有的。2、虚拟机栈:虚拟机栈是Java执行方法...原创 2019-12-16 21:33:48 · 184 阅读 · 0 评论 -
Java高并发- 锁的优化及 JVM 对锁优化所做的努力
在高并发环境下,激烈的锁竞争会导致程序的性能下降,所以我们有必要讨论一下有关 锁 的性能问题及注意事项。如:避免死锁,减小锁粒度,锁分离等。一、锁优化1.1 减小锁持有时间在锁竞争过程中,单个线程对锁的持有时间与系统性能有着直接的关系,如果线程持有锁的时间很长,那么相对地,锁的竞争程序也就越激烈。示例代码:public void syncMethod(){fun1();mutextM...原创 2019-12-03 19:34:45 · 387 阅读 · 0 评论 -
JVM GC 算法和垃圾收集器
一、对象存活判断1、引用计数法给每个对象加一个引用计数器,记录指向这个对象的引用数量。当计数器值为 0 时回收该对象。缺点:无法解决循环引用问题。2、可达性分析直接或间接被 GC Roots 引用着的对象是存活对象。GC Roots 是指活跃的引用,当然,它指向的就是活跃的对象了。JVM 中 GC Roots 指向的对象①虚拟机栈中的对象;②方法区中类静态属性的对象;③方法区中常...转载 2019-10-19 19:00:31 · 211 阅读 · 0 评论 -
JVM面试专题(2)
11.JVM内存分哪几个区,每个区的作用是什么?Java虚拟机主要分为以下区:方法区:有时候也称为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器编译后的代码等数据该区域是被线程共享的方法区里有一个运行时常量池,用于存放静态编译产生的字面量和符号引...原创 2019-09-17 15:10:12 · 159 阅读 · 0 评论 -
JVM中GC详解
在Java面试过程中,JVM是必问项目。主要问题一般都是集中到JVM GC的类型和策略上。今天主要谈到的是年轻代GC、老年代GC以及Minor GC、Major GC、Full GC之间的联系与区别。JVM堆内存分为两部分:年轻代(Young Generation)和老年代(Old Generation)。年轻代:产生新对象。年轻代被分为3个部分:一个Eden区和两个Survivor区...原创 2019-09-24 13:44:10 · 330 阅读 · 0 评论 -
Java虚拟机学习
最近看到不少吐槽虚拟机的小伙伴。有2年的工作经验,每次面试都会被问一点JVM。原来JVM这么拼啊!每次面试前都会背一点,但是每次面试官多问俩,就凉了…虽说临阵磨枪、不快也光,但像上边两种情况的话,只是临时准备准备,就很容易被问住,所以还是要踏实学习一下。那么,JVM都需要学习哪些知识呢?整理了一个JVM的学习大纲,希望对大家的学习有所帮助。下面对JVM的知识进行了简单整理。Java...原创 2019-09-25 19:29:15 · 108 阅读 · 0 评论