自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 收藏
  • 关注

原创 深入理解Java虚拟机(10-13)学习总结

注:本文参考学习周志明老师的《深入理解Java虚拟机(第3版)》第10章 前端编译与优化10.1 概述前端编译器就是把* .java文件转变成*.class文件过程。也可能是JIT运行期把字节码转变为本地机器码的过程。前端编译器:JDK的javac、Eclipse JDT的增量式编译器即时编译器:HotSpot的C1和C2编译器、Graal编译器。提前编译器:JDK的Jaotc、GNU Compiler for the Java(GCJ)、Excelsior JET10.2 Javac.

2021-12-10 23:07:14 1357 42

原创 深入理解Java虚拟机(2-9)学习总结

注:本文参考学习周志明老师的深入理解Java虚拟机第2章 Java内存区域与内存溢出异常2.1 概述对于java程序员来说虚拟机的自动内存管理,不需要我们去给对象进行空间释放。2.2 运行时数据区域程序运行的时候内存划分的数据区域。2.2.1 程序计数器程序计数器占据内存空间很小。它是当前线程执行字节码的行号指示器。而且能够保证线程切换的时候保存这次准备执行的指令行号。它没有OutOfMemoryError情况的区域。2.2.2 Java虚拟机栈Java虚拟机栈也是.

2021-12-09 19:38:30 1949 51

原创 Java并发编程的艺术(5-10)学习总结

