- 博客(9)
- 资源 (4)
- 问答 (5)
- 收藏
- 关注
原创 JVM-栈帧之局部变量表
1.栈帧的内部结构每个栈帧中存储着:局部变量表(Local Variables)操作数栈(Operand Stack)(或表达式栈)动态链接(Dynamic Linking)(或指向运行时常量池的方法引用)方法返回地址(Return Address)(或方法正常退出或者异常退出的定义)一些附加信息并行每个线程下的栈都是私有的,因此每个线程都有自己各自的栈,并且每个栈里面都有很多栈帧,栈帧的大小主要由局部变量表和操作数栈决定的2.局部变量表2.1 什么是局部变量表局部变量表也被称之
2021-06-08 21:01:48 596
原创 JVM-虚拟机栈简介
1.简介1.1 虚拟机栈的出现背景由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的CPU架构进行优化,但是跨平台性大大降低】。它的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。1.2 什么是Java虚拟机栈Java虚拟机栈(Java Virtual Machine Stack),早期也叫Java栈。每个线程在创建时都会创建一个虚拟机
2021-06-08 17:17:42 148
原创 JVM-运行时数据区之本地方法栈
本地方法栈1.结构图2.本地方法接口介绍2.1 使用Native Method的目的2.1.1 与Java环境外进行交互2.2.2 与操作系统进行交互3.本地方法栈3.1 本地方法栈介绍3.2 本地方法栈特点1.结构图在说本地方法栈之前先要了解一下本地方法接口2.本地方法接口介绍简单地讲,一个Native Method(本地方法)是一个Java调用非Java代码的接囗,该方法的实现并非是Java语言实现的,而是调用的别的语言所实现的,例如C语言。这个特征并非Java所特有,很多其它的编程语言都有这
2021-06-02 16:19:11 113
原创 JVM-运行时数据区之PC寄存器
1.运行时数据区图运行时数据区是在类加载完成后所经历的阶段,当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,执行引擎就会对类进行使用,这时就用到了运行时数据区。举例来说,类的加载过程就好像是买菜的过程,经过一系列奔波,从购买到检验,最后再送到厨房(也就是运行时数据区)。而执行引擎就是一名厨师,他会用准备好的蔬菜去进行菜品的制作。2.程序计数器(PC寄存器)官方文档网址:https://docs.oracle.com/
2021-06-01 20:59:05 123
原创 JVM-类加载子系统
文章目录类加载子系统1.JVM内存结构图2.什么是类加载子系统2.1 加载阶段2.1.1 类加载器ClassLoader2.2.2 类加载阶段过程2.2 链接阶段2.2.1 验证(Verify)2.2.2 准备(Prepare)2.2.3 解析(Resolve)2.3 初始化阶段3.类加载器的分类3.1 虚拟机自带的加载器3.1.1 启动类加载器3.1.2 扩展类加载器3.1.3 系统类加载器3.2 用户自定义类加载器3.2.1 什么时候需要自定义类加载器?3.2.2 如何自定义类加载器?4.双亲委派机制4
2021-05-30 21:56:38 87
原创 初识JVM
1.什么是JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。2.为什么要学习JVM1.面试的需要(BATJ、TMD,PKQ
2021-05-30 19:22:59 63
原创 Hystryx简介
分布式结构所面临的问题在分布式系统结构中往往会有许多的依赖关系,而有些时候某个依赖会有可能出现一些问题,像响应超时等,这种情况下,不同的服务去不断地调用这个依赖系统资源就会被占用的越来越多,进而会引起系统崩溃,也就是所谓的"雪崩效应"。对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障。这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的
2021-03-17 15:02:35 147
原创 对面向对象的理解
什么是面向对象?面向对象自然就是就是面向一对大象…开个玩笑。面向对象其实是相较于面向过程的,与面向过程相比,面向对象实际上是另外一种处理问题的角度,或者说思想。面相过程呢更注重事情的每一个步骤以及顺序,而面向对象更注重于事情有哪些参与者(也就是对象),以及各自需要去做什么。可以拿生活中的实例来理解面向过程与面向对象,(摘自百度百科) 例如五子棋面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走(看我抢占中心c位),3、绘制画面(我画我画我画画画),4、判断输赢(一颗棋子赢
2021-03-03 17:41:45 101 1
原创 关于Could not resolve placeholder ‘***‘ in value “${***}的错误
初次使用yml配置文件的错误,如图:# DataSource Configspring: datasource:# driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.p6spy.engine.spy.P6SpyDriver url: jdbc:p6spy:mysql://localhost:3306/third-homework?useUnicode=true&useSSL=false&am
2020-10-11 20:28:41 3846
HttpWatch 64
2020-09-22
Dom4j161_jb51.zip
2020-01-14
exe4j_64b.zip
2020-01-13
commons-beanutils-1.8.3.zip
2020-01-11
freemark获取数据失败
2020-09-29
freemark获取值获取不到
2020-09-29
logback过滤失败怎么办?
2020-09-25
springboot启动报错怎么解决?
2020-09-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人