随笔分类 - Java 虚拟机
摘要:1. 概述 “虚拟机”是一个相对于“物理机”的概念,物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。 在不同的虚拟机实现中,执行引擎在执行字节码
阅读全文
摘要:Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程称为虚拟机的类加载机制。 Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Ja
阅读全文
摘要:代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 Java 虚拟机使用字节码实现了跨平台的愿景,不仅针对Java语言,实现了write once,run anywhere的愿景;随着发展,越来越多其他语言可以在Java虚拟机之上运行,如Kotlin、Cloj
阅读全文
摘要:1. 为什么要了解垃圾收集和内存分配?主要针对虚拟机的哪些区域? 垃圾收集(Garbage Collection)经过半个世纪的发展,内存动态分配与内存回收技术已经相当成熟,似乎进入了“自动化”时代。 但是, 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需
阅读全文
摘要:对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不需要为一个new出来的对象写配对的delete/free代码,不容易出现内存泄漏或者内存溢出的问题。但是,由于Java程序员将控制内存的权利交给了Java虚拟机,一旦出现内存泄漏或内存溢出的问题,如果不了解Java虚拟机是怎样使用内存的,那
阅读全文

浙公网安备 33010602011771号