自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(148)
  • 收藏
  • 关注

原创 Linux设计与实现——笔记提纲

本文是对于Linux内核设计与实现 (第2版)的笔记和提纲整理第3章:进程管理笔记:1第4章:进程调度笔记:1第5章:系统调用笔记:1

2021-05-02 10:04:33 117

原创 个人博客_笔记总纲

*********************************************************************************************设计模式设计模式复习提纲:https://blog.csdn.net/qq_41157876/article/details/111885174网络通信网络I/O模型:https://blog.csdn.net/qq_41157876/article/details/110505416 计算机网络(TCP.

2020-12-31 14:33:31 308 1

原创 设计模式复习提纲

1. 创建型(5)(1)单例模式 Singleton:https://blog.csdn.net/qq_41157876/article/details/111520172 懒汉,饿汉 三种常用的线程安全:DCL,静态内部类,枚举类 (2,3)工厂模式Factory:https://blog.csdn.net/qq_41157876/article/details/111554105 简单工厂:if...else判断,违反开闭 工厂方法:Product接口,Factory接口(实.

2020-12-29 15:03:31 146 1

原创 Redis复习提纲

第1-7章:数据结构笔记:https://blog.csdn.net/qq_41157876/article/details/108875869数据结构简单动态字符串(SDS) 优点:O(1)获取长度;空间预分配,惰性空间释放 链表 字典 渐进式rehash 跳跃表 整数集合 升级 压缩列表 连锁更新带来的问题 第8章:对象笔记:https://blog.csdn.net/qq_41157876/article/details/108878853

2020-10-27 07:11:00 177

原创 深入理解java虚拟机——笔记提纲

本文是对于深入理解java虚拟机的笔记和提纲整理主要用于复习和知识点快速复习第二章:内存结构笔记:https://blog.csdn.net/qq_41157876/article/details/1071893952.1 内存结构方法区 栈 堆 本地方法栈 程序计数器2.2 直接内存2.3 对象创建过程2.4 对象内存布局第三章:垃圾回收笔记:https://blog.csdn.net/qq_41157876/article/details/10774.

2020-10-22 04:57:18 201

原创 MYSQL复习提纲

本文是对于MySQL技术内幕 InnoDB存储引擎 (第2版)的笔记和提纲整理主要用于复习和知识点快速复习第二章:Innodb存储引擎2.1 Innodb的后台线程Master Thread *1 IO Thread *4+4 Purge Thread(资源清理) *1 Page Cleaner Thread(刷新脏页) *12.2 内存缓冲池 重做日志缓冲 额外的内存池2.3 Checkpoint技术2.4 innodb特性插入缓冲 二次写 自适应哈希.

2020-10-20 07:06:51 292 3

原创 Java并发编程——笔记与总结

JUC并发包结构图1.executor:1.1 ThreadPoolExecutor:https://blog.csdn.net/qq_41157876/article/details/1074499371.2 ScheduledThreadPoolExecutor:1.3 Future和Callable:2. tools工具包

2020-08-11 06:43:21 400

原创 LeetCode刷题,java知识点

python转了java,记录一些刷题的知识点。1.Stackimport java.util.Stack;Stack<Integer> stack = new Stack<Integer>();出栈并返回栈顶元素:stack.pop();入栈:stack.push(int a);更常用 stack.add(int a);查看...

2020-04-10 00:47:14 487 1

原创 Java日志体系概述

jul-java.util.logging到slf4j的桥梁。commons-logging 到slf4j的桥梁。slf4j到jdklog的桥梁,Jdk原生日志框架。commons-logging 到slf4j的桥梁。commons-logging到log4j的桥梁。slf4j到commons-logging的桥梁。Log4j-api是向外提供的接口层。slf4j到logback的桥梁。slf4j到log4j1的桥梁。slf4j到log4j2的桥梁。log4j到slf4j的桥梁。

2024-05-29 11:29:37 802 1

原创 Java stream相关案例记录

现在有List<Person> list1和List<Person> list2,要求把名字相同的归在一起,并对年龄相加。3. 按照每个人的edu属性进行分组,value为这个edu组内的年龄和,返回Map<edu, sumAge>2. 按照每个人的edu属性进行分组,value为每个人的id,返回Map<edu, List<id>>1. 按照每个人的edu属性进行分组,返回Map<edu, List<User>>5. 先分组,再取value的第一个元素,返回Map<edu, User>

2024-05-20 19:39:01 351

原创 雪花算法(Snowflake)

