自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

松生的博客

学习记录 https://github.com/LeeSssong。

  • 博客(74)
  • 收藏
  • 关注

原创 Select、Poll、Epoll 详解

从源码到使用。

2020-07-27 16:28:05 967

原创 协程浅析

什么是协程、协程的作用、协程的优缺点。

2020-07-26 21:45:59 338

原创 ReentranReadWriteLock 源码解析

ReadLock、WriteLock 源码解析

2020-07-06 16:12:47 313

原创 SpringBoot构建电商基础秒杀项目

慕课网——SpringBoot构建电商基础秒杀项目第一章 课程介绍第二章 应用SpringBoot完成基础项目搭建2.1 使用IDEA创建maven项目2.2 引入SpringBoot依赖包实现简单的Web项目2.3 Mybatis接入SpringBoot项目2.4 Mybatis自动生成器的使用方式第三章 用户模块开发3.1 使用SpringMVC方式开发用户信息3.2 定义通用的返回对象——返回正确信息3.3 定义通用的返回对象——返回错误信息3.4 定义通用的返回对象——异常处理

2020-06-16 13:27:08 490

转载 面试官,不要再问我三次握手和四次挥手(近万字总结)

三次握手、四次挥手一篇解决!

2020-06-15 22:32:37 543

原创 JVM 内存分配与回收策略那些事

Minor GC、Full GC。

2020-06-13 16:20:14 139

原创 Java 捡垃圾利器

Java 垃圾收集器详解

2020-06-13 16:15:42 378

原创 Java 捡垃圾黑科技

Shenandoah、ZGC

2020-06-13 16:15:19 354

原创 关于 Java 捡垃圾那些事

捡垃圾也要讲究~

2020-06-13 15:56:11 213

原创 Java 运行时区域详解

JVM 基石

2020-06-13 15:43:56 399

原创 深入底层理解 AQS

AQS 部分源码与使用方法解读

2020-06-13 15:34:34 1605 1

原创 synchronized 与 ReentrantLock 的比较与使用

文章目录前置知识synchronized 与 ReentrantLock 比较使用选择ReentrantLock和synchronized使用分析参考资料前置知识源码层次深入理解 ReentrantLocksynchronized 与 ReentrantLock 比较1. 锁的实现synchronized 是 JVM 实现的,而 ReentrantLock 是 JDK 实现的。2. 性能新版本 Java 对 synchronized 进行了很多优化,例如自旋锁等,synchronized 与

2020-06-13 15:23:13 318

原创 源码层次深入理解 ReentrantLock

深入理解 ReentrantLock

2020-06-13 15:18:20 143

原创 synchronized 使用与原理

使用与原理

2020-06-13 15:13:07 211

原创 Class 常量池、String Pool、运行时常量池

令人头大的字符串常量!

2020-06-03 21:41:17 289 2

原创 有备而来——Java容器面试题总结

一文囊括 Java 容器常见面试题。

2020-05-22 15:48:02 527

原创 Java 容器的那些事儿

在学习一个新的事物时,要始终思考四个问题:为什么存在(解决了什么问题)基本原理使用场景和其它技术的对比

2020-05-22 15:39:47 399

原创 有备而来——Java基础面试题全总结

一文囊括绝大多数常见面试题。

2020-05-22 15:15:53 1596

原创 Java 热点基础

热点基础速览

2020-05-22 12:34:45 372

原创 Redis 哨兵与集群

哨兵、集群、主从复制、发布与订阅。

2020-05-17 16:35:14 204

原创 Redis 持久化的一些事

AOF、RDB以及两者的对比。

2020-05-17 16:24:38 193 1

原创 Redis 过期策略与内存淘汰策略总结

键过期与键淘汰。

2020-05-17 16:19:21 228

原创 Redis 中跳表与实现

Redis 中的跳表总览。

2020-05-15 22:48:13 862

转载 Redis 五大数据类型

STRING、HASH、SET、ZSET、LIST。

2020-05-13 12:26:28 253

原创 说说 Redis 中的字典?

Redis 字典知多少?

2020-05-13 12:19:29 421

原创 如何优化MySQL查询?

降低响应时间,减少返回行数,减少扫描行数。

2020-05-11 18:31:09 1853

原创 如何创建一个好的索引?

你真的了解索引吗?

2020-05-10 18:30:37 651

原创 面试必备MySQL知识点

学习数据库知识,这些是必备的基础

2020-05-09 18:56:42 237

原创 Leetcode_#503_下一个更大元素Ⅱ

原题:#503_下一个更大元素Ⅱ使用栈保存尚未发现下一个更大元素的下标使用模运算实现循环,实际上只需遍历一圈,所以将数组虚拟加大一倍使用next数组保存下标对应的下一个更大元素遍历数组,使数组的元素与栈顶的元素相比若栈顶的元素小于当前元素,则弹出栈顶元素(是数组下标),并保存当前元素的值到next数组中public int[] nextGreaterElements(in...

