- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 [深入理解MySQL-1] MySQL体系架构与运行机制-详解
MySQL体系架构MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层网络连接层客户端连接器(Client Connectors):提供与MySQL服务器建立的连接支持mysql -h$ip -P$port -u$user -p一个用户成功建立连接后,即使你用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。修改完成后,只有再新建的连接才会使用新的权限设置目前几乎支持所有主流 的服务端编程技术,例如常见的 Java、C、Python、.NE
2022-03-08 10:00:00 244
原创 JVM故障排查工具
jps:虚拟机进程状况工具可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程 的本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier)。虽然功能比较单一,但它绝对是使用频率最高 的JDK命令行工具,因为其他的JDK工具大多需要输入它查询到的LVMID来确定要监控的是哪一个虚拟机进程。对于本地虚拟机进程来说,LVMID与操作系统的进程ID(PID,Process Identifier)是一致的,使用
2022-03-07 17:00:00 183
原创 垃圾回收器的种类
七种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用,图中收集器所处的区域,则表示它是属于新生代收集器抑或是老年代收集器Serial收集器该收集器是一个单线程工作的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。迄今为止,它依然是HotSpot虚拟机运行在客户端模式下的默认新生代收集器,有着优于其他收集器的地方,那就是 简单而高效(与其他收集器的单.
2022-03-06 10:00:00 154
原创 HotSpot的算法细节实现
根节点枚举所有收集器在根节点枚举这一步骤时都是必须暂停用户线程的。现在可达性分析算法耗时最长的查找引用链的过程已经可以做到与用户线程一起并发,但根节点枚举始终还是必须在一个能保障一致性的快照中才得以进行——这里“一致性”的意思是整个枚举期间执行子系统看起来就像被冻结在某个时间点上,不会出现分析过程中, 根节点集合的对象引用关系还在不断变化的情况,若这点不能满足的话,分析结果准确性也就无法保证。这是导致垃圾收集过程必须停顿所有用户线程的其中一个重要原因,即使是号称停顿时间可控,或者(几乎)不会发生停顿 的C
2022-03-06 10:00:00 99
原创 垃圾收集时如何判断对象是否存活与垃圾收集算法
如何判断对象是否存活的引用计数算法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可 能再被使用的主流的Java虚拟机里面都没有选用引用计数算法来管理内存,主要原因是,这个看似简单 的算法有很多例外情况要考虑,必须要配合大量额外处理才能保证正确地工作,譬如单纯的引用计数 就很难解决对象之间相互循环引用的问题可达性分析算法 (JVM使用的)通过一系列称为 GC Roots 的根对象作为起始节点集,从这些节点开始,根据引用
2022-03-05 10:00:00 110
原创 Java内存区域与内存溢出异常
运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来
2022-03-04 15:30:00 109
原创 虚拟机字节码执行引擎
Java虚拟机以方法作为最基本的执行单元,“栈帧”(Stack Frame)则是用 于支持虚拟机进行方法调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素栈帧存储 了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一 个方法从调用开始至执行结束的过程,都对应着一个栈帧在虚拟机栈里面 从入栈到出栈的过程在编译Java程序源码的时候,栈帧中需要多大的局部变量表,需要多深的操作数栈就已经被分析计算出来,并且写入到方法表的Cod
2022-03-04 10:00:00 204
原创 JVM 类加载器
对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性每一个类加载器,都拥有一个独立的类名称空间。这句话可以表达得更通俗一些:比较两个类是否“相 等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个 Class文件,被同一个Java虚拟机加载,只要加载它们的类加载器不同,那这两个类就必定不相等双亲委派模型启动类加载器(Bootstrap Class Loader):这个类加载器负责加载存放在 <JAVA_HOME&g
2022-03-03 15:00:00 173
原创 JVM 类加载机制
一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载 (Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化 (Initialization)、使用(Using)和卸载(Unloading)七个阶段,其中验证、准备、解析三个部分统称为连接(Linking)。加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类型的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段
2022-03-02 00:09:24 474
spring_security.txt
2020-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人