春招
文章平均质量分 93
Kevin_cai09
无情的bug maker
展开
-
线程池
线程池文章目录线程池一,为什么要有线程池二,线程池的底层原理2.1 顶层Executor接口2.2 内部原理2.3 拒绝策略三,线程池生命周期参考:美团技术团队一,为什么要有线程池首先一个就是管理线程,实现线程复用,减少频繁的创建和销毁线程如果没有一个工具来管理我们的线程,那么在高并发下,当一个请求过来时,我们服务端需要为它分配一个线程,那么就会不断的在服务端创建线程,线程是...原创 2020-04-29 01:54:17 · 183 阅读 · 0 评论 -
java并发(二)synchronized和volatile
文章目录二,synchronized2.1 临界区2.2 竞态条件2.3 synchronized应用及原理2.3.1 synchronized应用2.3.2 synchronized原理Java对象头monitor2.4 synchronized优化2.4.1 轻量级锁2.4.2 重量级锁2.4.3 偏向锁三,volatile3.1 可见性3.2 原子性3.3 有序性3.3.1 指令重排序3.4...原创 2020-03-05 00:40:05 · 226 阅读 · 0 评论 -
java并发(一)进程和线程
一,进程和线程1.1 进程和线程1.1.1 进程程序由指令和数据组成,但这些指令要运行,数据要读写,都必须将指令加载到CPU,数据加载到内存,在指令运行过程中还需要用到磁盘,网络等设备,进程就是用来加载指令,管理内存,和管理IO的当一个程序运行,程序代码从磁盘加载到内存就相当于开启了一个进程进程相当于一个程序的实例1.1.2 线程一个进程中有一到多个线程一个线程就是一个指令流...原创 2020-03-05 00:25:45 · 322 阅读 · 2 评论 -
二叉树和递归
二叉树和递归文章目录二叉树和递归1.二叉树的最大深度2.二叉树的最小深度3.反转二叉树4.相同的树5.完全二叉树的节点个数6.平衡二叉树判断7.路径总和8.路径总和II9.路径总和III10.求根到叶节点数字之和11.二叉搜索树最近公共祖先12.二叉树的最近公共祖先13.二叉搜索树中第k小元素14.删除二叉搜索树中的节点15.将有序数组转为二叉搜索树1.二叉树的最大深度 public...原创 2020-12-31 17:49:08 · 209 阅读 · 0 评论 -
实现自己的ArrayList
实现自己的ArrayList文章目录实现自己的ArrayList一,java标准库的ArrayList1.底层结构2.增删改查3.扩容4.快速失败机制二,自己的ArrayList1.底层结构2.增删改查3.扩容一,java标准库的ArrayList1.底层结构 private static final int DEFAULT_CAPACITY = 10; transient ...原创 2020-02-05 18:01:23 · 174 阅读 · 0 评论 -
leetcode腾讯精选练习题解
文章目录1.两数相加2.寻找两个有序数组的中位数3.最长回文子串4.整数反转5.字符串转为整数6.回文数7.乘最多水的容器8.最长公共前缀9.三数之和10.最接近三数之和11.有效的括号12.合并两个有序链表13.合并K个有序链表14.删除排序数组中的重复项15.搜索旋转排序数组16.字符串相乘17.最大子序和18.全排列19.旋转链表20.不同的路径21.爬楼梯22.子集23.合并两个有序数组2...原创 2020-12-31 17:40:02 · 254 阅读 · 0 评论 -
rabbitmq常见问题
常见问题1.消息如何保证100%投递成功?什么是生产端的可靠投递?保障消息的成功发出保障MQ节点的成功接收发送端收到MQ节点的正确应答完善的消息补偿机制1.消息落库,对消息状态进行打标step1:消息生成后持久化到数据库,msgStatus = ‘sending’step2:生产者发送消息step3:MQ节点收到消息后发送应答step4:生产者接收到消息应答后,更新消...原创 2020-01-29 15:36:40 · 707 阅读 · 0 评论 -
剑指offer题解
文章目录1.数组中的重复数字2.二维数组中的查找3.替换空格6.从尾到头打印链表7.重建二叉树8.二叉树的下一个节点9.双栈实现队列10.斐波那契数列11.旋转数组的最小数字12.矩阵中的路径13.机器人的运动范围14.剪绳子15.二进制中1的个数16.数值的整数次方18.删除链表的重复节点19.正则表达式匹配20.表示数值的字符串21.调整数组顺序使奇数位于偶数前面22.链表中倒数第K个节点23...原创 2020-12-31 17:39:39 · 574 阅读 · 0 评论 -
ThreadLocal源码分析
ThreadLocal源码分析文章目录ThreadLocal源码分析一,基本使用二,get / set / remove方法2.1 get方法2.2 set方法2.3 remove方法三,深入ThreadLocalMap四,执行流程总结五,内存泄漏问题一,基本使用Threadlocal的作用就是,为一个线程保存一个线程本地变量,该变量对该线程全局可知,其他线程无法干扰到该变量简单使用:...原创 2019-12-11 22:27:34 · 233 阅读 · 0 评论 -
并发(JMM综述)
JMM综述文章目录JMM综述一,内存模型产生背景二,内存模型概念2.1JMM组成部分2.2JVM内存操作的并发问题2.3内存交互操作流程三,JMM深入3.1原子性,可见性和有序性3.2happens-before3.3内存屏障3.3重排序四,volatile4.1volatile内存语义4.2volatile特性4.3volatile如何禁止指令重排序五,synchronize六,final一...原创 2019-12-10 14:13:29 · 315 阅读 · 0 评论 -
操作系统(存储管理)
操作系统(存储管理)文章目录操作系统(存储管理)一,多层结构的存储器系统1.1主存1.2磁盘缓存二,程序的装入和链接2.1程序的装入方式2.1.1绝对装入方式2.1.2可重定位装入方式2.1.3动态运行时的转入方式2.2程序的链接2.2.1静态连接2.2.2装入时动态链接2.2.3运行时动态链接三,程序存储空间的分配3.1连续分配存储管理3.1.1单一连续分配3.1.2固定分区分配3.1.3动态...原创 2019-12-10 13:22:16 · 2115 阅读 · 0 评论 -
简单动态规划
动态规划文章目录动态规划1.[打家劫舍](https://leetcode-cn.com/problems/house-robber/)2.[打家劫舍 II](https://leetcode-cn.com/problems/house-robber-ii/)3.[爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)4.[使用最小花费爬楼...原创 2020-12-31 17:49:24 · 212 阅读 · 0 评论 -
JVM(复习)java内存模型
JVM(复习)java内存模型文章目录JVM(复习)java内存模型1,并发编程中两个关键问题2,可见性,原子性和有序性2.1可见性2.2原子性2.3有序性3.内存屏障,指令重排和happens-before3.1内存屏障3.2指令重排序3.3happens-before4.volatile内存语义4.1 volatile特性4.2volatile如何禁止指令重排序5.锁的内存语义java...原创 2019-12-05 20:37:12 · 163 阅读 · 0 评论 -
leetcode股票买卖问题
股票买卖问题本人是大三学生,有问题欢迎及时指出呀文章目录股票买卖问题1.[买卖股票的最佳时机](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/)2.[最佳买卖股票时机含冷冻期](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-...原创 2020-12-31 17:51:08 · 1957 阅读 · 0 评论 -
JVM复习(晚期优化)
JVM复习(晚期优化)文章目录JVM复习(晚期优化)一,晚期(运行期)优化1.三种编译器2.编译器和解释器2.1编译器2.2解释器2.3联系3.编译对象和触发条件3.1基于采样的热点探测3.2基于计数器的热点探测1.方法调用计数器2.回边计数器4.编译优化技术一,晚期(运行期)优化1.三种编译器前端编译器:直接把.java文件转变成.class文件后端运行期编译器(JIT):把字节码转...原创 2019-12-03 16:26:45 · 166 阅读 · 0 评论 -
go常用排序算法
go常用排序算法之前写过一篇用java实现的常用排序算法的博客,可以参考,这次改用go语言实现,一来用来复习下排序算法,二来也可以学习下go语言,java常用排序算法总结一,冒泡排序/**冒泡排序 */func bubbleSort(data []int){ for i := 0;i < len(data) - 1;i++{ for j := 0;j < len...原创 2020-12-31 17:51:24 · 820 阅读 · 0 评论 -
上升或连续最长子序列问题
最长上升子序列我们用dp[i] 表示数组中索引为 i 结尾的子数组的最长上升子序列的长度那么我们要求整体最长子序列就是dp[nums.length - 1]分析子问题dp[nums.length - 1]的子问题就是dp[nums.length - 2],以此类推分析状态转移,怎么由子问题推导得到原问题的最优解题目意思就是要我们求得最长上升子序列的长度,对于子序列跟子数组的...原创 2020-12-31 17:51:36 · 1102 阅读 · 0 评论 -
JVM(复习)类加载机制
JVM(复习)类加载机制文章目录JVM(复习)类加载机制一,类加载阶段二,连接阶段2.1验证2.1.1文件格式验证2.1.2元数据验证2.1.3字节码验证2.1.4符号引用验证2.2准备2.3解析三,初始化阶段3.1关于< clinit>()方法3.2什么时候对类进行初始化四,类加载器4.1类加载器4.2双亲委派模型五,类文件结构5.1.class类文件结构5.1.1魔数和版本号信息...原创 2019-11-29 00:10:26 · 118 阅读 · 0 评论 -
JVM(复习)垃圾收集器和内存分配策略
JVM(复习)垃圾收集器和内存分配策略文章目录JVM(复习)垃圾收集器和内存分配策略一,垃圾回收1.1哪些内存需要回收1.2什么时候回收1.2.1引用计数算法1.2.2可达性分析算法1.3怎样回收1.3.1标记-清除算法1.3.2复制算法1.3.3标记-整理算法1.3.4分代收集算法1.4垃圾收集器二,内存分配一,垃圾回收关于垃圾回收我们需要总结的点有三个:哪些内存需要回收什么时候...原创 2019-11-29 00:09:55 · 103 阅读 · 0 评论 -
JVM(复习)方法调用
JVM(复习)方法调用文章目录JVM(复习)方法调用一,方法重载二,方法重写一,方法重载何为静态类型,何为实际类型? static class GrandFather{ } static class Father extends GrandFather{ } static class Child extends Father{ }...原创 2019-11-29 00:09:05 · 119 阅读 · 0 评论 -
动态规划(字符串各种最长序列,子串等问题)
动态规划(字符串各种最长序列,子串等问题)文章目录动态规划(字符串各种最长序列,子串等问题)1.判断子序列2.最大子序和3.乘积最大子序列4.最长重复子数组5.最长公共子序列6.最长定差子序列7.最长回文子序列8.最长回文子串9.最长上升子序列1.判断子序列 /** * 判断子序列 * @param s * @param t * @return...原创 2020-12-31 17:51:47 · 457 阅读 · 0 评论 -
Redis复习
文章目录Redis复习一,Redis底层数据结构1.String类型2.list类型3.hash字典类型4.跳跃链表5.整数集合6.压缩列表二,redis事务2.1redis中的事务三,缓存雪崩,穿透,击穿1.缓存雪崩场景解决方法2.缓存穿透场景解决方法布隆过滤器原理应用3.缓存击穿场景解决方法四,数据一致性问题为什么是删除缓存,而不是更新缓存?五,redis持久化1.何为持久化?2.redis中...原创 2019-11-25 00:13:45 · 340 阅读 · 0 评论 -
从redis源码看数据结构(四)跳跃链表
笔者大三,最近复习到了redis,如有错误,还请及时指出从redis源码看数据结构(四)跳跃链表文章目录从redis源码看数据结构(四)跳跃链表一,redis中的跳表1.底层结构体二,redis中跳跃链表的操作1.创建跳表2.插入一个节点3.删除节点三,redis中的跳表和普通跳表的区别一,redis中的跳表redis 中的有序集合是由我们之前介绍过的字典加上跳表实现的,字典中保存的数...原创 2019-11-19 22:34:36 · 277 阅读 · 0 评论 -
从redis源码看数据结构(三)哈希表
从redis源码看数据结构(三)哈希表文章目录从redis源码看数据结构(三)哈希表一,redis底层hash字典定义二,字典的相关操作1.初始化字典2.rehash插入键值对rehash过程rehash小结卑微笔者大三,在准备明年的春招,下边是自己的一些复习的笔记,可能有不对的地方,还请社区的大佬能及时指教字典相对于数组,链表来说,是一种较高层次的数据结构,像我们的汉语字典一样,可以通...原创 2019-11-18 23:41:06 · 200 阅读 · 0 评论 -
leetcode字符串专题
字符串专题文章目录字符串专题一,字符串匹配算法暴力匹配BFKMP字符串匹配二,leetcode字符串题解统计词频相关1.赎金信2.字符串中第一个唯一字符3.学生出勤记录字符串反转相关1.反转字符串I2.反转字符串II回文串相关1.验证回文串2.验证回文串II3.最长回文子串4.回文字串一,字符串匹配算法所谓字符串匹配就是给定一个模式串和文本串,判定模式串是否是文本串的一个字串,并返回模式串在...原创 2020-12-31 17:52:00 · 1069 阅读 · 0 评论 -
二分查找专题
二分查找专题文章目录二分查找专题一,简单的二分查找二分查找二分边界查找寻找左侧边界的二分搜索寻找右侧边界的二分搜索二,有序数组中使用二分搜索搜索插入位置在排序数组中查找元素的第一个出现和最后一个出现的位置三,旋转数组搜索旋转排序数组搜索旋转排序数组II寻找旋转排序数组中的最小值寻找旋转排序数组中的最小值II四,其他求平方第一个错误版本一,简单的二分查找二分查找也叫作折半查找,是一种效率较高的...原创 2020-12-31 17:52:09 · 146 阅读 · 0 评论 -
leetcode栈和队列专题
文章目录leetcode栈和队列专题1.栈相关最小栈二叉树遍历二叉树前序遍历二叉树中序遍历二叉树后序遍历逆序栈元素排序栈括号匹配问题验证栈序列2.队列相关设计循环队列3.组合设计栈实现队列队列实现栈leetcode栈和队列专题本人大三,目前在准备明年的春招,有问题欢迎及时指出,希望跟大家一起进步1.栈相关最小栈使用双栈来实现最小栈,其中,一个数据栈保存push的所有数据,一个最小栈...原创 2020-12-31 17:52:21 · 197 阅读 · 0 评论 -
leetcode链表专题
文章目录数据结构复习(链表)前言1.反转链表链表反转I反转前N个节点链表反转II2.环形链表环形链表返回链表中间节点环形链表II3.回文链表回文链表4.相交链表找到两个链表相交的起始节点5.删除节点删除链表中的节点删除链表中的指定节点删除排序链表中的重复元素删除排序链表中的重复元素II删除链表的倒数第N个节点从链表中删除总和为0的连续节点6.链表其他题目链表中的下一个更大的节点两数相加两数相加II...原创 2020-12-31 17:53:06 · 356 阅读 · 0 评论 -
Nginx反向代理和负载均衡(后端复习)
文章目录Nginx反向代理和负载均衡(后端复习)一,Nginx基础1.Nginx简介2.Nginx由来二,Nginx反向代理实现1.正向代理和反向代理2.反向代理实例三,Nginx负载均衡实现1.什么是负载均衡?2. 负载均衡如何选择要转发的后端服务器3.负载均衡算法4.实例Nginx反向代理和负载均衡(后端复习)最近在复习,为明年的春招做准备,欢迎互关呀,共同学习,进步!一,Nginx...原创 2019-11-04 18:04:47 · 275 阅读 · 0 评论 -
MySQL索引原理及其优化
文章目录MySQL索引原理及其优化一,索引原理1.底层数据结构1.为什么使用B+树实现索引?2.索引在MyISAM和innodb中的实现索引在MyISAM的实现索引在innodb中的实现聚集索引和非聚集索引3.哈希索引4.联合索引的B+树如何组织?二,索引优化1.尽量不要出现重复索引2.减少冗余索引3.where子句后边的列索引只能用上1个4.多列索引必须遵循最左匹配原则5.尽量使用覆盖索引6.前...原创 2019-11-02 20:54:25 · 586 阅读 · 0 评论 -
MySQL优化(表结构和系统配置优化)
文章目录MySQL优化(表结构和系统配置优化)一,表结构优化1.选择合适的数据类型2.表的垂直拆分3.表的水平拆分二,系统配置优化1.开启数据库缓存2.操作系统配置优化MySQL优化(表结构和系统配置优化)在前一篇文章中,我总结了关于mysql优化中的sql以及索引的优化,文章见sql以及索引的优化一,表结构优化 对于数据库表的设计,通常需要根据具体的业务流程画出E-R图,确定每个表中...原创 2019-10-31 17:38:47 · 556 阅读 · 0 评论 -
MySQL优化(SQL语句及索引优化)
文章目录MySQL优化(SQL语句及索引优化)一,慢查询日志1.什么是慢查询日志?2.日志内容3.分析SQL执行计划二,SQL优化1.优化count()和Max()2.子查询和关联查询优化3.group by优化4.limit优化三,索引优化MySQL优化(SQL语句及索引优化)最近在复习算法,为明年的春招做准备,欢迎互关呀,共同学习,进步!一,慢查询日志1.什么是慢查询日志?MyS...原创 2019-10-30 23:37:37 · 934 阅读 · 0 评论 -
操作系统(虚拟存储器)
操作系统(虚拟存储器)笔者大三,最近在复习,为明年的春招做准备,欢迎互关呀,共同学习,进步!虚拟存储器实现了内存扩充的功能,但是该扩充不是物理上实际的扩大内存容量,而是从逻辑上实现对内存容量的扩充,让用户感觉到的内存容量比实际内存容量大得多在传统的存储器管理的方式中,他们都要求将一个作业全部装入内存后方能运行,但是这样会出现两种情况:有的作业很大,其所要求的内存空间超过了内存总容...原创 2019-10-28 22:00:27 · 4366 阅读 · 1 评论 -
java中的字符串String
文章目录java中的字符串String1.String类结构2. String数据结构定义3.构造方法4.String常用方法5.String真的不可变吗?java中的字符串String本文只是分析String的基本方法的源码1.String类结构String是一个不可变类,不可被继承,可以被序列化,可以比较大小,是一个有序字符的序列public final class String...原创 2019-10-27 20:32:19 · 211 阅读 · 0 评论 -
从redis源码看数据结构(二)字符串
文章目录从redis源码看数据结构(二)字符串一,redis中的字符串1.基本数据结构2.创建一个字符串3.字符串拼接二,java中的字符串String1.String类结构2. String数据结构定义3.构造方法4.String常用方法5.String真的不可变吗?从redis源码看数据结构(二)字符串作者今年大三,正在准备明年的春招,文章中有写得不对的,希望大家及时指出文章中的错误的地...原创 2019-10-27 20:22:12 · 186 阅读 · 0 评论 -
数据结构 - 跳跃链表
文章目录数据结构 - 跳跃链表一,为什么会有跳表?二,跳表结构三,跳表元素查询四,跳表元素插入五,跳表元素删除六,完整代码数据结构 - 跳跃链表作者今年大三,正在准备明年的春招,文章中有写得不对的,希望大家及时指出文章中的错误的地方,欢迎互粉,大家一起努力!一,为什么会有跳表?以下图片均来自:https://blog.csdn.net/xushiyu1996818/article/d...原创 2020-12-31 17:53:21 · 1294 阅读 · 1 评论 -
从redis源码看数据结构(一)链表
文章目录从redis源码看数据结构(一)链表一,redis数据类型二,redis底层列表实现1.列表底层数据结构2.redis双向链表操作新建链表删除链表添加结点添加头结点添加尾节点在指定节点前或后插入节点删除节点删除给定节点获取节点通过索引获取节点获取迭代器当前节点三,java链表实现1.单链表2.双向链表从redis源码看数据结构(一)链表作者今年大三,正在准备明年的春招,文章中有写得不...原创 2019-10-22 23:08:46 · 375 阅读 · 0 评论 -
回溯专题复习
回溯专题复习最近在复习算法,为明年的春招做准备,欢迎互关呀,共同学习,进步!1.全排列过程分析递归树从递归树中可以看出,题目也要求数字不能重复,所以我们使用一个变量来标识一个数字是否被使用过。如果使用过则跳过使用下一个数字,使用完一个数字后要开始回溯,将访问状态重置自己做题时的分析图,有点丑,自小写字比较难看hhh代码实现 /** * @param...原创 2019-10-21 22:06:30 · 201 阅读 · 0 评论 -
计算机网络专题复习(网络层)
文章目录计算机网络专题复习(网络层)一,网络层概述二,数据交换数据交换方式电路交换报文交换分组交换三,路由转发路由算法路由转发协议内部网关协议RIP:内部网关协议OSPF四,IP协议1.IP地址2.表示方法3,分类4,IP层1.ARP协议2,ICMP协议5,IP首部6,IPV-6计算机网络专题复习(网络层)一,网络层概述作者今年大三,正在准备明年的春招,文章中有写得不对的,希望大家及时指出...原创 2019-10-19 21:54:35 · 1029 阅读 · 0 评论 -
计算机网络专题复习(传输层)
文章目录计算机网络专题复习(传输层)一,传输层概述二,UDP协议1,UDP的主要特点三,TCP协议1,TCP协议特点2,TCP报文段首部格式3,TCP连接管理三次握手四次挥手4,TCP可靠传输1,序号2,确认3,超时重传5,TCP流量和拥塞控制流量控制拥塞控制1,慢开始2,拥塞避免3,快重传和快恢复4,拥塞控制和流量控制联系计算机网络专题复习(传输层)作者今年大三,正在准备明年的春招,文章中...原创 2019-10-18 14:40:24 · 1094 阅读 · 4 评论