- 博客(278)
- 资源 (8)
- 收藏
- 关注

原创 【Java学习记录】 目录
这里记录了学习Java基础的过程。列出目录方便从这里直接查找,目前仍然在学习中,博客和目录都会一直更新。【Java学习记录】一 Java中的继承【Java学习记录】二 Java中数组的简单操作【Java学习记录】三 Java中的面向对象内存分析【Java学习记录】四 Java中的垃圾回收【Java学习记录】五 Java中的this关键字【Java学习记录】六 Java中的s...
2019-06-04 12:35:57
570
3
原创 【Linux性能优化】你知道什么是平衡负载么
平均负载提供了一个快速查看系统整体性能的手段,反映了整体的负载情况。具体的,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。但只看平均负载本身,我们并不能直接发现,到底是哪里出现了瓶颈。因为平均负载高有可能是 CPU 密集型进程导致的,还可能是I/O 更繁忙了。
2023-05-28 22:58:05
4199
原创 【leetcode】622 二叉树的最大宽度
给你一棵二叉树的根节点 root ,返回树的 最大宽度。树的 最大宽度 是所有层中最大的 宽度。每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这些 null 节点也计入长度。
2023-05-14 16:02:02
6487
原创 Elasticsearch扫盲篇
在日常的工作和学习中,当我们说想找查询任何的信息的时候,可能第一时间会想到上百度或者谷歌去搜索一下。比如说找一部自己喜欢的电影,或者说找一本喜欢的书,或者找一条感兴趣的新闻。但是百度和谷歌不等于搜索,他们只是我们搜索时使用的工具。搜索,就是在任何场景下,查找你想要的信息。这个时候需要输入一段你要搜索的关键字,然后就期望找到这个关键字相关的信息。ElasticSearch是一款非常强大的、基于Lucene的开源搜索及分析引擎;它是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据。
2023-05-01 22:29:09
11808
5
原创 收藏的一些好用的网站
是一个提供 PowerPoint 模板和图标素材下载的网站。该网站上有大量的 PowerPoint 模板,可供用户根据自己的需要进行选择和下载。此外,该网站还提供了各种类型的图标素材,包括商务、科技、教育、健康等多个领域,可供用户在 PowerPoint 中使用。网站中提供的PPT设计界面好看,风格具有新意,可以直接下载pptx。
2023-04-30 17:29:43
3284
原创 Zookeeper数据模型与Watch机制
ZooKeeper 中的数据模型是一种树形结构,非常像电脑中的文件系统,有一个根文件夹,下面还有很多子文件夹。ZooKeeper 的数据模型也具有一个固定的根节点(/),我们可以在根节点下创建子节点,并在子节点下继续创建下一级节点。ZooKeeper 树中的每一层级用斜杠(/)分隔开,且只能用绝对路径(如“get /work/task1”)的方式查询 ZooKeeper 节点,而不能使用相对路径。
2023-04-21 14:24:04
11094
2
原创 扫码登录,背后是如何实现的?
近年来,随着智能手机和移动支付的普及以及互联网应用的不断更新迭代,扫码登录已经成为了我们日常生活中非常普遍的登录方式。扫码登录能够迅速的成为我们各大网站常用的登录方式一定存在它的原因。但是你知道扫码登录背后的原理么,本文参考了一些优秀的文章,带你一起来了解一下扫码登录是如何实现的。
2023-04-16 10:31:46
16401
1
原创 分布式一致性算法Paxos
分布式一致性是指在分布式系统中,多个节点对同一份数据进行修改或读取时,保证这些操作所产生的结果都是相同的。在实际应用中,由于网络延迟、节点崩溃等因素的存在,可能会导致不同节点的数据副本出现不一致的情况。因此,分布式一致性成为了分布式系统设计中一个非常重要的问题。例如,考虑一个在线购物网站的场景,该网站使用分布式系统处理订单和库存信息。当一个用户下单时,该订单会被写入多个节点的数据库中并同时减少相应商品的库存数量。
2023-04-09 10:44:22
16866
5
原创 常用限流算法指南
限流是一种防止系统被过度请求压垮的算法。简单来说,限流就是对系统中的请求进行数量控制,确保系统可以正常处理每个请求而不会因为流量过大而宕机。
2023-04-01 15:47:48
17269
3
原创 傻傻分不清楚?带你了解设备id
设备ID是指唯一标识一个设备的字符串或数字,它可以用于区别不同的设备并进行跟踪和管理,是一个设备在网络空间中的身份证。它是用来解决如何区分一台设备、一个用户的问题,特别是对于广告投放、个性化推荐、归因领域来说,设备id就是最基本的前提条件。
2023-03-25 16:56:56
16863
原创 万字长文带你吃透Spring是怎样解决循环依赖的
循环依赖其实就是循环引用,也就是一个或多个以上的对象互相持有对方,最终形成闭环,形成一个无限循环的依赖关系。比如 A依赖于A本身(左图),A依赖于B,B也依赖与A(中),A依赖B,B依赖C,C又依赖A(右图)。a.b = b;b.a = a;然而,Spring的循环依赖通常被单独拎出来谈论,也经常在面试中被提及。这是因为 Spring 中对象的创建和管理是由 IOC 控制的,一个对象的创建不仅仅是简单地调用 new,而是经过了一系列 Bean 的生命周期。因此,循环依赖问题也就会随之而来。
2023-03-20 18:49:41
21114
4
原创 Redis和Memcached: 哪个更适合你的应用?
对于大多数的系统服务来说,缓存是提高性能和可伸缩性的关键。一般情况下我们会从Redis和Memcached这两种不同的缓存方案中进行选择,它们各有优缺点。在这篇文章中,我们将探讨Redis和Memcached的区别,以及在哪种情况下应该选择哪种缓存解决方案。
2023-03-17 19:44:40
3409
原创 性能分析利器:火焰图
火焰图(FlameGraph)是是由 Linux 性能优化大师 Brendan Gregg 发明的。通过 perf 等工具分析得到结果,看起来就像是火焰,这也是它的名字的由来。火焰图以一个全局的视野来看待时间分布,它从底部往顶部,列出所有可能导致性能瓶颈的调用栈。火焰图就像是给一个软件系统拍的 X 光照片,可以很自然地把时间和空间两个维度上的信息融合在一张图上,以非常直观的形式展现出来,从而反映系统在性能方面的很多定量的统计规律。
2023-03-07 21:49:18
9185
原创 剖析G1 垃圾回收器
G1最大的特点就是非常重视高吞吐量与软实时性的最佳平衡,它让用户来设定期望最大暂停时间(Stop the word),也就是在垃圾回收时停止所有用户线程的时间,G1垃圾收集器可以预测下次 GC 会导致应用程序暂停多长时间。
2023-03-05 19:29:25
11221
原创 SpringBoot AOP切面编程
AOP就是在某一个类或方法执行前后打个标记,声明在执行到这里之前要先执行什么,执行完这里之后要接着执行什么。
2023-02-22 18:47:45
6640
原创 使用Retrofit 2 请求HTTP
Retrofit是一个基于OkHttp的RESTful HTTP网络请求库,是目前比较流行的HttpClient库之一。
2023-02-18 16:54:31
2033
原创 【Kafka】初识Kafka
例如:Kafka是后端常用的消息队列,将通过《深入理解Kafka核心设计与实践原理》进行学习,本文为第一章的学习笔记。
2022-02-13 16:04:48
1353
原创 【设计模式】策略模式
文章目录策略模式模式动机定义类图实现分析优点缺点使用环境策略模式模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件系统中,有许多算法可以实现某一功能,如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…等条件判断语
2020-08-01 08:57:02
414
原创 【设计模式】 观察者模式
文章目录观察者模式模式动机定义类图例子分析优点缺点实际应用适用场景定义对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖都会收到通知并且自动更新状态。观察者模式模式动机建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。定义定义对象之间的一对多依赖
2020-08-01 08:56:26
526
原创 【设计模式】模板方法模式
文章目录模板方法模式定义类图实现模板方法模式定义只定义算法框架,而将一些步骤的实现延迟到子类。通过模板方法,子类可以重新定义算法的某些步骤,而不用改变算法的结构。类图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gl1rhSCA-1596243318723)(https://camo.githubusercontent.com/b71fede146c0f8d211d29799abb9f94259c0ad7c/68747470733a2f2f63732d6e6f74
2020-08-01 08:55:26
430
原创 【设计模式】适配器模式
文章目录适配器模式定义类图Implementation优点缺点适用环境模式应用适配器模式火鸡冒充鸭子叫。定义把一个类接口转换成另一个用户需要的接口,适配器模式使接口不兼容的那些类可以一起工作。类图适配器模式有对象适配器和类适配器两种实现:对象适配器:类适配器:Implementation鸭子(Duck)和火鸡(Turkey)拥有不同的叫声,Duck 的叫声调用 quack() 方法,而 Turkey 调用 gobble() 方法。要求将 Turkey 的 gobble() 方法适
2020-08-01 08:54:50
338
原创 【设计模式】桥接模式
文章目录桥接模式引入定义类图举例优点缺点模式应用使用环境模式扩展模式扩展总结桥接模式引入设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:第一种设计方案是为每一种形状都提供一套各种颜色的版本。第二种设计方案是根据实际需要对形状和颜色进行组合对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系
2020-08-01 08:54:07
438
原创 【设计模式】装饰模式
文章目录装饰模式模式动机定义类图例子优点缺点适用场景装饰模式模式动机一般有两种方式可以实现给一个类或对象增加行为:继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。关联机制,即将一个类的对象嵌入另一个对象中,作为这个类的一个属性,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为,我们称这个嵌入的对象为装饰器(Decorator)装饰模式以对客户透明的方式
2020-08-01 08:52:42
277
原创 【设计模式】工厂模式
文章目录1. 简单工厂模式定义类图案例简单工厂模式的优点简单工厂模式的缺点适用环境例子2. 工厂方法模式定义类图举例实际应用工厂方法模式的优点工厂方法模式的缺点适用场景3. 抽象工厂模式定义类图Implementation优点缺点适用环境模式应用1. 简单工厂模式定义在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。类图简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。这样做能把客户类和具体子类的实现解耦,客户类不再需
2020-08-01 08:52:07
354
原创 【设计模式】单例模式
文章目录1. 单例模式概念要求实现方式饿汉式1. 使用静态常量实现2. 使用静态代码块实现懒汉式双重检查(较推荐)静态内部类模式(推荐)枚举(推荐)使用场景列举单例模式的应用单例模式的优点单例模式的缺点1. 单例模式概念单例模式就是为了确保一个类当中只有一个实例,并且提供一个全局的公有访问点。通俗的说,当我们需要用到某个对象的实例的时候,我们无需进行其它多余操作,而是直接通过某个接口获取到它的实例,并且这个实例在整个系统中保证唯一。要求这就需要我们满足两点要求:生成的类的实例是唯一的,也就是
2020-08-01 08:50:16
459
原创 【Redis】缓存预热、缓存雪崩和缓存击穿
缓存预热现象:服务器启动后迅速宕机。问题排查请求数量较高主从之间数据吞吐量较大,数据同步操作频度较高解决方案前置准备工作:日常例行统计数据访问记录,统计访问频度较高的热点数据如果热点数据量较大,利用LRU数据删除策略,构建数据留存队列(手工维护或storm+kafka等)启动前准备工作:将统计结果中的数据分类,根据级别,redis优先加载级别较高的热点数据利用分布式多服务器同时进行数据读取,提速数据加载过程实施:使用脚本程序固定触发数据预热过程如果条件允许,使用CDN(内容
2020-07-25 19:43:23
843
原创 【操作系统】4.文件系统和IO子系统
1. 文件系统1.1 文件系统和文件文件系统是操作系统中管理持久性数据的子系统,提供数据存储和访问功能,可以提供组织、检索、读写访问数据功能。在没有文件系统时,我们在计算机上操作的数据无法有效保存,在计算机关机再重启时数据就丢失了。大多数计算机系统都有文件系统,我们常用的谷歌也是一个文件系统,支持分布式应用的数据管理,可以支持系统监控、故障检测、故障容忍和自动恢复,提供很高的可靠性。文件是具有符号名,由字节序列构成的数据项集合。文件是文件系统的基本数据单位文件名是文件的标识符号文件系统的功能
2020-06-28 16:25:52
1207
原创 【操作系统】3.进程管理
文章目录1. 进程和线程1.1 进程的概念进程的特点进程的组成进程与程序的联系进程与程序的区别1.2进程控制块(PCB)PCB的创建和回收进程控制块的内容:1.3 进程生命周期进程创建进程执行进程等待进程抢占进程唤醒进程结束1.4 进程状态变化模型1.5 进程挂起1.6 线程的概念1.7 用户线程与内核线程用户线程:内核线程线程和进程的区别2. 进程控制2.1 进程切换2.2 进程创建2.3 进程加载2.4 进程等待与退出3. CPU调度3.1 CPU调度概念3.2 调度准则3.3 就绪队列调度算法先来先服
2020-06-24 14:29:53
2290
原创 【操作系统】2.内存管理
文章目录0.如何分配物理内存1. 连续内存分配1.1 计算机体系结构和内存分层体系基本硬件结构:操作系统对内存分配做了什么操作系统采用的内存管理方式1.2 地址空间和地址生成1.3 内存碎片和分区的动态分配内存碎片问题分区分配1.4 碎片整理压缩式碎片整理交换式碎片整理2. 非连续内存分配2.1 需求背景非连续内存空间的分配要解决的问题2.2 段式存储管理访问机制2.3 页式存储管理2.4 页表2.5 快表和多级页表2.6 反置页表2.7 段页式存储管理机制3.虚拟存储3.1 需求3.2 覆盖和交换覆盖交换
2020-06-23 10:33:15
880
原创 【操作系统】1.操作系统概述
文章目录操作系统内核的基本功能操作系统的内核特征1. 并发2. 共享3. 虚拟4. 异步计算机体系结构1、 操作系统启动流程1.BIOS部分2.加载操作系统部分2. 中断、异常和系统调用1.为什么需要中断、异常和系统调用2. 中断,异常,系统调用希望解决的问题3. 三者的区别4.系统调用操作系统的内容涵盖操作系统结构、中断及系统及系统调用,内存管理、进程与线程、处理机调度、同步互斥、文件系统和I/O子系统。操作系统内核的基本功能进程管理:进程控制进程同步、进程通信、死锁处理、处理机调度等。内存管理:
2020-06-19 19:52:02
678
原创 ConcurrentHashMap底层详解(图解扩容)(JDK1.8)
数据结构使用数组+链表+红黑树来实现,利用 CAS + synchronized 来保证并发更新的安全源码分析put方法 public V put(K key, V value) { return putVal(key, value, false); } final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw
2020-06-13 23:32:50
30505
30
转载 【数据结构】红黑树
二叉查找树(1)左子树上所有节点的值均小于或等于它的根结点的值。(2)右子树上所有节点的值均大于或等于它的根结点的值。(3)子树也要遵循上面的规则二叉查找树可能出现的问题如果我们在刚刚开始的时候有三个节点,然后依次插入7,6, 5,4。我们看会发生什么情况:这样极端的情况下一个二叉搜索树可能退化成一个链表,在插入和查找的时候效率就会很低。平衡二叉树(AVL)从任何一个节点出发,左右子树深度之差的绝对值不超过1。红黑树红黑树是一种自平衡二叉查找树,它的统计性能要好于平衡二叉树(AVL
2020-06-11 21:47:36
371
Standard-10-20-Cap81.zip
2020-06-02
Standard-10-20-Cap81.ced
2019-10-08
BP-regression.zip
2019-08-05
BCI2000Contrib.exe
2019-07-11
概率机器人(机械工业出版社)
2019-04-15
ros by example v1英文版
2019-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人