最小的K个数-快速排序 发表于 2020-07-23 | | 阅读次数: 最小的K个数,最大的K个数等需要进行排序的,都可以用到分治的思想,利用快排快速解决 1.快速排序思想 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所 ... 阅读全文 »
LRU算法原理及实现 发表于 2020-07-21 | | 阅读次数: LRU原理简介LRU是Least Recently Used的缩写,即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的。 LRU 算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也 ... 阅读全文 »
浅析springboot中tomcat源码实现 发表于 2020-06-04 | | 阅读次数: tomcat想必大家都非常的了解,在这里就不必介绍,在现在应用的springboot框架,tomcat就被内嵌其中。tomcat是怎么运行起来的?你知道怎么拓展tomcat吗? tomcat启动流程 springboot加载流程首先我们 ... 阅读全文 »
crash-safe,redo log和binlog你需要了解这些知识 发表于 2020-06-01 | 分类于 mysql | | 阅读次数: 当系统宕机了怎么办,数据怎么恢复的?innodb引擎怎么实现crash-safe的,想要了解这些问题的答案,redo log(重做日志)和binlog(归档日志)你必须了解。 我们先来看一条更新语句的执行过程 解释一下相关流程 sq ... 阅读全文 »
java spi第二章:如何定义自己的starter 发表于 2020-05-29 | | 阅读次数: starter背景 在第一章中,已经简单的介绍了java spi以及spi的用法以及优缺点。那spring中是否有用到spi机制呢?我们如何自定义一个starter呢? 我们先简单的定义一个springboot版 starter在spr ... 阅读全文 »
对象一定在堆上分配吗?论逃逸分析、栈上分配、标量替换和锁消除 发表于 2020-05-19 | 分类于 java虚拟机 | | 阅读次数: 在传统对象分配当中,通常在堆上进行对象实例的分配,但是随着JIT编译器的发展和逃逸分析技术的成熟,在栈上分配内存也不那么绝对了。下面简单介绍逃逸分析、栈上分配、标量替换和锁消除 逃逸分析 hotSpot虚拟机可以利用相应算法,判断对象 ... 阅读全文 »
ThreadLocal真的会内存泄漏吗 发表于 2020-05-07 | 分类于 java虚拟机 | | 阅读次数: 在多线程环境下,比如在spring容器类中定义的变量,如何防止自己的变量被其它线程篡改。想要解决这个问题,不得不提到一个类:ThreadLocal ThreadLocal的业务场景是什么?我们怎么用好这个类?你知道ThreadLocal ... 阅读全文 »
java spi第一章:JDBC接口怎么加载自己的实现类 发表于 2020-05-06 | | 阅读次数: spi的定义什么是spi,全称为 Service Provider Interface,是java的一种服务发现机制。 当服务的提供者提供了相应的实现之后,我们只需要在jar包的META-INF/services/目录里同时创建一个以服 ... 阅读全文 »
异步编程之CompleTableFuture 发表于 2020-04-29 | 分类于 java基础 | | 阅读次数: 所谓异步调用其实就是实现一个可无需等待被调用函数的返回值而让操作继续运行的方法。在 Java 语言中,简单的讲就是另启一个线程来完成调用中的部分计算,使调用继续运行或返回,而不需要等待计算结果。但调用者仍需要取线程的计算结果。 在并发 ... 阅读全文 »
初识mysql索引 发表于 2020-04-25 | 分类于 mysql | | 阅读次数: 什么是索引,为什么要索引,这是熟悉数据库必不可少的知识。简单的来说,索引就是利用合理的数据结构来提高查询数据的效率。让我们通过这种数据结构而快速的找到我们想要的数据。 常见的索引模型 从数据结构来说有B+树索引、hash索引、FULL ... 阅读全文 »