2020年12月3日
摘要:写操作执行过程 如果这条sql是写操作(insert、update、delete),那么大致的过程如下,其中引擎层是属于 InnoDB 存储引擎的,因为InnoDB 是默认的存储引擎,也是主流的,所以这里只说明 InnoDB 的引擎层过程。由于写操作较查询操作更为复杂,所以先看一下写操作的执行图。方 阅读全文
posted @ 2020-12-03 20:55 萌新J 阅读(1225) 评论(16) 推荐(7) 编辑
  2020年11月30日
摘要:本文主要总结 MySQL 事务几种隔离级别的实现和其中锁的使用情况。因为 Mysql 几种存储引擎中 InnoDB 使用的最多,同时也支持事务和锁,所以这篇主要说得是 InnoDB 引擎下的锁机制与事务。 在开始前先简单回顾事务几种隔离级别以及带来的问题。 四种隔离级别:读未提交、读已提交、可重复读 阅读全文
posted @ 2020-11-30 20:32 萌新J 阅读(783) 评论(0) 推荐(2) 编辑
  2020年11月8日
摘要:什么是AQS? AQS是JUC内容的基石,它本质上是一个抽象类,定义了多线程下资源争夺与释放的规则和过程,许多实现类都是继承于AQS,使用AQS的骨架。 AQS的原理 AQS总体上来看是由一个FIFO(先进先出)队列和一个state属性配合组成的。FIFO用来存储线程结点的,state属性用来表示资 阅读全文
posted @ 2020-11-08 11:33 萌新J 阅读(199) 评论(0) 推荐(1) 编辑
  2020年10月9日
摘要:散列表 在了解hashmap之前,要先知道什么是散列表,因为hashmap就是在散列表结构基础上改造而成的。散列表,也叫哈希表,是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的 阅读全文
posted @ 2020-10-09 16:05 萌新J 阅读(864) 评论(0) 推荐(1) 编辑
  2021年3月10日
摘要:说到JVM,总是绕不开垃圾回收,因为其是JVM的核心之一,因为对象的创建是非常频繁的,想要提高程序的执行效率,拥有一个高效的垃圾回收机制是必不可少的。 首先要明确,因为对象的创建只在堆中,所以垃圾回收主要发生在堆中,但是垃圾回收并不只是回收对象,也会回收一些废弃的常量和类对象。所以垃圾回收作用的位置 阅读全文
posted @ 2021-03-10 23:03 萌新J 阅读(190) 评论(0) 推荐(2) 编辑
  2021年3月8日
摘要:对象的创建 创建方式 1、 new 关键字直接创建。 new ObjectName()。 2、通过 Class 反射对象的 newInstance() 方法。ObjectName obj = ObjectName.class.newInstance()。 3、通过 Class 反射对象获取 Cons 阅读全文
posted @ 2021-03-08 21:43 萌新J 阅读(32) 评论(0) 推荐(0) 编辑
  2021年3月7日
摘要:内存溢出(OOM)和内存泄漏 内存溢出:无法为对象进行空间分配(垃圾回收也没用)就会导致内存溢出。 内存泄漏:对于程序不会再用到的对象,垃圾回收器无法将其回收。 两者联系:发生了内存泄漏后,可能会导致内存溢出。 StackOverflowError(栈溢出) 在 JVM 的栈中,栈的大小可以是固定的 阅读全文
posted @ 2021-03-07 20:02 萌新J 阅读(84) 评论(0) 推荐(0) 编辑
  2021年3月4日
摘要:是什么 字符串常量池是 JVM 中的一个重要结构,用于存储JVM运行时产生的字符串。在JDK7之前在方法区中,存储的是字符串常量。而字符串常量池在 JDK7 开始移入堆中,随之而来的是除了存储字符串常量外,还可以存储字符串引用(因为在堆中,引用堆中的字符串常量很方便,所以可以存储引用)。这使得很多字 阅读全文
posted @ 2021-03-04 21:44 萌新J 阅读(100) 评论(0) 推荐(0) 编辑
  2021年3月3日
摘要:平时我们都使用 idea、eclipse 等软件来编写代码,在编写完之后直接点击运行就可以启动程序了,那么这个过程是怎么样的? 总体过程 我们编写的 java 文件在由编译器编译后会生成对应的 class 字节码文件, 然后再将 class 字节码文件转给 JVM 。JVM 会处理解析 class  阅读全文
posted @ 2021-03-03 21:00 萌新J 阅读(278) 评论(4) 推荐(2) 编辑
  2021年2月7日
摘要:1、mysqldump 执行过程: 一、将数据导出为 sql 文件。 mysqldump -h$host -P$port -u$user --add-locks=0 --no-create-info --single-transaction --set-gtid-purged=OFF db1 t - 阅读全文
posted @ 2021-02-07 23:07 萌新J 阅读(150) 评论(0) 推荐(1) 编辑
  2021年2月4日
摘要:MySQL 的主键可以是自增的,那么如果在断电重启后新增的值还会延续断电前的自增值吗?自增值默认为1,那么可不可以改变呢?下面就说一下 MySQL 的自增值。 特点 保存策略 1、如果存储引擎是 MyISAM,那么这个自增值是存储在数据文件中的; 2、如果是 InnoDB 引擎,1)在 5.6 之前 阅读全文
posted @ 2021-02-04 23:05 萌新J 阅读(349) 评论(0) 推荐(1) 编辑
  2021年2月3日
摘要:win10,已有 5.6 版本,安装8.0版本 1、先在mysql官网下载社区版压缩包,下载后解压 https://dev.mysql.com/downloads/mysql/ 配置环境变量 添加系统变量MySQL8_HOME 在系统变量Path添加Mysql8的bin路径 2、在目录下插件 my. 阅读全文
posted @ 2021-02-03 14:32 萌新J 阅读(38) 评论(0) 推荐(0) 编辑
  2021年1月29日
摘要:一个标准的 Group by 语句包含排序、分组、聚合函数,比如 select a,count(*) from t group by a ; 这个语句默认使用 a 进行排序。如果 a 列没有索引,那么就会创建临时表来统计 a和 count(*),然后再通过 sort_buffer 按 a 进行排序。 阅读全文
posted @ 2021-01-29 21:58 萌新J 阅读(262) 评论(0) 推荐(0) 编辑
  2021年1月28日
摘要:在开发中往往会出现查询多表联查的情况,那么就会用到 join 查询。 Join查询种类 为了方便说明,先定义一个统一的表,下面再做例子。 CREATE TABLE `t2` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `b` int(11) 阅读全文
posted @ 2021-01-28 23:07 萌新J 阅读(494) 评论(2) 推荐(3) 编辑