简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
文章目录前言一、虚拟机栈的概述虚拟机栈出现的背景内存中的栈与堆虚拟机栈基本内容虚拟机栈的特点面试题:开发中遇见的异常有哪些?二、虚拟机栈的存储单位栈中存储什么呢?栈运行原理栈桢的内部结构三、栈桢的局部变量表局部变量表介绍局部变量表存储单位关于Slot的重复利用静态变量与局部变量的对比补充说明四、栈桢的操作数栈操作数栈的代码追踪四、栈顶缓存技术五、栈桢的动态链接六、方法的调用静态链接:动态链接:早期
1、地址:visualvm新访问地址进入“Plugins”,找到对应自己JDK版本的更新地址2、进入jvisualvm的插件管理“工具” - “插件”在"设置"中修改url地址为刚才我们在github上找到的对应我们JDK版本的地址修改成功后,可用插件即可刷新出来3、安装VisualGC插件4、重启即可看到VisualGC一:整个区域分为三部分:spaces、graphs、histogram1,s
文章目录1、软件2、安装3、检查是否安装好vagrant4、初始化5、启动虚拟机1、软件链接:https://pan.baidu.com/s/1kG-wJOpv-awPWqoLAJocxw提取码:haz7复制这段内容后打开百度网盘手机App,操作更方便哦2、安装安装红色圈着的此处都是双击文件一直next就好,期间最好改一下保存文件的路径3、检查是否安装好vagrant4、初始化vagrant in
文章目录1、对象的创建1.1、类加载检查1.2、分配内存1.3、初始化1.4、设置对象头1.5、执行方法1、对象的创建对象创建的主要流程:1.1、类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对应到语言层面上讲是,new关键词、对象克
文章目录前言一、运行时数据区概述关于线程的内存关于Runtime类二、从虚拟机看线程JVM系统线程三、运行时数据区之程序计数器(PC寄存器)PC寄存器作用PC寄存器介绍举例体会PC寄存器常见面试题CPU 时间片并发和并行的区别参考资料前言本篇开始学习运行时数据区,上篇文章对类加载子系统做了讲解,后续重点展开观看字节码指令去了解现在我们知道类加载器里面有什么,做了什么事情就可以其实当我们类加载器把类
一、介绍JVM跨语言的平台随着Java7的正式发布,Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编写的程序ava虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的,它只关心“字节码”文件。也就是说Java虚拟机拥有语言无关性,并不会单纯地与Java语言“终身绑定”,只要其他编程语言的编译结果满足并包含Java虚拟机的内部指令集、符号表以
文章目录一、对象创建与访问指令的概述二、创建指令创建类实例的指令:创建数组的指令:三、字段访问指令四、数组操作指令把一个数组元素加载到操作数栈的指令:将一个操作数栈的值存储到数组元素中的指令:取数组长度的指令:arraylength五、类型查找指令一、对象创建与访问指令的概述Java是面向对象的程序设计语言,虚拟机平台从字节码层面就对面向对象做了深层次的支持。有一系列指令专门用于对象操作,可进一步
文章目录前言一、System.Gc的理解二、内存溢出与内存泄露**内存溢出(OOM)的介绍****内存溢出(OOM)原因分析**Java虚拟机的堆内存设置不够:代码中创建了大量大对象,并且长时间不能被垃圾收集器收集(存在被引用):这里面隐含着一层意思是`在抛出OutofMemoryError之前`,通常垃圾收集器会被触发尽其所能去清理出空间当然也不是在任何情况下垃圾收集器都会被触发的**内存泄漏(
文章目录**前言**一、Class文件的概述**字节码文件的跨平台性****Java 语言:跨平台性(write one run anywhere)****java 虚拟机:跨语言的平台****JAVA语言和JVM的规范****Java的前端编译器****JAVA源代码遵循JVM规范可正常运行在JVM中****前端编译器VS后端编译器****透过字节码指令看代码细节**二、虚拟机的基石:CLass
文章目录前言一、本地方法什么是本地方法?为什么要使用Native Method ?与Java环境外交互:与操作系统交互:Sun' S Java现状二、本地方法栈参考资料前言上篇文章介绍了运行时数据区的PC寄存器、虚拟机栈,这篇讲的本地方法栈一、本地方法在讲解运行时数据区里的本地方法栈时,先穿插一个内容讲解本地方法库(红色框框)什么是本地方法?============================