- 博客(17)
- 收藏
- 关注
原创 MySql索引原理复习-(面向面试编程)
这几天需求还没出,算是研发的空窗期,所以闲来无事,浅复习一下Mysql的索引原理,也是系统性的总结一下索引原理相关的面试知识。(1)id:SELECT识别符。这是SELECT的查询序列号。SIMPLE: 简单SELECT(不使用UNION或子查询)PRIMARY: 最外面的SELECTUNION:UNION中的第二个或后面的SELECT语句DEPENDENT UNION:UNION中的第二个或后面的SELECT语句,取决于外面的查询UNION RESULT:UNION的结果。
2022-09-04 00:17:31 203 1
原创 裁员、结婚、买房、赡养父母.....即将30岁,焦虑扑面而来
大家好,我是春风。不知道你是否有过这样的经历,就是在临近30岁的这几年,可能是28,可能是29,会突然有一天,你就不得不以一个顶梁柱的角色去审视自己。就算此时你还没有结婚,但面对即将不得不结婚的压力,面对已经老去的父母。时间突然就变得紧迫起来,你也突然就不再属于你自己,我们会不自觉的扮演起家庭的依靠,而且还是唯一的依靠。这种压力完全是在自己还没准备的时候就突袭了你。就像我这一周都是在这种压力和焦虑中度过...转存失败重新上传取消我不知道自己为什么会突然一下就想这么多,但年龄就像一个雷管,突然就炸开了赤裸裸的
2022-07-13 22:29:41 738
原创 【数据结构与算法】五、哈希表和链表
大家好,我是春风今天继续刷左神的算法视频,前面刷完了入门的查找和排序算法,也对排序算法做了一些总结。 现在开始刷结构部分,第一个结构是哈希表,然后是链表。哈希表的应用在Java中有现成的map结构,链表更多的是一些解法上的规律。如果哈希表内存储的是基本类型,比如:则内部是值传递,即存储的时候会拷贝当前的值,为一个新的string。如果是对象,则就是存储该对象的地址。链表分单向链表和双向链表,一般在Java中新建一个节点Node类,单向链表,类里包含:双向链表多一个指向前一个的指针:例题:1.
2022-07-05 23:37:07 1502
原创 【数据结构与算法】四、排序算法总结
大家好,我是春风。截止目前,是看左神算法视频的第二周,虽然进度不太快,但还是认真看完了视频,并通过输出文章,做了自己的理解。目前所谓的十大排序除了桶排序外,已全部完结,今天先补一个桶排序,然后就来总结一下所有的排序算法!和冒泡、选择这种基于两个数比较的排序不同,桶排序不是基于两个数比较的排序,而更是像找同类的方式。桶排序可以分为计数排序和基数排序两种当数据量比较小时,且有很多重复数据,就可以使用计数排序,类似于词频统计基数排序就是把每个数字拆分个位数字、十位数字、百位数字...依次按顺序入桶出桶,因为最高位
2022-06-30 21:11:36 227
原创 【数据结构与算法】三、从堆到堆排序,又是一个logN
大家好,我是春风。今天继续学习简单排序之堆排序,其实相对于堆排序,堆结构可能更加重要~堆其实就是一颗完全二叉树,只是堆的左右没有大小关系,我们一般将一个数组可以转化为堆结构。 大根(顶)堆:每个节点左右两个子节点的值都小于等于它自己 小根(顶)堆:每个节点左右两个子节点的值都大于等于它自己heapSize:数组转化为堆的大小,其实也是堆的一个边界大根堆每次插入都插到叶子节点,从左往后插,插进来后,比较新增节点是否大于父节点(根据上面的公式可以很快得到父节点的index),如果比父节点大,则交
2022-06-27 21:17:55 289
原创 【数据结构与算法】二、算法门槛-简单排序与简单查找
大家好,我是春风。算法在我们实际开发中,应用最广的场景就是排序和查找,所以今天总结一下所有入门级别的排序和查找算法,作为算法的入门~什么是算法:时间复杂度:计算次数,只保留最高阶的N,去掉常数项。时间复杂度相同的算法,则看具体的执行时间,常数项操作不一样,最终的计算时间也就不一样。首先是选择排序、冒泡排序、插入排序,这三个排序的时间复杂度都是n^2;然后是归并排序、堆排序选择排序是最直观的排序,就是比较N次,每次找到未排序数组里最小或者最大的数,然后放到已排序末尾。代码:二、冒泡排序冒泡排序就是循
2022-06-23 22:05:06 174
原创 【数据结构与算法】一、位运算
大家好,我是春风。因为之前对于数据结构与算法,都是零零散散的学习,学完之后,发现自己掌握的也不牢靠,所以从今天开始,准备完整的系统性的学习数据结构与算法。(所看视频:左神的数据结构与算法课程)算法追求的就是解决问题的效率,要效率高,就一定要先了解位运算!打印int的二进制数:我们知道Java中int型整数在二进制中是32位,那怎么打印我们这个32位的二进制整数呢?解:循环32次,每次将1左移i位,然后与上整数本身。整型的范围:无符号整数的最大值是:2^32 - 1我们知道有符号整数的范围是-2^31 ~ 2
2022-06-21 21:15:13 564
原创 Java6对synchronized的优化-锁升级过程详细过程
大家好,我是春风。以前我们在复习synchronized的时候,和lock一对比,总说它是一个重量级锁,性能很差,不如lock来的方便,但其实synchronized作为Java中元老级的关键字,很多jdk原始代码都有用到它,因此Java开发团队还是非常中意这个“私生子”的,所以为了给它减重,开发者也早在Java6就为synchronized专门设计了一套优化处理过程。了解锁升级之前,必须先知道Java对象头,正式对象头记录的信息才实现了锁升级过程中的线程判断。Java对象:转存失败重新上传取消Java对象
2022-06-15 21:04:29 321
原创 一文弄懂红黑树!
大家好,我是春风。在经过一周的用上下班坐地铁的时间刷红黑树讲解视频后,我也算是终于弄懂了红黑树这个数据结构的底层原理,也理解了TreeMap的底层源码,原来都是知其然,不知其所以然。今天便记录一下所学笔记~也是对红黑树知识做一个全面的总结。二叉树中每一个节点最多有两个节点,按照从左到右的有序性。二叉树遍历:前驱与后继:前驱与后继的作用:在删除操作中用来替换被删除节点。删除操作:删除操作与红黑树相同,只是红黑树多了变色操作。1. AVL如何实现平衡?通过左旋或者右旋操作2. 为什么有了AVL还要红黑树呢?AV
2022-06-13 22:15:11 185
原创 HashMap中的那些常量,每个都好有道理!
大家好,我是春风。 端午节大家有出去玩吗?是否换个环境,放松下心情?今天是端午节后上班第一天,我接着来填端午前挖下的坑啦,今天来分享一下hash map中的那些常量的设计,理解每个常量为什么这么设计的道理,也算是我们hash map的完结了。首先我们看下hash map中扩容因子的作用在putval()方法的末尾有这样一段代码:这里的++size即添加完元素后,当前hash map中所有元素的数量,而threshold = 扩容因子x容量。上一节我们说过,这里的容量其实是数组table的大小,即我们有多少个
2022-06-11 19:40:32 411
原创 一文弄懂HashMap中所有的位运算,理解HashMap设计的精妙!
大家好,我是春风。hashmap经常会被作为我们面试的热身问题。当你讲完自我介绍,面试官上下翻看着你的简历,余光还瞟一眼你的状态和形象。入定,面试官淡淡的说出:请简单讲一下hashmap?或者你理解的hashMap?其实这种泛泛的问法一般是考验面试者的逻辑能力和表述能力,你是否能有条不紊的讲出hashmap的结构,put大致流程等等,回答时除了流程清晰,我们也可以稍微带一点源码上的理解,来体现我们的深度。当然很多情况下,你自己不体现,那面试官会帮你体现~这就是接下来通常会问的hashmap底层原理了,底层原
2022-06-11 19:39:56 905 1
原创 【LeetCode14种套路】三、广度优先搜索
大家好,我是春风。今天继续学习leetcode套路三:广度优先搜索广度优先搜索即一层一层地进行遍历,每层遍历都以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点。使用场景:求最短/最长路径数据结构:图、树BFS特性:所以针对以上条件,我们需要有如下对策:综上,我们可以得到一个求解BFS问题的模板:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少思路: 看成一颗多叉树求和时的最短路径:第一层的节点是0,然后第二层的节点
2022-06-11 19:39:01 461
原创 【LeetCode14种套路】二、深度优先搜索-网格问题单篇
大家好,我是春风。今天继续学习:LeetCode套路二:深度优先搜索之网格问题单篇一般DFS是在树和图中使用的,但网格的遍历又可以看做是树的延伸,二叉树每一个节点有左右两个子节点,而网格可以认为每一个网格有周围4个网格与之相连岛屿问题是一类典型的网格问题。每个格子中的数字可能是 0 或者 1。我们把数字为 0 的格子看成海洋格子,数字为 1 的格子看成陆地格子,这样相邻的陆地格子就连接成一个岛屿。在这样一个设定下,就出现了各种岛屿问题的变种,包括岛屿的数量、面积、周长等。不过这些问题,基本都可以用 DFS
2022-06-11 19:38:21 525
原创 【LeetCode14种套路】二、深度优先搜索
大家好,我是春风。今天继续学习leetcode套路二:深度优先搜索使用深度优先搜索(DFS)对一个图或者树进行遍历时,每次得到一个新节点时,立即对新节点进行遍历,然后递归回到当前节点。所以一次遍历到的节点都是初始节点可达的,DFS也常用来求解这种可达性问题。例题1. 给定一个数组,求它的全排列2. 省份数量(无向图)有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份
2022-06-11 19:37:18 531
原创 【LeetCode14种套路】一、滑动窗口
大家好,我是春风。今天开始学习leetcode套路一:滑动窗口。求解特点模板leetcode例题 给定一个数组,求大小为K的子数组的最大和 给定一个字符串,求无重复字符的最长子串 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引 给定字符串P、C,求C在P中的最小覆盖子串 给定字符串P,求字符串最长无重复字符的子串 给定字符串S1和S2,判
2022-06-11 19:36:23 437
原创 《架构整洁之道》读书笔记上,所有程序员都应该了解一下架构全貌
Bob大神的《架构整洁之道》读书笔记,这应该是架构设计领域最好的一本启蒙书了!值得所有程序员都通过该书,好好了解一下架构的全貌
2022-06-11 10:39:22 211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人