2020-05-07 08:50:17 331

原创 Leetcode_#739_每日温度

原题:#739_每日温度题目翻译:求出数组中元素与下一个比它大的元素之间的距离思路:使用栈存放数组下标遍历数组中的元素并把它放入栈中放入栈前,如果栈不为空,比较当前节点的值与栈中下标对应数组中的值,如果当前的值较大,则说明当前元素为栈顶元素的下一个比它大的值,计算两者下标距离如果当前值不比栈顶的值大,则把当前值的下标入栈public int[] dailyTemp...

2020-05-07 08:48:40 161

原创 Leetcode_#20_有效的括号

原题:#20_有效的括号public boolean isValid (String s) { Stack<Character> stack = new Stack<>(); for (String c : s.toCharArray()) { if (c == '(' || c == '{' || c == '[') { ...

2020-05-07 08:47:54 167

原创 Leetcode_#155_最小栈

原题:#155_最小栈使用两个栈:一个是数据栈,全部数都可以进入一个是最小值栈,每输入一个数时,就与当前的最小值比较若大于当前最小值,则再放入一个当前最小值到最小值栈出栈时,数据栈与最小值栈同步出栈为什么要重复放入最小值?最小值栈可以理解为当前时刻数据栈对应的最小值class MinStack { private Stack<Integer&...

2020-05-07 08:46:55 152

原创 Leetcode_#255_用队列实现栈

原题:#255_用队列实现栈队列入队时会在对尾。让每一次入队的元素都在队首即可做到后进先出每一次入队时,都把队列原有的元素出队,并再次入队class MyStack { private Queue<Integer> queue; public MyStack() { queue = new LinkedList<>();...

2020-05-07 08:45:15 137

原创 Leetcode_#232_用栈实现队列

原题:#232_用栈实现队列栈:先进后出队列:先进先出使用两个栈A,B。进栈时进入A,出栈时先从A出,进入B,再从B出。这时就可以实现先进先出了class MyQueue { private Stack<Integer> in = new Stack<>(); private Stack<Integer> out = new St...

2020-05-07 08:44:21 125

原创 Leetcode_#501_二叉搜索树中的众数

原题:#501_二叉搜索树中的众数二叉搜索树是一个非递减序列,所以只需要比较当前节点与前一节点pre的值即可如果pre不存在,则当前节点为第一个节点,直接将该值放入数组,计数为1如果pre存在如果pre的值等于当前的值,则计数加1如果pre的值不等于当前值,计数置为1计数与已有最值比较如果当前计数大于已有最值,则更新最值,清空数组,添加当前节点的值如果当前计数等于已有...

2020-05-06 15:55:35 145

原创 Leetcode_#530_二叉搜索树的最小绝对值差

原题:#530_二叉搜索树的最小绝对值差思路:二叉搜索树的中序遍历是有序的只需要比较相邻两个节点的值即可private TreeNode preNode = null;private int minDiff = Integer.MAX_VALUE;public int f (TreeNode root) { helper(root); return min...

2020-05-06 15:52:45 224

原创 Leetcode_#653_两数之和Ⅳ-输入BST

原题:#653_两数之和Ⅳ-输入BST解法一:每遍历一个值,都将之与HashSet中的值进行比较若符合x+y=k,则返回true若不符合,则将之存入hashset中,然后去它的左子树和右子树中找public boolean findTarget(TreeNode root, int k) { Set<Integer> set = new HashSet(...

2020-05-06 15:51:11 112

原创 Leetcode_#108_将有序数组转换成二叉搜索树

原题:#108_将有序数组转换成二叉搜索树解题思路根据树的前序遍历+中序遍历可确定一棵树利用二分递归查找数组可得到所有子树的根节点根据树的中序遍历+后序遍历可确定一棵树public TreeNode f (int[] nums) { return helper(nums, 0, nums.length);}public TreeNode helper(in...

2020-05-06 15:49:02 98

原创 Leetcode_#235_二叉搜索树的最近公共祖先

原题:#235_二叉搜索树的最近公共祖先思路如果当前节点的值均大于p,q节点的值,那么p,q节点的最近祖先一定在当前节点的左子树当中。反之则在右子树当中若大于其中一个值,小于另一个值,那么这个点就是p,q最近公共祖先递归public TreeNode LCA(TreeNode root, TreeNode p, TreeNode q) { if (root.val ...

2020-05-06 15:47:04 96

原创 Leetcode_#538_把二叉搜索树转换为累加树

原题:#538_把二叉搜索树转换为累加树关键:二叉搜索树的中序遍历是有序的最大的数更新后还是它本身按照节点值降序遍历所有节点,同时记录我们已经遍历过的节点值的和,并把这个和加到当前节点的值中遍历一个没有遍历过的节点之前,先将大于点值的点都遍历一遍private int sum;public TreeNode convertBST(TreeNode root) { ...

2020-05-06 15:45:01 95

空空如也

空空如也

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

TA关注的人

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