摘要: 栈结构 栈,这种数据结构,太重要了。如果学习过算法,就可以了解它的强大了。 栈,就像我们叠起来的盘子,只能对最上面的部分进行操作。对于栈,只有两种操作: 入栈,在上面再加一个盘子 出栈,拿掉最上面的盘子 别小看这两种操作,他可以完成很多复杂的事情,这就是数据结构和算法的魅力。 JVM 的运行是基于栈 阅读全文
posted @ 2020-06-24 16:19 土堆碎念 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 先来看这张图,对于数据区,存在着线程,进程的概念。程序计数器是每个线程私有的。如果没有多线程的概念,可以直接无视。 程序计数器 程序计数器,也有人叫它 程序寄存器。但是叫做 程序计数器更为精确。 因为我们知道,在计算机也有一种结构叫做 寄存器,它储存容量小,但是速度快,一般用于 CPU 中。 但是我 阅读全文
posted @ 2020-06-24 15:20 土堆碎念 阅读(1122) 评论(0) 推荐(0) 编辑
摘要: 按理说,在介绍完前端编译器之后,我们应该介绍如何让 JVM 去解释运行 这个编译后的 .class 文件。 但是感觉并不是很恰当。 如果把 .class 文件比做新购买的家具,那么如果需要把家具摆放到家里,是不是得先了解房子的结构和布局,然后才能将家具进行正确的摆放。 我们这里介绍的 运行时数据区 阅读全文
posted @ 2020-06-24 14:57 土堆碎念 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 前端编译的主要作用,是将 我们编写的 .java 文件 编译成 .class 文件,也就是我们常说的 字节码 文件。 字节码 文件,里面包含了我们编写的 .java 代码中的运行逻辑,参数 以及 这些参数在内存中的分配。 前端编译过程 解析与填充符号表 注解处理 分析与字节码生成 总而言之,就是对 阅读全文
posted @ 2020-06-24 14:05 土堆碎念 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 首先先来说说 方法区 的作用。 方法区 方法区,是用来存放有关 类、方法 信息的一块逻辑上的区域。也就说,人们想规划出一块区域,用来存储类 方法 相关信息。 除此之外,还用来存储常量、静态变量,以及一些代码缓存等数据。 想想,这些数据都有什么特点。 几乎不变;不怎么依赖于对象,独立。 方法区的故事 阅读全文
posted @ 2020-06-24 10:31 土堆碎念 阅读(534) 评论(0) 推荐(0) 编辑