摘要:
一、虚拟机栈概述 1.1、虚拟机栈的出现背景 文档网址 https://docs.oracle.com/javase/specs/jvms/se8/html/index.html 虚拟机栈出现的背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存
阅读全文
posted @ 2020-12-15 15:38
H__D
阅读(176)
推荐(0)
摘要:
ThreadLocal是什么? ThreadLocal提供线程本地变量,每个线程拥有本地变量的副本,各个线程之间的变量互不干扰。ThreadLocal实现在多线程环境下去保证变量的安全。以下来源于ThreadLocal类的注释。 This class provides thread-local va
阅读全文
posted @ 2020-12-13 13:44
H__D
阅读(269)
推荐(0)
摘要:
一、PC 寄存器概述 PC 寄存器介绍 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。 这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指
阅读全文
posted @ 2020-12-11 17:42
H__D
阅读(197)
推荐(0)
摘要:
一、前言 本节主要讲的是运行时数据区,也就是下图中间部分,它是在类加载完成后的阶段 通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区 二、运行时数据区结构 2.1、运行时数据区
阅读全文
posted @ 2020-12-11 17:16
H__D
阅读(125)
推荐(0)
摘要:
一、内存结构概述 如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢? 类加载器 执行引擎 完整框图: 二、类加载子系统 2.1、类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件
阅读全文
posted @ 2020-12-10 18:39
H__D
阅读(173)
推荐(0)
摘要:
Java是一门可以跨平台的语言,但是Java本身是不可以实现跨平台的,需要JVM实现跨平台。javac编译好后的class文件,在Windows、Linux、Mac等系统上,只要该系统安装对应的Java虚拟机,class文件都可以运行。达到”一次编译,到处运行”的效果。 一、虚拟机介绍 1.1、虚拟
阅读全文
posted @ 2020-12-09 15:18
H__D
阅读(315)
推荐(0)
摘要:
线程生命周期 JDK中用Thread.State类定义了线程的几种状态 要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类 及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态: 新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程
阅读全文
posted @ 2020-12-01 11:01
H__D
阅读(190)
推荐(0)
摘要:
基本概念:程序、进程、线程 程序、进程、线程 程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process) 是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期 如:
阅读全文
posted @ 2020-11-24 22:21
H__D
阅读(174)
推荐(0)
摘要:
学习本章之前,先要了解红黑树 【算法】红黑树原理和算法介绍,以及B树、B+树 【算法】B树、B+树详解 最近重新学习MySQL,发现自己一直知道MySQL索引用到了B+树,引发思考,为什么一定要是B+树,其他树或者其他数据结构不可以吗? 为什么不是用红黑树 1、将大量数据全部放入内存组织成RBT结构
阅读全文
posted @ 2020-11-23 00:10
H__D
阅读(431)
推荐(1)
摘要:
B树 前言 首先,为什么要总结B树、B+树的知识呢?最近在学习数据库索引调优相关知识,数据库系统普遍采用B-/+Tree作为索引结构(例如mysql的InnoDB引擎使用的B+树),理解不透彻B树,则无法理解数据库的索引机制;接下来将用最简洁直白的内容来了解B树、B+树的数据结构 另外,B-树,即为
阅读全文
posted @ 2020-11-22 23:49
H__D
阅读(1268)
推荐(0)