JVM虚拟机
文章平均质量分 60
wxy941011
这个作者很懒,什么都没留下…
展开
-
Serial收集器和ParNew收集器
Serial收集器 Serial(串行)垃圾收集器是最基本、发展历史最悠久的收集器; JDK1.3.1前是HotSpot新生代收集的唯一选择;1、特点 针对新生代; 采用复制算法; 单线程收集; 进行垃圾收集时,必须暂停所有工作线程,直到完成; 即会"Stop The World"; S...原创 2018-06-11 16:17:00 · 8777 阅读 · 3 评论 -
G1收集器
G1(Garbage-First)是JDK7-u4才推出商用的收集器;1、特点(A)、并行与并发 能充分利用多CPU、多核环境下的硬件优势; 可以并行来缩短"Stop The World"停顿时间; 也可以并发让垃圾收集与用户程序同时进行;(B)、分代收集,收集范围包括新生代和老年代 能独立管理整个GC堆(新生代和老年代),而不需要与其他收集器搭...原创 2018-06-07 23:49:13 · 1312 阅读 · 0 评论 -
CMS收集器
CMS收集器 并发标记清理(Concurrent Mark Sweep,CMS)收集器也称为并发低停顿收集器(Concurrent Low Pause Collector)或低延迟(low-latency)垃圾收集器; 在前面ParNew收集器曾简单介绍过其特点;1、特点 针对老年代; 基于"标记-清除"算法(不进行压缩操作,产生内存碎片); ...原创 2018-06-07 23:46:54 · 3971 阅读 · 3 评论 -
java能不能自己写一个类叫java.lang.System
能不能自己写个类叫java.lang.System?网上提供的答案有说可以,通常不可以,但可以采取另类方法达到这个需求也有博客说不可以的,刚开始学习的时候还比较疑惑,后来完整地学习完了深入理解Java虚拟机后了解了其中的本质。我的观点是:不可以!! 类加载器可分为两类:一是启动类加载器(Bootstrap ClassLoader),是C++实现的,是JVM的一部分;另一种是其它的类加...原创 2018-06-07 00:07:09 · 397 阅读 · 0 评论 -
垃圾回收算法
垃圾回收算法:1.复制算法算法思路 (A)、把内存划分为大小相等的两块,每次只使用其中一块; (B)、当一块内存用完了,就将还存活的对象复制到另一块上(而后使用这一块); (C)、再把已使用过的那块内存空间一次清理掉,而后重复步骤2; 执行过程如下图:优点 这使得每次都是只对整个半区进行内存回收; 内存分配时也不用考虑内...原创 2018-06-06 23:52:18 · 199 阅读 · 0 评论 -
JVM最大的作用
学习了这么久的Java虚拟机,今天别人问起来最大的作用是什么,我居然有点懵圈,所以来总结一下我觉得JVM除了垃圾回收,分区管理、类加载外最大的作用。平台无关性解释运行字节码程序 消除平台相关性jvm将java字节码解释为具体平台的具体指令。一般的高级语言如要在不同的平台上运行,至少需要编译成不同的目标代码。而引入JVM后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚...原创 2018-06-21 00:26:11 · 1731 阅读 · 0 评论 -
java中内存泄露
内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。内存泄露有时不严重且不易察觉,这样开发者就不知道存在内存泄露,但有时也会很严重,会提示你Out of memory。Java内存泄漏的根本原因是什么呢?长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄漏,尽管短生命周期对象已经不再需要,但是因为长生命周期持有它的引用而导致...原创 2018-06-04 23:51:08 · 109 阅读 · 0 评论 -
Java的四种引用方式
java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象。java对象的引用包括 强引用,软引用,弱引用,虚引用Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。下面来阐述一下这四种类型引用的概念:1.强引用 是指创建一个对象并把这个对象赋给一个引用变量。比如:Ob...原创 2018-06-04 23:43:43 · 172 阅读 · 0 评论 -
Serial Old收集器和Parallel Old收集器
Serial Old收集器 Serial Old是 Serial收集器的老年代版本;1、特点 针对老年代; 采用"标记-整理"算法(还有压缩,Mark-Sweep-Compact); 单线程收集; Serial/Serial Old收集器运行示意图如下:2、应用场景 主要用于Client模式; 而在Server模式有两大用途: ...原创 2018-06-11 16:23:54 · 3980 阅读 · 0 评论 -
Parallel Scavenge收集器
Parallel Scavenge垃圾收集器因为与吞吐量关系密切,也称为吞吐量收集器(Throughput Collector)。1、特点(A)、有一些特点与ParNew收集器相似 新生代收集器; 采用复制算法; 多线程收集;(B)、主要特点是:它的关注点与其他收集器不同 CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间; 而Par...原创 2018-06-11 16:22:23 · 11527 阅读 · 5 评论 -
怎么打破双亲委派机制
今天在看面经的时候看到一个问题,怎么打破双亲委派机制,觉得很有意思,一般来说面试官关心的都是双亲委派机制的三个特性或者说这个机制的作用,第一次看到这样问的,于是来总结一下打破这个机制的方法:1:自己写一个类加载器2:重写loadclass方法3:重写findclass方法这里最主要的是重写loadclass方法,因为双亲委派机制的实现都是通过这个方法实现的,先找附加在其进行加载,如...原创 2018-07-19 23:54:38 · 9325 阅读 · 3 评论