自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

乐之终曲

共同学习,共同进步,共同吹牛逼

  • 博客(207)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 《深入理解 Java 虚拟机》 第二版导读

《深入理解 Java 虚拟机》 第二版导读虚拟机内存管理机制垃圾收集器与内存分配策略虚拟机执行子系统高效并发虚拟机内存管理机制深入理解 Java 虚拟机:Java 虚拟机内存组成概况重点部分,虚拟机的内存组成,面试可能问到的问题深入理解 Java 虚拟机:对象的创建过程重点部分,对象创建时是如何分配内存的(指针碰撞、空闲列表),面试可能问到的问题深入理解 Java 虚拟机:对象在内存中的结构与对象的访问重点部分,对象的组成结构,与对象的访问方式,无需死记硬背,大致理解即可,面试可能问到的问题

2020-07-09 12:14:27 485

原创 Flowable 流程引擎系列文章导读

Flowable 流程引擎系列文章导读集成篇入门教程篇功能篇其他问题集成篇Flowable 快速入门教程:SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(超详细)SpringBoot 集成 Flowable Modeler 设计器教程,附带示例代码。Flowable 快速入门教程:SpringBoot 集成 Flowable + Flow...

2020-04-23 17:03:58 3357 4

原创 Redis 系列文章导读

Redis 系列文章导读工具篇开发篇架构篇工具篇Redis 可视化工具 Redis Desktop ManagerRedis Desktop Manager 是一个很好的 Redis 客户端工具,帮助你连接远程服务器上的 Redis 查看数据。开发篇SpringBoot 整合 Redis 及 Redis 工具类后端集成 Redis 快速入门。架构篇Redis 集群搭建(一):Doc...

2020-04-22 15:46:17 1102

原创 ElasticSearch 通用化批量数据同步器封装设计

ES 分页分片通用功能设计与封装

2022-06-21 20:03:58 586 1

原创 ElasticSearch 通用化批量存储封装设计

对 ES 的批量存储功能进行通用化封装,简单易用。

2022-06-21 12:36:47 1034 2

原创 Spring Cloud Alibaba 之 Sentinel 集成限流

Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。

2022-03-23 12:41:34 730

原创 剑指 Offer 63. 股票的最大利润

剑指 Offer 63. 股票的最大利润题目题目链接解题思路题解代码题目题目链接https://leetcode-cn.com/problems/gu-piao-de-zui-da-li-run-lcof/解题思路题解动态规划利润计算:加入第 a 天买入,第 b 天卖出,利润为 prices[b] - price[a],且 b > a此时假设,第 a 天的价格是这几天中最低的,且假设第 b 天为这几天中最高价,此时 prices[b] - price[a] 就为最大利润此时在

2022-02-24 11:52:18 645

原创 LeetCode 2. 两数相加

LeetCode 2. 两数相加题目题目链接解题思路代码题目题目链接https://leetcode-cn.com/problems/add-two-numbers/解题思路迭代法l1:[2, 4, 3]l2:[5, 6, 4] 直接计算量数相加, 2 + 5 = 7下次计算 4 + 6 = 10,如果结果 >= 10,因此需要一个进位标识,标识进位,同时当前位 -10。因此结果为 0,进位标识生效最后,3 + 4 + 1 = 8,进位加上结果 342 + 465

2022-02-18 17:57:59 370

原创 LeetCode 557. 反转字符串中的单词 III