本文参考学习Java并发编程的艺术第5章 Java中的锁5.1 Lock接口synchronized没有的特性尝试非阻塞获取锁能够中断获取锁超时获取锁5.2 队列同步器队列同步器AbstractQueuedSynchronizer用来构建锁,或者其它同步组件。用一个int成员变量表示同步状态。通过内置的FIFO队列完成资源获取线程的排队工作。同步器的实现主要是继承,同步器需要提供(getState()、setState(int newState)和compareAndSe.

2021-12-05 19:49:19 1891 57

原创 Java并发编程的艺术(1-3)学习总结

注:本文参考Java并发编程的艺术第1章 并发编程的挑战并发编程的目的是让程序运行更快。1.1 上下文切换CPU通过时间片来循环执行任务。切换进程的时候会保存上一次的状态,方便下次的恢复。1.1.1 多线程一定快吗下面的代码一定很快吗?public class ConcurrencyTest { private static final long count = 10000l; public static void main(String[] args) thr.

2021-12-05 11:11:39 852 32

原创 王道操作系统(61-69)学习总结

目录磁盘管理磁盘初始化引导块坏块的管理总结IO设备的基本概念和分类什么是IO设备IO设备的分类--按使用特性IO设备的分类--按传输速率分类IO设备的分类--按照信息交换的单位分类IO控制器IO设备的机械部件IO设备的电子部件(IO控制器)IO控制器的组成内存映像IO和寄存器独立编址总结IO控制方式程序直接控制方式中断驱动方式DMA方式DMA控制器通道控制方式总结IO软件层次结构用户层软件设备独立软件设备驱动程序中断处理程序总结IO核心子系统这些功能要在哪个层次实现?假脱机技术什么是脱机技术假脱机技术共享打

2021-11-26 17:44:30 722 24

原创 王道操作系统(46-60)学习总结

目录页面置换算法最佳置换算法(OPT)先进先出置换算法最近最久未使用置换算法(LRU)时钟置换算法(CLOCK)改进型的时钟置换算法总结页面分配策略页面分配、置换策略何时调入页面从何处调入页面抖动现象工作集总结初识文件管理文件属性文件内部的数据应该怎么组织起来文件之间应该如何组织起来?操作系统应该向上提供什么功能?从上往下看,文件应如何存放在外存其它需要操作系统实现的文件管理功能总结文件的逻辑结构两种结构文件有结构文件的逻辑结构索引文件索引顺序文件多级索引顺序文件总结文件目录文件控制块目录结构--单级目录结

2021-11-26 11:16:47 887 26

原创 王道操作系统(31-45)学习总结

目录死锁处理策略-避免死锁什么是安全序列?银行家算法死锁的处理策略--检测和接触死锁的检测总结内存的基础知识什么是内存?有什么作用?进程的运行原理-指令从写程序到程序执行装入模块装入内存装入的三种方式链接的三种方式总结内存管理的概念内存空间的分配与回收总结覆盖与交换覆盖技术交换技术总结连续分配管理的方式单一连续分配方式固定分区分配动态分区分配碎片讨论总结动态分区分配算法首次适应算法最佳适应算法最坏适应算法邻近适应算法总结基本分页存储管理的基本概念连续分配的缺点固定分配到非连续分配版本分页存储管理的基本概念逻

2021-11-25 12:05:13 2650 32

原创 王道操作系统(16-30)学习总结

目录FCFS、SJF、HRRN调度算法先来先服务算法(FCFS)短作业优先算法(SJF)细节总结总结两种算法高响应比优先(HRRN,highest response ratio next)总结调度算法时间片轮转、优先级、多级反馈队列时间片轮转优先级调度算法前四种算法的优点多级反馈队列调度算法总结进程同步、进程互斥什么是进程同步?什么是进程互斥?总结进程互斥的软件实现方法单标志法双标志先检查法双标志后检查法Peterson算法总结进程实现互斥的硬件方法中断屏蔽方法TestAndSet指令Swap指令总结信号量

2021-11-23 21:10:13 1285 23

原创 王道操作系统(1-15)学习总结

目录操作系统的概念、功能、目标操作系统的概念操作系统的功能和目标作为系统的资源管理者作为用户和计算机硬件之间的接口作为最接近硬件的层次总结操作系统的四个特征并发共享虚拟异步总结操作系统的发展与分类手工操作阶段批处理阶段-单道批处理系统多道批处理系统分时操作系统实时操作系统其它几种操作系统总结操作系统的运行机制和体系结构两种指令、两种处理器状态、两种程序指令两种处理器状态两种程序操作系统的内核操作系统的体系结构总结中断和异常中断的概念和作用中断的分类外中断的处理过程总结系统调用什么是系统调用,有什么作用?系统

2021-11-22 21:43:43 1172 30

原创 《Redis设计与实现》(16-21)个人学习总结

注明:《Redis设计与实现》的个人学习总结,这本书对redis的讲解清晰易懂,如果深入学习可以看看这本书目录第16章 Sentinel16.1 启动并初始化Sentinel16.1.1 初始化服务器16.1.2 使用Sentinel专用代码16.1.3 初始化Sentinel状态16.1.4 初始化Sentinel状态的masters属性16.1.5 创建连向主服务器的网络连接16.2 获取主服务器信息16.3 获取从服务器信息16.4 向主服务器和从服务器发送信息16.5 接收来自主服务器和从服务器的

2021-11-19 22:50:45 4266 28

原创 《Redis设计与实现》(11-15)个人学习总结

注明:《Redis设计与实现》的个人学习总结,这本书对redis的讲解清晰易懂,如果深入学习可以看看这本书。目录第11章 AOF持久化11.1 AOF持久化的实现11.1.1 命令追加11.1.2 AOF文件的写入与同步11.2 AOF文件的载入与数据还原11.3 AOF重写11.3.1 AOF文件重写的实现11.3.2 AOF后台重写11.4 重点回顾第12章 事件12.1 文件事件12.1.1 文件事件处理器的构成12.1.2 I/O多路复用程序的实现12.1.3 事件的类型12.1.4 API12.

2021-11-19 15:04:08 1085 19

原创 《Redis设计与实现》(6-10)个人学习总结

注明:《Redis设计与实现》的个人学习总结,这本书对redis的讲解清晰易懂,如果深入学习可以看看这本书。目录第6章 整数集合6.1 整数集合的实现6.2 升级6.3 升级的好处6.3.1 提升灵活性6.3.2 节约内存6.4 降级6.5 整数集合API6.6 重点回顾第7章 压缩列表7.1 压缩列表的构成7.2 压缩列表节点的构成7.2.1 previous_entry_length7.2.2 encoding7.2.3 content7.3 连锁更新7.4 压缩列表API7.5 重点回顾第8章 对象

2021-11-17 23:38:17 2231 20

原创 《Redis设计与实现》(1-5)个人学习总结

注明:《Redis设计与实现》的个人学习总结,这本书对redis的讲解清晰易懂,如果深入学习可以看看这本书。目录前言第1章:引言第2章 简单动态字符串2.1 SDS的定义2.2 SDS与C字符串的区别2.2.1 常数复杂度获取字符串长度2.2.2 杜绝缓冲区溢出2.2.3 减少修改字符串时带来的内存重分配次数1.空间预分配2.惰性空间释放2.2.4 二进制安全2.2.5 兼容部分C字符串函数2.2.6 总结2.3 SDS API2.4 重点回顾第3章 链表3.1 链表和链表节点的实现3.2 链表和链表节点

2021-11-16 21:47:33 2603 29

原创 innodb存储引擎学习总结

注明:《MySQL技术内幕 InnoDB存储引擎》个人学习总结目录第一章:mysql体系结构和存储引擎1.1定义数据库和实例1.2mysql的结构体系mysql的组成部分1.3mysql存储引擎1.3.1innodb存储引擎1.3.2MyISAM存储引擎1.3.3NDB存储引擎1.3.4Memory存储引擎1.3.5Archive存储引擎1.5连接mysql1.5.1TCP/IP1.5.2命名管道和共享内存1.5.3Unix域套接字第二章:Innodb存储引擎2.1innodb的概述2.2Innodb的版

2021-11-15 21:43:38 901 16

原创 《MySQL实战45讲》(20-35讲)学习总结

注明:极客时间《MySQL实战45讲》个人学习3目录第二十一讲:为什么我只改一行的语句,锁这么多?加锁规则案例一:等值查询间隙锁案例二:非唯一索引等值锁案例三:主键索引范围锁案例四:非唯一索引范围锁案例五:唯一索引范围锁 bug案例六:非唯一索引上存在"等值"的例子案例七:limit 语句加锁案例八:一个死锁的例子总结问题第二十二讲:MySQL有哪些“饮鸩止渴”提高性能的方法?短连接风暴第一种方法:先处理掉那些占着连接但是不工作的线程。第二种方法:减少连接过程的消耗。慢查询性能问题导致慢查询的第一种可能是

2021-11-15 21:24:34 2651 24

原创 《MySQL实战45讲》(11-20讲)学习总结

注明:极客时间《MySQL实战45讲》个人学习总结目录第十一讲:怎么给字符串加索引?前缀如果遇到区分度不好的字段怎么办?他们的区别问题第十二讲:为什么我的mysql会抖一下基本概念sql什么时候会变慢?尽量避免的情况?innodb刷新脏页的控制策略总结问题第十三讲:为什么表数据删除了一半,表文件不变?innodb_file_per_table数据删除流程如何解决增删改的空洞问题?inplace和Onlineoptimize table、analyze table 和 alter table问题第十四讲:c

2021-11-15 21:16:27 1284 17

原创 《MySQL实战45讲》(1-10讲)学习总结

注明:极客时间《MySQL实战45讲》个人学习总结目录第一讲:基础架构Server层连接器长连接如何导致内存溢出?查询缓存分析器优化器执行器存储引擎问题第二讲:日志系统mysql如何恢复半个月前的任意一秒状态?redo log(粉板)binlog为什么会有两份日志?两个日志的不同?update的内部流程那么这里为什么要写两次redo log(两阶段提交)?问题第三讲:事务隔离隔离性sql的隔离级别视图事务隔离的实现为什么不要使用长事务?怎么避免使用长事务?事务的启动方式第四讲:深入浅出的索引(上)索引的定

2021-11-15 21:11:54 1659 19

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(25)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本正版小册看看,对于mysql是由浅入深的讲解非常细致目录说明25.锁解决并发事务带来问题的两种基本方式锁结构的信息读写或者是写读一致性读锁定读共享锁和独占锁锁定读语句写操作多粒度锁MySQL中的行锁和表锁其他存储引擎中的锁INNODB的锁InnoDB中的表级锁InnoDB中的行级锁行锁类型事务id的作用InnoDB锁的内存结构简述过程25.锁解决并发事务带来问题的两种基本方式读-读:这种

2021-11-08 10:31:43 1142 14

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(24)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本正版小册看看,对于mysql是由浅入深的讲解非常细致目录说明24.事务隔离级别和MVCC事务隔离级别事务并发执行遇到的问题SQL标准中的四种隔离级别MySQL中支持的四种隔离级别如何设置事务的隔离级别MVCC原理版本链ReadView对于read commited和repeatable read对于read commited来说对于repeatable read来说总结24.事务隔离级别和MV

2021-11-08 10:30:35 652 8

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(23)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本正版小册看看,对于mysql是由浅入深的讲解非常细致目录说明23.undo日志(下)通用链表结构链表的基节点FIL_PAGE_UNDO_LOG页面undo页面特有的Undo Page HeaderUndo页面链表单个事务中的Undo页面链表多个事务中的Undo页面链表undo日志具体写入过程Undo Log Segment HeaderUndo Log Header重用Undo页面链表重用的不同

2021-11-08 10:29:42 410 4

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(21-22)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本正版小册看看,对于mysql是由浅入深的讲解非常细致目录说明21.redo日志(下)redo日志文件redo日志刷盘时机redo日志文件组redo日志文件格式Log Sequeue Numberflushed_to_disk_lsnlsn值和redo日志文件偏移量的对应关系flush链表中的LSN总结checkpoint批量从flush链表中刷出脏页查看系统中的各种LSN值innodb_flus

2021-11-08 10:28:41 228 2

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(19-20)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本正版小册看看,对于mysql是由浅入深的讲解非常细致目录说明19.事务简介事务的概念开启事务提交事务手动中止事务支持事务的存储引擎自动提交隐式提交保存点20.redo日志(上)redo日志格式简单的redo日志类型复杂一些的redo日志类型MLOG_COMP_REC_INSERT的日志结构redo日志格式小结Mini-Transaction以组的形式写入redo日志Mini-Transactio

2021-11-08 10:27:37 884 6

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(16-18)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本正版小册看看,对于mysql是由浅入深的讲解非常细致目录说明16.Explain 详解(下)ExtraJson格式的执行计划17.optimizer trace 表的神奇功效18.InnoDB 的 Buffer PoolBuffer Pool内部组成free链表的管理缓存页的哈希处理flush链表的管理LRU链表管理缓存不够的情况简单的LRU链表划分区域的LRU链表情况1:预读,先把磁盘数据页加

2021-11-05 22:10:04 289 1

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(14-15)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本小册看看,对于mysql是由浅入深的讲解非常细致目录说明14.基于规则优化条件化简除去括号常量传递等值传递移除没用的条件表达式计算having和where子句合并常量表检测外连接消除子查询优化按返回的结果集区分子查询按外层查询关系区分子查询子查询在布尔表达式的使用in、some、all子查询子查询的规则标量子查询、行子查询的执行方式IN子查询优化不相关的in子查询物化表转连接将子查询转换为sem

2021-11-05 22:08:01 271 1

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(11-13)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本看看,对于mysql是由浅入深的讲解非常细致目录说明11.连接的原理连接过程简介内连接和外连接内连接外连接嵌套循环连接基于块的循环嵌套连接12.基于成本优化什么是成本基于成本优化的步骤基于索引的统计数据的成本计算属性连接查询的成本Condition filtering介绍两表连接的成本分析s1作为驱动表s2作为驱动表多表连接的成本分析调节成本常数mysql.server_cost;mysql.e

2021-11-01 22:11:33 338 1

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(8-10)学习总结

说明文章的图片来源《MySQL是怎么运行的:从根儿上理解MySQL》,本篇文章只是个人学习总结,欢迎大家买一本看看,对于mysql是由浅入深的讲解非常细致目录说明8.MySQL 的数据目录数据库和文件系统的关系Mysql的数据目录数据目录和安装目录的区别如何确定mysql的数据目录数据目录的结构数据库在文件系统的表示表在文件系统的表示Innodb如何存储表数据系统表空间独立表空间MyISAM是怎么存储数据的视图在文件系统的表示其它文件文件系统对数据库的影响Mysql系统数据库简介总结9.InnoDB的表

2021-11-01 22:09:39 442 1

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(6-7)学习总结

目录6.B+树的索引没有索引是怎么查找的索引为什么需要遍历所有的槽?那么我们应该怎么做?InnoDB的索引方案聚簇索引二级索引联合索引B+树的生成但是对于二级索引来说只有索引列+页号?MyISAM的索引介绍总结7.B+树索引的使用索引的代价B+树适用的条件全值匹配匹配左边的值那么为什么一定是左边的值才能够使用到这个B+树的索引?匹配列前缀匹配范围值精确匹配某一列并范围匹配另外一列用于排序联合索引需要注意的是如果没有索引列的查询排序列包含一个非索引的列排序列使用了复杂的表达式用于分组回表的代价覆盖索引如何挑选

2021-10-30 21:09:00 413

原创 《MySQL是怎么运行的:从根儿上理解MySQL》(1-5)学习总结

目录1.mysql的工作机制1.文件2.mysql使用的协议3.连接管理4.解析和优化查询缓存语法解析查询优化存储引擎2.启动和配置文件启动选项配置文件的使用选项配置文件内容系统变量系统变量的作用范围状态变量3.字符集和比较规则简介怎么存储字符集?常见字符集Mysql支持的字符集字符集的比较规则字符集的作用字符集的转换总结4.Innodb存储结构innodb简介Innodb的行格式Compact格式变长字段长度列表null列表值记录头信息记录真实数据char(M)存储格式Redundant格式记录头信息1b

2021-10-30 21:07:49 1887 13

原创 尚硅谷git学习总结

目录1.Git概述什么是版本控制?版本控制工具集中式版本控制分布式2.Git的工作原理3.Git常用命令常用命令添加文件到暂存区和移除文件出暂存区添加之后查询版本修改版本信息4.git分支操作1.什么是分支2.分支操作3.git冲突5.git团队协作6.github操作创建远程库远程库和本地库的同步问题clone授予权限团队内合作多个团队合作ssh免密登录7.忽略文件8.idea整合git版本切换分支切换合并分支分支冲突idea登录gitee推送项目拉项目clone项目总结一下idea的git使用分支的原理

2021-10-28 18:37:55 153

原创 两个字符删除操作总结

1.两个字符串的删除操作动态规划思路这个思路和LCS不一样,主要是子问题的定义不一样。对于LCS来说,dp[i] [j]的意思其实就是前i字符串word1和前j的字符串word2最大的子序列数。对于这道题来说就是前i的word1和前j的word2最小的删除数。不同的定义自然处理也是不相同的。但是这两种解法看上去就是反面,如果需要删除的话那么就是+1如果不需要删除那么就是-1。对于最长子序列来说是只要相同那么就去+1。也就是这道题统计的是最小的删除数达到最大子序列,这就是他们相似的地方。你会发现

2021-10-27 17:23:53 246

原创 编辑距离总结

1.编辑距离动态规划思路(自底向上)这道题其实和前面的两个字符删除操作极其的相似,只不过是状态需要好好地捋清楚。dp[i] [j]这里的i的意思就是word1前i个字符,word2前j个字符,如果要把word1改成word2所需要的最少操作。这里的把word1改成word2非常重要,必须理清楚关系是word1改成word2,重要的事说三遍。知道这个之后后面的状态转移才有可能捋清楚如果word1[i]==word[j]那么就可以什么都不做如果不相等就会有三种情况dp[i] [j

2021-10-27 17:23:33 293

原创 类加载机制和tomcat的类加载机制总结

学习参考的文章链接目录1.类加载机制器classLoader的作用class文件的显式加载和隐式加载2.类加载器的类型启动类加载器扩展类加载器应用类加载器用户自定义加载器自定义ClassLoader自定义的classLoader如果没有设定父类加载器,那么父类加载器是谁?如果自定义类加载器强制parent设置为null,那么是不是就无法加载类?自定义ClassLoader自定义的classLoader如果没有设定父类加载器,那么父类加载器是谁?如果自定义类加载器强制parent设置为null,那么是不是就

2021-10-27 17:22:33 276

原创 狂神redis学习总结

目录1.为什么需要缓存缓存+mysql+垂直拆分mysql集群+水平拆分+分库分表2.什么是nosqlnot only sql四类nosql3.Redis入门redis是什么redis有什么用配置环境测试性能基本命令redis的性能瓶颈4.五大数据类型redis-keyString类型List类型set集合类型HashZset5.三种特殊类型geospatial地理位置hyperloglog什么是基数作用?语法BitMap6.redis的事务特点语法异常redis的乐观锁语法Jedis连接7.redis配置

2021-10-26 21:45:44 232

原创 买卖股票问题系列总结

目录1.买卖股票的最佳时机暴力搜索贪心解决动态规划思路2.买卖股票的最佳时机 II暴力搜索思路动态规划思路贪心解法3.买卖股票的最佳时间3动态规划4.买卖股票的最佳时间3动态规划5.买卖股票时机含冷冻期动态规划6.买卖股票的最佳时机含手续费动态规划思路1.买卖股票的最佳时机暴力搜索因为只是要一天的,意思就是只要挑一天最小的买入,最大的卖出就可以了,转换过来就是求数组中的两个数最大的差值(前提是下标大的减下标小的,下面遍历就会看出来),那么只需要双指针,一个指向买入那天,然后另一个往后面找,后面那天的股

2021-10-24 19:08:47 300 2

原创 打家劫舍系列题目总结

1.打家劫舍思路常规的动态规划题目①dp[i]的意思是偷第i间房子的最大金额数②递推dp[i]=max(dp[i-1],dp[i-2]+nums[i]),其实就是求第i间房子最大金额,就是要么偷这间房,要么不偷,如果偷,那么前一个不能偷,也就是找dp[i-2]的最大金额+当前可以偷的nums[i]。如果不偷,那么最大金额就是从上一间房子得出。因为到第i间没变化,直接参照上一间就可以了(因为都是最大)。③初始化dp[0]肯定是nums[0],但是第二间房肯定就是从nums[0]和nums[1]中选择

2021-10-24 19:07:59 384 2

原创 jvm类加载过程总结

参考javaguide类加载的生命周期类加载过程?加载->连接->初始化->使用->卸载加载通过全类名获取定义该类的二进制字节流将字节流所代表的静态存储结构转换为方法区的运行时结构在内存生成一个代表该类的class对象,作为方法区这些数据的方法入口验证验证字节码文件各种信息文件格式,版本号,常量池是否支持元数据验证:字节码描述信息,类等各种继承信息字节码验证:字节码验证符号引用验证准备分配内存,并且设定初始值分配类变量但是不包括实例变量(在

2021-10-23 09:26:34 149

原创 jvm内存模型总结

参考javaguideJVM内存模型基础和常见面试题总结说说运行是基本数据区域?哪些是线程私有的?程序计数器虚拟机栈本地方法栈那些是线程共享的?堆方法区直接内存程序计数器的作用?记录线程执行的位置负责指向下一条线程需要执行的字节码不会出现OutMemoryErrorjava虚拟机栈的作用?负责存入线程处理的方法栈帧各种局部变量本地方法栈?执行native方法堆?最大的内存区域,存放对象划分为老年代、新生代(幸存区、伊甸区)jdk8之后消除

2021-10-23 09:25:17 216

原创 jvm垃圾回收总结

参考javaguide的jvm系列目录常见面试题1.JVM内存回收和分配1.1主要的区域?gc测试1.2大对象进入老年代1.3长期存活的对象进入老年代1.5主要进行gc的区域gc的类型Young GcFull Gc1.6空间分配担保?2.对象已经死亡?2.1引用计数法2.2可达性分析2.3再谈引用虚引用、软引用、弱引用的区别?2.4不可达对象不一定回收2.5如何判断一个常量是废弃常量?2.6如果判断一个类没有用?3.垃圾回收算法hotspot为什么要区分老年代和新生代?跨代收集假说?4.垃圾回收器4.1S

2021-10-23 09:23:43 540

原创 深入理解JVM第三章几个问题总结

安全点如何理解?首先要知道oop是做什么的,其实就是记录新的对象引用,能够让系统快速找到gc root如果每次修改引用都要重新生成oop,那么是不是就需要占据大量的cpu时间,所以需要每隔一段时间去更新也就是说这就是为什么需要STW的原因安全点就是能够保证在oop差别不大的情况下修改,而且能够让大多数线程执行到这个时间间隔STW但是很多线程不可能同时一起中断,有的指令需要执行很长时间这个时候就需要协调这个位置,这个位置就是安全点(中断的时间约定)那么如何让线程跑到最近的安全点?主动式中断

2021-10-23 09:21:57 119

原创 ReentrantLock独享锁源码解析

原文链接:https://blog.youkuaiyun.com/anlian523/article/details/106344926目录独占锁源码解析重要变量(AQS)队列节点结构AQS持有队列UnsafeReentantLock的内部类ReentrantLock的公平和是否能够中断第一个实现公平和不响应阻断FairSync同步器(说说lock的过程?)acquire分析tryAcquire分析addWaiter为什么需要要使用双向队列和tail指针?acquireQueuedshouldParkAfterFai

2021-10-22 00:22:31 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除