- 博客(18)
- 收藏
- 关注
原创 为什么不能用synchronized关键字修饰构造方法
synchronized关键字使用的当前对象作为锁的你在构造方法上使用synchronized这时对象还未产生如何能使用?
2021-12-28 21:17:44
2556
原创 项目报错:class lombok.javac.apt.lombokprocessor (in unnamed module @0x43b1dd26) cannot access class 解决方法
项目报错:class lombok.javac.apt.lombokprocessor (in unnamed module @0x43b1dd26) cannot access class 解决方法我是重新生成了一次.iml文件,导致项目的jdk版本升为最新的16,所以启动一个微服务就会报这个错。在网上查了半天都说要升级lombok的版本对于我来说不管用后来发现是JDK版本不对,我的子项目的版本都是1.8将总项目的JDK版本设置为1.8即可...
2021-12-26 21:52:58
10971
1
原创 leetcode刷题总结 “在数组中找顺序数or逆序数”类问题
581. 最短无序连续子数组三级目录三级目录https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/
2021-09-25 21:11:32
1707
原创 机试刷题 排序算法 代码总结
排序算法(正在更新。。。)堆排序快排堆排序public void heapSort(int[] nums){//大顶堆,用来做升序排序 int len = nums.length; for(int i=len; i>1; i--){ maxHeap(nums,i); swap(nums, 0, i-1); }}public void maxHeap(int[] nums, int realSize){//从最后一个子树开始向前调整 for(int i=realSize/2-1;
2021-08-18 15:51:42
101
原创 152. 乘积最大子数组
152. 乘积最大子数组题目错误解答正确解答代码实现题目给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。错误解答错误在于dp_all这个数组,我用这个数组保存了从头到当前所有数字的连乘,这样做为了保存负数,刚开始没发现错误,但这个错误很明显:保存了负数但是从头开始算起的,对于那些从中间的负数算起的情况不满足了,比如:2,-5,-2,-4,3。最终结果取-2,-4,3。而我的答案是2,-5,-2。class Solutio
2021-08-10 18:51:47
77
原创 146. LRU 缓存机制
146. LRU 缓存机制题目错误思路正确解法代码实现题目设计一个LRU(最近最久未使用)的数据结构,主要有两个操作:put(将新的键值对加入LRU)、get(取出key对应的value)能否在 O(1) 时间复杂度内完成这两种操作?错误思路我刚开始知道实现一个LRU是使用一个哈希表和一个链表。我是这样写的:哈希表保存LRU现有的键值对;链表的头是最近最久未使用,尾是最近使用过的,这样排序的起来的。put操作:如果LRU未满,直接加入链表的尾部,键值对加入哈希表;如果LRU满了,就要淘汰链表
2021-08-06 21:30:15
89
原创 142. 环形链表 II
142. 环形链表 II题目描述我的解答代码实现题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.co
2021-08-05 18:40:55
164
原创 4&5深入浅出索引 - MySQL实战45讲学习笔记
4&5深入浅出索引说到索引,大家肯定都不陌生。比如使用sql查询的时候比较慢,这时我们会考虑给某个字段加上一个索引,存储引擎通过使用索引可以加快搜索的速度。那么,到底什么是索引?索引是如何工作的呢?本章就来讲一讲这些东西。我觉得实战45讲4,5两章的内容比较好理解,内容也不是很多,所以就把这两章合整理出来了。。用最通俗的话形容索引,就是:索引就像是一个目录,能让我们快速找到数据项。比如,大家都很熟悉的InnoDB的索引是B+树,熟悉B+树 的童鞋很容易理解索引的作用,就是为了查询。那么,还
2021-07-30 22:45:14
462
原创 128. 最长连续序列
128. 最长连续序列题目我的理解题目给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-consecutive-sequence
2021-07-29 21:22:16
195
原创 leetcode 114. 二叉树展开为链表
114. 二叉树展开为链表题目我的理解题目给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list我的理解按先序遍历串成链表对于先序遍历的顺序
2021-07-28 21:34:35
108
原创 二叉树先序遍历、中序遍历、后序遍历的非递归解法
二叉树先序遍历、中序遍历、后序遍历的非递归解法中序遍历 非递归先序遍历 非递归后序遍历 非递归这里总结了非递归的不同解法中序遍历 非递归//中序遍历 非递归void inorderTraservel(TreeNode root){ TreeNode p = root; Deque<TreeNode> stack = new LinkedList<>(); while(p != null || !stack.isEmpty()){ whi
2021-07-27 10:59:11
225
原创 3事务隔离:为什么你改了我还看不见 - MySQL实战45讲学习笔记
3.事务隔离:为什么你改了我还看不见隔离性、隔离级别事务隔离的实现“可重复读”事务隔离的实现为什么尽量不要使用长事务?事务的启动方式提到事务,大家肯定不陌生,事务相关最经典的一个例子就是银行转账问题:比如,你的银行卡里有100块,现在你要转账给张三100块,而转账包括这样三个操作:查询余额、做减法、更新余额。那么,在你转给张三100块时,在做减法之前,你又转给自己另一个账户100块,然后两个转账操作都成功了,我们没有花钱就转给了张三100块。这就出现了不一致现象,和正常的结果不一致,银行肯定不会那
2021-07-25 21:16:50
204
原创 2日志系统:一条sql更新语句是如何执行的 - MySQL实战45讲学习笔记
2. 一条sql更新语句是如何执行的一条更新语句是怎样的呢?redo log日志binlog日志学习了两个日志之后,再看看sql更新语句是怎么执行的?两阶段提交先说怎么让数据库恢复到一个月内任一时刻的状态?上面提到的问题:为什么要用两个日志?为什么需要用”两阶段提交“去保证两个日志文件逻辑一致?上一讲介绍了一条sql查询语句是如何执行的,其过程一般是经过连接器、分析器、优化器、执行器,最后使用存储引擎提供的接口获得想要的结果。那么,一条更新语句是怎样的呢?大家都知道,更新语句涉及到写操作,也就是需要
2021-07-19 22:27:49
1875
1
原创 1基础架构:一条sql查询语句是如何执行的 - MySQL实战45讲学习笔记
1. 一条sql查询语句是如何执行的简单介绍一下这个图查询语句怎么执行的1. 首先需要和数据库建立连接2. 连接建立后,本该去缓存查询3. 建立连接后,进入到分析器4. 进入优化器5. 进入执行器此图摘自极客时间丁奇老师的MySQL实战45讲简单介绍一下这个图平时我们使用java去连接数据库时,要使用一个连接池来维护多个数据库连接,我们的一条sql语句通过一个连接发往数据库进行查询。发送sql语句请求的就是我们的客户端,接受请求的就是我们的mysql数据库server层现在开始介绍上图的结构:M
2021-07-19 16:32:57
4849
4
原创 刷题小技能:java实现对二维数组中的一维数组进行排序
刷题小技能:java实现对二维数组中的一维数组进行排序功能描述代码实现功能描述有这样一个二维数组int[][] two = new int[n][2];要对二维数组进行排序,实现对其元素,即其中的一维数组:按照数组第一个元素进行排序;如果第一个元素相等,则按照第二个元素进行排序;以此类推代码实现Arrays.sort(intervals, new Comparator<int[]>(){ @Override public int compare(int[] a1
2021-07-19 10:50:49
523
转载 笑一笑
关于网络分层的原因,实际大部分软件系统都是分层架构,这一切都是为了工程上实现/调试/维护的方便。之前在一个关于为什么Linux为什么还要坚持使用宏内核的问题下我看到一段话非常的有意思。因为Linus可以把这些乱七八糟的东西全都一个人写了,一遍写对了,还能稳定跑起来无bug,而我们这些渣渣做不到,只能依靠保护模式来防止几百个工程师写出来的那一坨垃圾动不动蓝屏,自己弱却去质疑天才的做法,和明知自己弱还要模仿天才的做法,都是认不清现实的表现。工程这个东西是很有意思的,我们说科学是掌握规律,技术是利用规
2020-05-09 22:26:48
153
原创 计算机网络 之 ARP协议的行为举止
什么时候用到ARP协议?当网络层的数据包准备好,并在封装成链路层帧之前,需要知道目的IP地址所对应的MAC地址(以太网),这个时候就需要ARP协议来完成。源主机发送数据包给目的主机的过程中,网络层和数据链路层会发生什么?源主机要发送的数据已经封装到IP数据包中(目的主机IP已知),然后源主机要去他自己的ARP高速缓存中查找目的IP对应的MAC地址,此时会有两种情况:若缓存中有这对映射,...
2020-03-11 15:25:07
228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人