LeetCode 557. 反转字符串中的单词 III题目我的思路代码题目我的思路利用栈的后进先出反转栈以空格为分割进行切分代码class Solution { public String reverseWords(String s) { if (s == null || s.length() == 0) { return s; } // 字符串转数组 char[] arrs = s.toCh

2022-02-17 16:00:58 162

原创 剑指 Offer 10- II. 青蛙跳台阶问题

剑指 Offer 10- II. 青蛙跳台阶问题题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/解题思路具体思路此题的本质上使用斐波那契数列来解的:剑指 Offer 10- I. 斐波那契数列公式:f(n) = f(n - 1) + f(n - 2)如何理解?假如用递归穷举如何实现? numWays(int n) {  &

2022-01-26 14:09:47 303

原创 剑指 Offer 10- I. 斐波那契数列

剑指 Offer 10- I. 斐波那契数列题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/submissions/解题思路具体思路递归法通过递归累加,最后结果取模中间用缓存将已经计算过的结果缓存,避免重复大量的计算具体代码class Solution { int[] cache = null; public int fib(int n) {

2022-01-25 19:19:16 316

原创 剑指 Offer 28. 对称的二叉树

剑指 Offer 28. 对称的二叉树题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/解题思路具体思路通过递归对对称的节点进行比较规则:左节点的左节点与右节点的右节点为对称节点左节点的右节点与右节点的左节点为对称节点具体代码/** * Definition for a binary tree node. * public class TreeNode {

2022-01-25 17:33:13 299

原创 剑指 Offer 27. 二叉树的镜像

剑指 Offer 27. 二叉树的镜像题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/解题思路具体思路递归法所谓镜像树,就是进行左右的对称交换我们将任务进行拆解,从局部的一个节点以及其左右节点来看所谓镜像,就是将此单节点的左右节点进行交换具体代码/** * Definition for a binary tree node. * public clas

2022-01-25 17:01:30 272

原创 剑指 Offer 26. 树的子结构

剑指 Offer 26. 树的子结构题目题目链接解题思路具体代码题目题目链接https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/解题思路具体代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(i

2022-01-24 17:49:57 350

原创 剑指 Offer 32 - III. 从上到下打印二叉树 III

剑指 Offer 32 - III. 从上到下打印二叉树 III题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof/解题思路具体思路就代码的思路其实和上一题:剑指 Offer 32 - II. 从上到下打印二叉树 II 差不多,具体的一些思路可以看上个文章。 但是这题不同的是,他要求的输出顺序是,奇数行顺序,偶数行倒序。难道

2021-12-28 16:16:28 364

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II

剑指 Offer 32 - II. 从上到下打印二叉树 II题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/解题思路具体思路解决方案采取了广度优先的思想因为要求按层将数据归类到一个数组里,因此考虑按层进行遍历 那么问题来了,同一层级的节点分布在不同的二叉树的枝桠上,那如何归纳这些节点?答:由于第一层只会有一个节点,因此只

2021-12-28 11:30:11 382

原创 剑指 Offer 32 - I. 从上到下打印二叉树

剑指 Offer 32 - I. 从上到下打印二叉树题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/解题思路具体思路利用队列先进先出的特点将左右节点依次入队。后面只需要将节点依次出队,再将后续的左右节点追加到队尾即可。 示例:     22   

2021-12-23 16:26:46 819

原创 剑指 Offer 50. 第一个只出现一次的字符

剑指 Offer 50. 第一个只出现一次的字符题目题目链接具体代码集合缓存法索引比较法题目题目链接https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/具体代码集合缓存法class Solution { public char firstUniqChar(String s) { // 用 Map 缓存,key:字节,value:是否重复出现 // 最后只要找到没有重复出

2021-12-23 11:21:33 143

原创 剑指 Offer 11. 旋转数组的最小数字

剑指 Offer 11. 旋转数组的最小数字题目题目链接具体代码题目题目链接https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/具体代码class Solution { public int minArray(int[] numbers) { Integer tmp = null; for (int num : numbers) { i

2021-12-22 15:56:37 380

原创 剑指 Offer 04. 二维数组中的查找

剑指 Offer 04. 二维数组中的查找题目题目链接解题思路具体思路代码实现题目题目链接https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/解题思路具体思路首先这个二维数组有3个特点1.数组从左到右横向递增2.数组从上到下纵向递增3.数组是个 m * n 的规则二维数组 依靠这个特点,我们可以总结发现3个规则1.假如 target 比当前 matrix[x] 的第一个值小,说明这个

2021-12-21 16:08:38 197

原创 剑指 Offer 53 - II. 0~n-1中缺失的数字

剑指 Offer 53 - II. 0~n-1中缺失的数字题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof/解题思路具体思路这道题如果直接使用循环判断的话那就失去了他本身的意义正确的解法应该是使用二分查找快速找出对应的数字核心思路:min的索引 == min位置的值,但是(min + 1)的索引 !=(min + 1)位置的值,此时找到缺失的数字即 min + 1具体代码c

2021-12-14 16:46:03 3795

原创 剑指 Offer 53 - I. 在排序数组中查找数字 I

剑指 Offer 53 - I. 在排序数组中查找数字 I题目题目链接具体代码题目题目链接https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof/具体代码class Solution { public int search(int[] nums, int target) { int time = 0; for (int num : nums) {

2021-12-13 17:54:48 224

原创 剑指 Offer 03. 数组中重复的数字

剑指 Offer 03. 数组中重复的数字题目题目链接具体代码题目题目链接https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/具体代码class Solution { public int findRepeatNumber(int[] nums) { int repeat = -1; Set<Integer> set = new HashSet<&gt

2021-12-13 17:49:35 672

原创 剑指 Offer 58 - II. 左旋转字符串

剑指 Offer 58 - II. 左旋转字符串题目题目链接解题思路具体思路具体代码题目题目链接https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/解题思路具体思路字符串分为两个数组,分别接收头部数组长度为 n尾部数组的长度为 length - n后面就很简单了,循环字节数组分别放到两个数组中最后倒过来拼成字符串即可具体代码class Solution { public String reve

2021-12-13 17:42:24 637

原创 剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格题目题目链接具体思路解题思路具体代码题目题目链接https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/具体思路解题思路这题很简单,大逻辑大家肯定心里都有数解法大概有几种:1.字节匹配替换2.StringBuilder 拼接3.API 库。。。 这里只对字节匹配替换提供一些提示。1.字节匹配,匹配到空格时,替换为 %20,但是 %20 占 3 个字节,因此需要一个新的字节数组进行接收

2021-12-13 17:03:57 235

原创 剑指 Offer 35. 复杂链表的复制

剑指 Offer 35. 复杂链表的复制题目具体思路题目理解解题思路具体代码题目https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof/具体思路题目理解首先要理解题目意思题目要求复制一份新的链表意思链表点节点都必须是新生成的节点,且要求保证链表的关系不变不是让你直接 return head 完事 输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]第一个节点的

2021-12-10 16:18:42 872

原创 剑指 Offer 24. 反转链表

剑指 Offer 24. 反转链表题目具体思路递归法具体思路具体代码辅助栈法具体思路具体代码题目具体思路递归法具体思路创建一个链表对象用于存储新联表的头节点递归找到最后一个节点后开始,依次将节点添加到新链表的尾部具体代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val

2021-12-09 14:41:47 423

原创 剑指 Offer 06. 从尾到头打印链表

剑指 Offer 06. 从尾到头打印链表题目具体思路递归法具体思路具体代码辅助栈法具体思路具体代码题目具体思路递归法具体思路递归找到链表低尾节点,并记录下链表长度。再从尾节点依次加入数组。具体代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * }

2021-12-08 14:31:17 332

原创 剑指 Offer 30. 包含min函数的栈

剑指 Offer 30. 包含min函数的栈题目解体思路题目理解具体思路具体代码题目解体思路题目理解min(): 返回栈中的最小值push(x): 压入一个参数 x 入栈pop(): 弹出栈顶元素并返回top(): 返回栈顶元素 min,push,pop 时间复杂度O(1): 意味着这三个方法中不能进行递归操作,代码执行一次就该获取到数据具体思路准备两个 Stack 栈,一个存储全量数据,一个存储最小值的栈,越接近栈顶,值越小。 push() 时,全量数

2021-12-07 15:47:41 192

原创 剑指 Offer 09. 用两个栈实现队列

剑指 Offer 09. 用两个栈实现队列题目解题思路题目https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/解题思路题目理解:题目本身不难理解,要你用两个栈(Stack)来实现一个队列到添加与删除。知识点:队列:先进后出,队列相当于一个管子,两头都是通的,水从左边进去,从右边出来。栈:先进先出,栈可以理解为一个杯子,只有一头通的,水从杯口进,从杯口出。示例理解:输入:[“CQueue”

2021-12-06 13:51:50 540

原创 TCP 连接中的三次握手与四次挥手

TCP 连接中的三次握手与四次挥手三次握手请求携带参数三次握手四次挥手三次握手请求携带参数SYN: 标志位,表示发起同步seq: 随机生成的序列号,用来进行同步确认校验,这里的值随手写的,用来表明意思ACK: 标志位,表示确认信息有效ack: 这个值为对端发送过来的 seq + 1,对端会根据发送来的 ack 值来校验请求是否正确三次握手建立 TCP 连接时,需要客户端与服务端通过三个包以确认连接的建立。第一次握手: 客户端请求建立连接第二次握手: 服务端针对客户端请求确认应答,并

2021-07-19 10:43:12 449 3

原创 TCP/IP 模型与 OSI 模型对比

TCP/IP 模型与 OSI 模型对比

2021-07-09 10:27:01 266

原创 InnoDB 引擎三大特性

InnoDB 引擎三大特性双写缓冲区(DoubleWrite Buffer)原理为什么要用双写缓冲区?AHI 自适应哈希Buffer Pool双写缓冲区(DoubleWrite Buffer)原理双写缓冲区是 InnoDB 引擎为了保证数据安全性,完整性而开发的双写缓冲区是在系统表空间中InnoDB 引擎会在磁盘上划分出连续的两个区的范围1个区包含64个页,一个页 16k,1个区 = 64x16 = 1024k = 1M因此一个双写缓冲区大小为两个 1M ,共 2M当我们写数据时,InnoD

2021-05-24 11:45:47 1381 3

原创 MySQL MVCC 底层原理总结

MySQL MVCC 底层原理总结什么是 MVCC?原理重要字段版本的组成什么是 ReadView?假如我再次修改,如何增加版本?判断当前数据是否可见的 4 大准则隔离级别如何进行事务控制的读未提交读已提交可重复读串行化什么是 MVCC?全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。每当数据在进行修改操作时,MySQL 会将所有的修改操作串联,形成一种数据的版本链条。根据事务隔离级别的不同,能够访问到的最新数据也不同,以此进行

2021-05-23 18:37:06 320

原创 MySQL 内部执行优化策略总结

MySQL 内部执行优化策略总结前言一、查询优化策略1. ICP 索引条件下推2. MRR 多范围读取优化(批量回表)3. 索引合并(1) Intersection 合并(2) Union 合并(3) Sort-Union 合并二、连接查询优化策略1. Join Buffer 优化三、 MySQL 查询重写1. 条件化简(1) 表达式计算(2) 移除不必要的括号(3) 常量传递(4) 移除没用的条件(5) 常量表检测2. 外连接消除3. IN 子查询优化(1) 物化表(2) 半连接 Semi-Joina.

2021-05-20 17:44:30 478 1

原创 MySQL 中 Innodb 引擎与 MyISAM引擎的差异

2021-05-09 21:43:55 152

原创 Spring 源码解读:IOC 原理之依赖注入,Bean 对象创建,循环依赖问题

Spring 源码解读:IOC 原理之依赖注入,Bean 的创建过程,循环依赖解决尝试获取 getBean获取 Bean name尝试获取单例对象,处理循环依赖假如成功获取到对象检查后返回 Bean 对象假如没获取到对象,双亲向上寻找确实没创建实例,先添加 dependsOn 依赖 Bean创建单例实例创建实例前准备工作先拿到实例的 Class 类尝试通过 AOP 代理返回对象创建实例初步创建实例 BeanWrapperBeanPostProcessor 自定义处理器进行修改设置三级缓存populateBe

2021-04-26 10:48:47 543

原创 Spring 源码解读:IOC 原理之控制反转

Spring 源码解读:IOC 实现原理阅读须知关于 IOC阅读须知买本 Spring 源码的书看!!!重要!!!重要!!!重要!!!Spring 源码阅读时,不要想着从头到尾把逻辑看懂,因为一块代码逻辑可能就设计非常多方面的内容,或者及其的复杂,学会取舍Spring 源码要想自己编译需要 Gradle 或者像我一样开一个普通的 Java 项目,利用那个项目去找代码文件位置看源代码,一定勤写笔记关于 IOC...

2021-04-23 10:21:21 367

原创 JDK8 源码解读:ReentrantLock - 核心方法

JDK8 源码解读:ReentrantLock - 核心方法前言LockSupport非公平锁无参构造函数lock()final void lock()protected final boolean tryAcquire(int acquires)private Node addWaiter(Node mode)final boolean acquireQueued(final Node node, int arg)前言关于变量的说明,请看:JDK8 源码解读:ReentrantLock - 变量与结构

2021-04-01 09:14:20 417

原创 JDK8 源码解读:ReentrantLock - 变量与结构

JDK8 源码解读:ReentrantLock前言ReentrantLock 与 AQS 的关系ReentrantLock 变量sync:同步器AQS 变量head:等待队列头结点tail:等待队列尾结点state:同步状态前言ReentrantLock 的许多具体实现都在 AbstractQueuedSynchronizer 中,因此本应该先阅读 AQS 的源码。但是我在阅读时就发现,由于 AQS 中同时包含独占锁与包容锁的实现,因此直接阅读很多地方很费解,因此我觉得从某种锁入手同步阅读 AQS 效

2021-03-30 14:06:22 307

StencilSet.zip

Flowable Modeler 汉化配置文件 stencilset_bpmn.json 建议先备份原文件,之后替换即可 注意,里面的 stencilset_cmmn.json 没汉化

2019-11-01

Activiti5 下 Activiti Modeler 汉化配置文件 stencilset.json

Activiti5 下 Activiti Modeler 汉化配置文件 stencilset.json 建议先备份原文件,之后替换即可

2019-10-24

ORA-12737 错误所需的 instantclient_19_3.zip(包含 oci + sqlplus)

为解决 navicat连接oracle报错:ORA-12737 Instant Client Light:unsupported server character set ZHS16GBK 错误,而准备的文件

2019-08-06

java mysql 与 sql server 逆向工程

解压缩后直接用 IDEA 之类的开发工具打开即可 包含 mysql 与 sql server 两种逆向工程 通过修改相应配置文件和命令生成实体类和相应sql 附带了完整使用命令

2019-07-05

sql2008数据库的驱动程序 sqljdbc4

用于连接sql2008数据库的驱动程序,jar文件

2019-02-28

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

TA关注的人

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