自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL中的Binlog、Redolog、Undolog

MySQL中的Binlog、Redolog、Undolog

2022-03-23 23:49:58 709

原创 MySQL性能优化(EXPLAIN执行计划和慢日志查询分析)

MySQL性能优化;EXPLAIN执行计划分析;慢日志查询以及分析;

2022-03-23 16:03:41 517

原创 MySQL事务

事务特性ACID;事务并发所带来的的问题;事务隔离级别;事务隔离性实现(MVCC和LBCC)和锁的梳理

2022-03-22 23:54:39 629

原创 MySQL索引原理

MySQL索引机制

2022-03-20 16:54:57 1049

原创 了解MySQL

MySQL整体架构执行流程ps:MySQL8去掉了缓存。Parser(解析器):将语句解析成解析树,并且通过预处理器判断解析树的语义是否正确,成功后会生成新的解析树。Optimizer(优化器):通过复杂算法实现尽可能的优化查询效率。工作原理:根据解析树,生成不同的执行计划(Execution Plan),然后选择一种最优的执行计划。因为是基于开销(Cost)的优化器,所以会采取开销最小的执行计划。但并不代表优化器生成的执行计划一定是最优的方案,也会存在覆盖不到的执行计划

2022-03-20 11:47:07 660

转载 简单工厂、工厂方法、抽象工厂区别

参考:https://blog.csdn.net/xiao1_1bing/article/details/81774931

2021-01-05 22:04:10 129

原创 软件架构设计的七大原则

一.开闭原则开闭原则(Open-ClosedPrinciple,OCP)是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调的是用抽象构建框架,用实现扩展细节。可以提高软件系统的可复用性及可维护性。开闭原则,是面向对象设计中最基础的设计原则。二.依赖倒置原则依赖倒置原则(DependenceInversionPrinciple,DIP)是指设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依

2021-01-05 06:41:42 691

原创 JVM入门(JVM参数详解和常用命令)

JVM参数1.标准参数包括 -version、-help、-server、-cp等可通过 java -help查看所有标准参数2.非标准参数(-X参数)-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xmixed 混合模式,JVM自己来决定3.-XX参数(使用得最多的参数类型,非标准化参数,相对不稳定,主要用于JVM调优和Debug)a.Boolean类型格式:-XX:[+-]<name> +或-表示启用或者禁用name属性比如..

2021-01-05 00:56:03 530 4

原创 JVM入门(Garbage Collect 垃圾回收)

如何确定对象是垃圾?1.引用计数法对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。弊端:如果对象之间相互持有引用,导致永远不能被回收。2.可达性分析通过GC Root的对象,开始向下寻找,看某个对象是否可达。能作为GC Root : 类加载器、Thread、虚拟机栈的本地变量表、static成员、常量引用、本地方法栈的变量等。垃圾回收算法1.标记-清除(Mark-Sweep)标记(找出内存中需要回.

2021-01-02 00:54:44 216

原创 JVM入门(模拟内存溢出和压栈)

1.堆内存溢出方法:不断向list中添加对象@RestControllerpublic class HeapController { List<Person> list=new ArrayList<Person>(); @GetMapping("/heap") public String heap() throws Exception{ while(true){ list.add(new Person());...

2021-01-01 18:36:52 183 1

原创 JVM入门(内存模型)

Java对象内存布局一个Java对象在内存中包括3个部分:对象头、实例数据和对齐填充内存模型图解:一块是非堆区,一块是堆区。堆区分为两大块,一个是Old区,一个是Young区。Young区分为两大块,一个是Survivor区(S0+S1),一块是Eden区。比例为 Eden:S0:S1 = 8:1:1S0和S1一样大,也可以叫From和To。对象创建所在区域一般情况下,新创建的对象都会被分配到Eden区,一些特殊的大的对象会直接分配到Old区。比如..

2021-01-01 18:19:32 112

原创 JVM入门(Java虚拟机栈和栈帧)

栈帧官网介绍:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.6每个栈帧中包括局部变量表(Local Variables)、操作数栈(Operand Stack)、指向运行时常量池的引用(A reference to the run-time constant pool)、方法返回地址(Return Address)和附加信息。局部变量表:方法中定义的局部变量以及方法的参数存放在这张表中;局部变.

2021-01-01 17:37:27 183

原创 JVM入门(类加载器和运行时数据区分析)

类装载器ClassLoader作用:装载class文件分类Bootstrap ClassLoader 负责加载$JAVA_HOME中 jre/lib/rt.jar 里所有的class或Xbootclassoath选项指定的jar包。由C++实现,不是ClassLoader子类。 Extension ClassLoader 负责加载java平台中扩展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar 或 -Djava.ext.dirs指定目录下的jar包。 App Cla

2021-01-01 01:03:08 222

原创 JVM入门(流程分析)

1 JDK8官网https://docs.oracle.com/javase/8/2源码到类文件2.1 编译过程Xxx.java -> 词法分析器 -> tokens流 -> 语法分析器 -> 语法树/抽象语法树 -> 语义分析器-> 注解抽象语法树 -> 字节码生成器 ->Xxx.class文件2.2类文件(.class文件)分析参考https://docs.oracle.com/javase/specs/jvms/se8/...

2020-12-31 23:28:05 122 1

原创 MySQL查询select语句的执行流程以及InnoDB内存结构

MySQL查询select语句的执行流程1.客户端需要与MySQL服务端建立连接;2.在缓存功能打开的情况下,查询缓存,如果缓存存在相应的结果,直接返回,若不存在,则进入解析器;3.查询语句会通过解析器进行词法解析和语法解析,完成语法解析后会生成解析树;4.进入预处理阶段,检查上一步生成的解析树,解决解析器无法解析的语义,预处理完成后会生成一个新的解析树;5.进入查询优化器,根据解析树生成不同的执行计划,而MySQL使用的是基于开销(cost)的优化器,即哪个执行计划开销最小则用哪个执行计划;

2020-11-29 17:44:34 464

原创 设计模式-单例模式

应用场景    只需要一个对象,如:配置文件、工具类、线程池、缓存对象、日志对象等饿汉模式public class SingleTon { /**1.私有化构造函数,使类不被外部实例化*/ private SingleTon() { } /**2.私有化实例对象*/ private static SingleTon instance = n...

2019-02-11 11:36:29 103

空空如也

空空如也

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

TA关注的人

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