每天进步一点点! 这里说的方法调用阶段的任务并不是执行过程,而是确定方法运行时的入口地址。 前面我们已经学习过,在Class文件的常量池中,类型为CONSTANT_Metho...
每天进步一点点! 这里说的方法调用阶段的任务并不是执行过程,而是确定方法运行时的入口地址。 前面我们已经学习过,在Class文件的常量池中,类型为CONSTANT_Metho...
前言: 北京-三年经验-Java,在金三银四这两个月期间(在五月初还去面试了几家,主要是三四月份期面试剧居多),我跳槽面试,前前后后我面试十五家公司,最终,成功拿到了offe...
每天进步一点点! 今天主要了解一下栈帧中的内容,大部分为内容都比较容易理解,且做以下记录。 首先介绍以下栈帧的概念: 栈帧(Stack Frame)是用于支持虚拟机进行方法调...
每天进步一点点! 前面已经介绍了类加载的加载、验证、准备、解析等过程,今天来学习最后一个过程,初始化! 对于有过java开发经验的朋友们来说,初始化这个词自然不陌生,初始化阶...
每天进步一点点! 今天我们一起看一下类加载的准备阶段和解析阶段。 先看一下准备阶段:主要任务是在方法区中为类变量(仅static修饰变量,不包含实例变量)分配内存并设置类变量...
每天进步一点点! 上一篇已经学习了加载阶段,这一篇我们了解一下验证的过程。 我们已经知道了,虚拟机加载的是Class字节码文件,我们也通过工具查看了文件中存储的是二进制流。 ...
每天进步一点点! 上一篇穿插了一段动态绑定和静态绑定的知识,这一篇我们回归到类加载上来,学习一下类加载的“加载”。 是不是读起来有点拗口,这是什么意思? 别迷糊,还记得上一篇...
每天进步一点点! 在前面的几篇中,我们已经详细学习了Class字节码文件的结构,包含哪些内容已经内容的含义,下面几篇我们将研习一下类的加载。 虚拟机的类加载机制: 虚拟机把描...
每天进步一点点! 指令这块的相关信息我们在前几篇的文章中已经有了基本了解,这一篇不过多解释了,将剩下的指令列出来,作为记录(节选自《深入理解JAVA虚拟机》)。 1、对象创...
每天进步一点点! 上一篇写的数据类型的范围,相信大家还记得吧,每一种类型对应不同的数据范围和精度。 有的时候,我们需要对数据类型进行转换,既涉及到从范围较小的数据类型向范围较...
本篇继续字节码指令的学习,开始之前,先巩固一下基础知识,Java中基本数据类型的范围。 1. 整型: 1.1 byte:数据类型是8位、有符号的整数,取值范围-128~127...
一个忙碌的周末又过去了,时间不能阻止我们前进的脚步,每天进步一点点! 上一篇在方法体中,方法体被编译成了指令,我们已经初步了解了每条字节码指令占用一个字节, 大概有200余种...
由于最近几天在看区块链,今天时间实在有限,更新一篇区块链内容,后续继续更新虚拟机相关的知识。 首先明确一点,什么是区块链? 1. 直白的说,就是在互联网上有一块特殊的区域,每...
我们的口号是:每天进步一点点! 上一篇的字段写到属性的时候,由于属性涉及到的内容比较多,我们暂时搁置了,这一篇是Class文件结构的最后一篇,我们就详细说说属性表结合。 九、...
新的一天,新的开始。我们的口号是:每天进步一点点! 在这几天的学习当中,不知道大家有没有一个疑惑,就是对“描述符”这个词不太理解,所以笔者前几篇写的时候尽量没用这个词。 经过...
各位朋友,上一篇的常量池都掌握了吧,我们的口号是:每天进步一点点! 开始之前,我们先巩固并扩充一下昨天的知识,用Excel表示一下就是这样的(请原谅笔者low到爆的画图水平,...
前一篇文章已经对Class类文件匆匆一瞥,上一篇没看的,建议先看一下上一篇,这一篇就看一下具体的细节。 我们先随便创建一个类,代码如下。 运行main方法,这个时候会生成一个...
对于前面的学习,笔者认为属于第一阶段,一直都在说虚拟机内存分配和垃圾收集的问题,由于这些都是开发的过程中看不见又不常用得,不那么容易理解。 从这一篇开始,我们迎来了第二阶段,...