JVM是如何实现多态的

Java中的多态多态是面向对象的三大核心概念之一。多态简单来讲就是父类引用指向子类对象。 在Java中要实现多态需要满足三个必要条件:继承、重写、父类引用指向子类对象。 Parent p=new Child(); 多态的引入带来了这写好处: 消除类型之间的耦合关系 可替换性 可扩充性 接口性 灵活性 简化性

JVM之分代收集算法

对象分类JVM将对象分成不同的分代,然后根据每个分代的特点采取不同的垃圾回收算法。 新生代:朝生夕灭的对象,比如方法的局部变量。 老年代:存活的比较久,但是还是要死的对象。比如缓存对象,单例对象等。 永久代:对象生成后几乎不灭的对象,例如加载过的类对象。 永久代是在方法区/元空间。新生代和老年代是在堆区。

JVM之G1和CMS收集器

CMS垃圾回收器什么是CMS垃圾回收器,CMS回收器的特点CMS即Concurrent Mark Sweep,是一款并发的、使用标记-清除算法的针对老年代的垃圾回收器。如果老年代使用CMS垃圾回收器,需要添加虚拟机参数-XX:+UseConcMarkSweepGCCMS垃圾回收器GC过程暂停短,适合对时延要求较高的服务,用户线程不允许长时间的停顿的场景。但是容易造成严重的内存碎片化,且对CPU资源非常的敏感,无法处理浮动垃圾,可能出现Concurrent Mode Failure失败而导致Full GC产生。

JVM之垃圾回收

需要回收的区域JVM的运行时内存可以分为5个区域:程序计数器,虚拟机栈,本地方法栈,方法区,堆区。其中程序计数器,虚拟机栈,本地方法栈都是与线程同生共死的,因此不要进行垃圾回收。垃圾回收主要关注的堆区和方法区。

JVM之概述

什么是java虚拟机?虚拟机是一种抽象化的计算机,通过在实际上的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令体系。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需要生成在java虚拟机上运行的目标代码,就可以在多种平台上不加修改地运行。做到了一次编译到处运行。在JVM启动之后,它实际上就是一个操作系统中的进程。 JVM的体系结构