Leaf的snowflake模式采用了Twitter开源的Snowflake算法。snowflake算法是一种划分命名空间来生成ID的一种算法,这种方案把64-bit分别划分成多段,分开来标示时间戳、机器、序列号等。41bit为时间戳,可以表示的时间范围为(1L

2024-05-20 19:00:06 238

原创 《深入理解kafka-核心设计与实践原理》第五章:日志存储

Kafka依赖于文件系统(更底层地来说就是磁盘)来存储和缓存消息(反观RabbitMQ,使用内存作为默认的存储介质,磁盘作为备选介质)日志压缩(Log Compaction):针对每个消息的key进行整合,对于有相同key的不同value值,只保留最后一个版本。总结:v2 版本的消息不仅提供了更多的功能,比如事务、幂等性等,某些情况下还减少了消息的空间占用,总体性能提升很大。来写入消息,即只能在日志文件的尾部追加新的消息,且不允许修改己写入的消息。索引文件的构造:稀疏索引(sparse index)

2024-05-19 13:25:14 191

原创 《深入理解kafka-核心设计与实践原理》第四章:主题和分区

如果broker端配置参数auto.create.topics.enable设置为 true(默认值就是 true),那么当生产者向一个尚未创建的主题发送消息时,会自动创建一个分区数为num.partitions(默认值为1)、副本因子为default.replication.factor(默认值为1)的主题。从0.11.0.0版本开始,Kafka提供了工具类org.apache.kafka.clients.admin.KafkaAdminClient来实现部分Kafka的管理功能,主要有以下几个方法。

2024-05-07 14:48:54 1196

原创 《深入理解kafka-核心设计与实践原理》第三章:消费者

②手动提交:如果遇到复杂的业务场景,很多时候并不是说拉取到消息就算消费完成,需要一系列复杂业务操作(如消息写入数据库、写入本地缓存),这时候可以改成手动提交。KafkaConsumer非线程安全并不意味着我们在消费消息的时候只能以单线程的方式执行,仍可以用多线程的方式运行,提高消费能力。与生产者拦截器对应,通过实现org.apache.kafka.clients.consumer.Consumerlnterceptor接口。负责订阅Kafka中的主题(Topic),并且从订阅的主题上。

2024-05-06 14:47:24 1427

原创 《深入理解kafka》对于实际问题的理解

生产端发送消息后,服务端已经收到消息了,但是假如遇到网络问题,无法获得响应,生产端就无法判断该消息是否成功提交到了 Kafka,而我们一般会配置重试次数,但这样会引发生产端重新发送同一条消息,从而造成消息重复的发送。在客户端实例变化、分区扩容、集群切换等场景会涉及到分区重分配,由于新老客户端感知分配结果不及时,可能出现两台机器短时间消费同一个分区的场景,造成重复消费。可能性分析:由于刷盘是操作系统控制,理论上讲会存在即使kafka写入成功,但由于机器宕机,操作系统未及时刷盘,丢失数据的风险。

2024-05-06 14:17:12 734

原创 《深入理解kafka-核心设计与实践原理》第二章:生产者

整个生产者客户端由两个线程协调运行,这两个线程分别为主线程和Sender线程(发送线程)生产者客户端中一个非常重要的参数,可靠性和吞吐量之前的权衡策略,默认值acks = 1。生产者客户端能发送的消息的最大值,默认1MB。

2024-05-06 11:52:17 942

原创 《深入理解kafka-核心设计与实践原理》第一章:概念

理解:分区 ISR集合中的每个副本都会维护自身的 LEO,而ISR集合中最小的 LEO 即为分区的 HW ,对消费者而言只能消费 HW 之前的消息。总结:kafka通过partition的水平扩展支持高性能,通过replica提升容灾能力。4个broker,3个partition,replica=3(一主两从)

2024-05-06 11:17:32 1275 1

原创 《深入理解kafka-核心设计与实践原理》

主要用于复习和知识点快速复习。

2024-05-06 10:59:05 378 1

原创 《从Paxos到Zookeeper》——第五、六章:经典应用场景

本章不是重点,粗略的介绍了下Zk的应用场景。

2024-05-05 18:30:40 1153 1

原创 《从Paxos到Zookeeper》读书笔记

本文是对于的笔记和提纲整理主要用于复习和知识点梳理。

2024-05-05 18:23:32 576

原创 leetcode刷题记录—二分

给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。示例 1:[3,4]示例 2:[-1,-1]示例 3:[-1,-1]思路:二分两次,一次找最左,一次找最右// first和last分别表示 首次 和 最后 出现的位置//重点,不停向左缩放} else {left = 0;

2024-05-02 16:08:15 1062

原创 leetcode刷题记录—回溯

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为。2 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。思路:用left和right分别记录'('和')'的剩余数量。7 也是一个候选, 7 = 7。,并以列表形式返回。给定一个不含重复数字的数组。中可以使数字和为目标数。

2024-05-02 14:09:52 937

原创 《从Paxos到Zookeeper》——第四、七章:基本概念及原理

Zk为每个ZNode维护了一个叫Stat的数据结构,里面记录了这个ZNode的三个数据版本,分别是version(当前ZNode的版本),cversion(当前ZNode子节点的版本),aversion(当前ZNode的ACL版本)树:ZooKeeper 的数据模型是一个树形结构的文件系统(ZNode Tree),树中的节点被称为 ZNode,每个节点上都可以保存数据,并挂上子节点。Zk为数据节点引入了版本的概念,Zk中version的含义是:对数据节点的数据内容、子节点列表、节点ACL信息的。

2024-04-28 11:32:15 1163

原创 leetcode刷题记录

代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。思路:剩余左括号总数要小于等于右括号。

2024-04-20 22:05:00 224 1

原创 数据库专题——分库分表

先说分库:《高性能MySQL》中提到了两种数据库扩展方式:垂直扩展和水平扩展。前者意味着买更多性能强悍的硬件,但是总会达到扩展的天花板,且成本较高。分库则是后者的一种实现方式。流量瓶颈:主要是写多的场景(读多可以通过读写分离,缓存等方式解决问题),而单集群写在大流量下是易达到瓶颈的。容量瓶颈:数据量大的情况下,单集群磁盘不够存储(尤其对于订单类的业务,即使有归档等手段,也难以支撑一定时间范围内的数据存储)。再说分表。

2024-02-21 20:10:06 1062

原创 Spring常用名词

11. Environment对象

2021-10-06 14:54:56 216

原创 《git官方文档》笔记整理

一. 本地操作(1)git clone// 1. 直接从远程clone,会在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git 文件夹// git clone <url>git clone https://github.com/libgit2/libgit2// 2. 自定义目录名称,与上一条命令相同,但目标目录名变为了 mylibgitgit clone https://github.com/libgit2/libgit2 mylibg

2021-10-04 13:21:33 544

原创 Mybatis技术内幕——第1章:整体架构与模块

1.1 整体架构模块图1.2 接口层(org.apache.ibatis.session)1.3 核心处理层:四大核心组件(org.apache.ibatis.executor)Executor StatementHandler ParameterHandler ResultSetHandler1.4 基础支持层解析器模块(org.apache.ibatis.parsing) 反射模块(org.apache.ibatis.reflection) 类型转换模块(org.apach.

2021-08-27 17:04:35 279

原创 Mybatis技术框架总结[未整理]

本文是对于《Mybatis技术内幕》的笔记和提纲整理主要用于复习和知识点快速复习第一章:整体架构与模块笔记:1.1 整体架构模块图1.2 接口层(org.apache.ibatis.session)1.3 核心处理层:四大核心组件(org.apache.ibatis.executor)Executor StatementHandler ParameterHandler ResultSetHandler1.4 基础支持层 解析器模块(org.apache.iba.

2021-08-27 16:57:04 133

原创 《Maven实战》笔记整理

第一章:Maven简介(1)何为Maven构建工具,依赖管理工具,项目信息管理工具 提供免费的中央仓库 约定优于配置(2)其他构建工具IDE:如Eclipse,Idea Make:最早的构建工具,Makefile的语法 Ant:Another Neat Tool(另一个整洁的工具),最早用来构建Tomcat。与Maven类似,但是不提供依赖管理第二章:Maven的安装和配置(1)安装和配置略(2)配置文件$M2_HOME/conf/settings.xml 全局范

2021-07-26 21:23:50 742 5

原创 Spring相关的接口

BeanFactory接口 Resource接口 ResourceLoader接口 Aware接口 BeanDefinition接口 InitializingBean接口 DisposableBean接口 ImportBeanDefinitionRegistrar接口 ImportSelector接口 AliasRegistry接口 FactoryBean接口 BeanFactoryPostProcessor接口 BeanPostProcessor接口1. BeanFacto.

2021-06-14 18:02:51 1021 1

原创 Spring笔记——笔记总纲

1. Spring入门使用IOC入门 AOP入门2. Spring常用文档3. Spring的接口BeanFactory接口 Resource接口 ResourceLoader接口 Aware接口 BeanDefinition接口 InitializingBean接口 DisposableBean接口 ImportBeanDefinitionRegistrar接口 ImportSelector接口 AliasRegistry接口 FactoryBean接.

2021-06-14 16:59:42 135

原创 Java8——lambda表达式 + stream流

什么是lambda表达式 语法格式 函数式接口 四大内置核心函数式接口 Consumer Supplier Function Predicate 引用 方法引用 构造器引用 数组引用 1. 什么是lambda表达式匿名函数 更紧凑,简洁的代码风格(1)原先的写法——匿名内部类public void test(){ //匿名内部类 Comparator<Integer> comparator = new Comparato.

2021-05-29 12:57:48 368 1

原创 Linux内核设计与实现——第5章:系统调用

与内核通信 什么是系统调用 系统调用存在的意义 API,POSIX和C库 系统调用的实现原理 5.1 与内核通信(1)什么是系统调用概况的说,系统调用就是用户程序和硬件设备之间的桥梁 在Linux中,系统调用是用户空间访问内核的唯一手段(2)系统调用存在的意义用户程序无需知道硬件设备怎么实现的,只需访问系统调用的接口 比如:用户程序通过write()系统调用就可以将数据写入文件,而不必关心文件是在磁盘上还是软盘上,或者其他存储上 保证系统安全和稳定 ...

2021-05-11 23:16:59 167 1

原创 Linux内核设计与实现——第4章:进程调度

多任务 抢占式和非抢占式 Linux的进程调度 2.5的O(1)调度 2.6的 完全公平调度算法(CFS) 策略 4.1 多任务多任务操作系统:多进程并发执行,可以划分为两类非抢占式多任务(cooperative multitasking):由调度程序来决定何时停止一个进程的运行,通常与时间片(timeslice)搭配使用 抢占式多任务(preemptive multitasking):进程一直执行,直到它完成或主动让步,然后处理器切换到另一个进程。绝大多数操作..

2021-05-05 13:56:36 400

原创 Linux内核设计与实现——第3章:进程管理

进程概念 程序/进程/线程 fork()+exec()+exit() 进程的数据结构 进程描述符task_struct thread_info,tast_struct,stack三者关系 pid和tgid 进程状态:五种互斥状态 表示进程亲属关系的成员 进程创建3.1 进程(1)概念程序:代码段 进程:不仅限于执行期的程序,还包括其他资源,如打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间,一个或多个执行线程 线程.

2021-05-02 22:11:17 142

原创 Netty笔记1——网络模型

网络IO模型(BIO, NIO, 多路复用, AIO) Reactor模型 单Reactor单线程 单Reactor多线程 主从Reactor多线程 结论1. 网络模型见笔记:https://blog.csdn.net/qq_41157876/article/details/1105054162. Reactor模型Reactor模型,是指通过一个或多个输入同时传递给服务处理器的服务请求的事件驱动处理模式 Reactor模式也叫Dispatcher模式,即I/O多了复.

2021-04-09 00:34:13 108

原创 数据结构——排序算法

堆排序 快速排序1. 堆排序(1)堆的定义(以最大堆为例):性质1:是一颗完全二叉树(通俗地讲,就是每个结点从左到右依次排列,当中没有空缺) 性质2:每一颗子树(非叶子节点)都满足:左儿子 <自己 & 右儿子 <自己以下图为例,就是一个最大堆:首先满足是一颗完全二叉树,其次每个非叶子节点都满足性质2(2)排序算法通俗地讲,分为3步 1. 每次都从最后一个非叶子节点进行遍历,把整个数组中最大的数给置换到堆顶 2. 把堆顶的树和最后一个节点交换(这...

2021-04-08 22:11:12 86

原创 生产力工具集合

数据库可视化 Navicat PLSQL DataGrip 笔记工具 印象笔记 XMind思维导图 draw.io Typora 搜索工具 Utools Http Postman Linux远程 SecureCRT Xshell Redis Another Redis Desktop Manager

2021-04-07 09:13:23 108

原创 计算机网络面经复习2——HTTP/HTTPS

HTTP/HTTPS1. HTTP vs HTTPS 2. HTTPS详细流程 3. HTTPS1.0 / 1.1 / 2.0 4. 常用状态码 5. GET和POST 6. Request和Response 7. Session和Cookie 8.从输入网址到获得页面的全过程1. HTTP/HTTPS(1)区别:HTTPS多了SSL握手协议,更安全可靠HTTPS:当浏览器访问 HTTPS 通信有效的 Web 网站时,浏览器的地址栏内会出现一个带锁的标记。区别 ..

2021-04-06 22:19:10 337

空空如也

空空如也

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

TA关注的人

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