JVM
文章平均质量分 79
MrDJun
热爱学习,传递知识。
展开
-
Java虚拟机 - 本地方法栈
牢记 “栈管运行,堆管存储”Java 虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。允许被实现固定或者可动态扩展的内存大小(在内存溢出方面是相同的)。如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个 StackOverFlowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个 outOfMemoryError异常。原创 2021-12-28 23:25:25 · 454 阅读 · 0 评论 -
Java虚拟机 - 本地方法接口
文章目录一、什么是本地方法?二、为什么要使用 Native Method?一、什么是本地方法?简单地讲,一个Native Method就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所持有,有很多其它的编程语言都有这一机制,比如在C++中,你可以用extern"C"告知C++编译器去调用一个C的函数。“A native method is a Java method whose impleme原创 2021-12-28 23:24:42 · 462 阅读 · 0 评论 -
Java虚拟机 - 虚拟机栈
Java虚拟机 - 虚拟机栈文章目录Java虚拟机 - 虚拟机栈一、基本内容1、是什么?2、生命周期3、作用4、优点5、栈中可能的异常6、设置程序运行时栈内存大小7、栈运行原理二、栈帧的内部结构1、局部变量表(Local Variables)关于Slot的理解Tips:Slot的重复利用Tips:静态变量与局部变量的对比2、操作数栈(Operand Stack)栈顶缓存技术3、动态链接(Dynamic Linking)为什么需要常量池?方法的调用(动态分派和静态分派)方法的绑定机制虚方法和非虚方法动态类型原创 2021-12-28 23:24:07 · 437 阅读 · 0 评论 -
Java虚拟机 - 运行时数据区
Java虚拟机定义了一系列逻辑数据区域,有些是随着虚拟机的启动而创建,虚拟机的关闭而销毁。还有一部分是随着线程生命周期创建销毁的。我们有必要深入了解这块的内容,因为它将决定服务器性能,首先我们需要对整个运行时区域由整体的认识并且了解了每个区域的生命周期以及作用之后才能通过相应的调参来提升系统性能。除此之外还有助于快速定位虚拟机的相关Error.程序计数器(PC寄存器)JVM中的程序计数寄存器(Program Counter Register) 中,Register 的命名源于CPU的寄存器,寄存器.原创 2021-12-28 23:20:18 · 678 阅读 · 0 评论 -
Java虚拟机 - 双亲委派机制
文章目录一、原理二、作用三、沙箱安全机制四、补充内容Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任务委派模式。Tips:如果在工程目录的src下新建一个名为 java.lang 的包,在其中新建一个类名String的类,这个类能够正常运行吗?程序代码如下:package java.lang;public c原创 2021-12-28 23:19:11 · 372 阅读 · 0 评论 -
Java虚拟机 - 类加载子系统
Java虚拟机 - 类加载子系统文章目录Java虚拟机 - 类加载子系统一、类加载器二、类加载器的分类1、Bootstrap ClassLoader2、Extension ClassLoader3、Application ClassLoader4、用户自定义类加载器三、关于ClassLoader1、ClassLoader类的定义2、继承关系3、获取ClassLoader的途径四、类的生命周期1、Loading(加载阶段)2、Linking(链接阶段)(1)Verify(验证)①、文件格式验证②、元数据验证原创 2021-12-28 23:18:17 · 667 阅读 · 1 评论 -
Java虚拟机 - JVM的发展历程
Java虚拟机 - JVM的发展历程文章目录Java虚拟机 - JVM的发展历程执行引擎结构Sun Classic VMExact VMHotspot VMBEA 的 JRockitIBM 的J9执行引擎结构Sun Classic VM1996年随Java1.0版本发布,JDK1.4时被完全淘汰。它只提供解释器。如果使用JIT编译器,就需要进行外挂。但一旦使用了JIT编译器,JIT会接管虚拟机的执行系统。解释器就不再工作,解释器和编译器不能配合工作。现在hotspot内置了此虚拟机Ex原创 2021-12-28 23:15:20 · 508 阅读 · 0 评论 -
Java虚拟机 - 初探JVM
总览Java程序的运行流程在计算机系统体系中并不认识高级语言,需要转成汇编,再由转机器指令。*.java文件通过 javac 编译成 *.class文件,通过 ClassLoader 加载到JVM经过链接阶段(暂时不懂可略过)后,在运行时通过解释器解释执行。Java发展的重大事件1990年,在sun公司中,由Patrick naughton、mikesheridan以及james Gosling领导的小组Green Team,开发出新的程序语言,命名为OAK,后期更名为Java1995年,s原创 2021-08-23 22:59:52 · 119 阅读 · 0 评论