摘要: 直接上代码 import java.util.ArrayList; import java.util.Collections; public class MySort { public static void main(String[] args) { MySort mySort = new MyS 阅读全文
posted @ 2023-03-23 15:21 护发师兄 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 59. 螺旋矩阵 II 这道题困扰了我很久,一些边界值控制比较繁琐,但是偶然发现按照以下方法写,在Leetcode可以AC。 class Solution { public static int[][] generateMatrix(int n) { int num = 1; int x = 0; 阅读全文
posted @ 2022-08-31 16:45 护发师兄 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 1. 全量复制 该模式依靠传输Redis主库的RDB快照到从库 适用环境:主从节点的第一次同步 2. 基于长链接的命令传播 该模式依靠Redis主节点与从节点建立tcp长连接,并不断地传输命令。该过程需要保证各节点之间的一致性,保持一致性是使用了Raft算法 适用环境:主从节点在进行同步之后,进行信 阅读全文
posted @ 2022-07-13 11:50 护发师兄 阅读(195) 评论(0) 推荐(0) 编辑
摘要: docker container update --restart=always XXX 阅读全文
posted @ 2022-07-04 15:16 护发师兄 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 依次打开File/Settings/Editor/File and Code Templates 在Includes选项选择File Header,将以下内容复制进去 /** * TODO 类描述 * @author 你的名字 * @date ${DATE} ${TIME} */ 勾选 Enable 阅读全文
posted @ 2022-06-30 11:28 护发师兄 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 在索引满足最左前缀匹配的时候,将部分不满足逻辑的数据过滤掉,减少回表操作。 比如有如下表格 | ID | 姓名 | 年龄 |性别| | | | | | | 1 | 张三 | 15 | 男 | | 2 | 张四 | 10 | 男 | | 3 | 张五 | 10 | 女 | | 4 | 李四 | 21 阅读全文
posted @ 2022-06-29 17:42 护发师兄 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 方法一:重新生成密钥对 在命令行输入以下命令 ssh-keygen -t rsa -C "替换成你的邮箱" 然后重新将公钥添加到服务器 方法二:配置config文件 到git安装目录下,一般是C:\Program Files\Git\etc\ssh,打开ssh_config文件,添加以下内容 Hos 阅读全文
posted @ 2022-06-29 16:44 护发师兄 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 移除以前docker相关包 ```bash sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker 阅读全文
posted @ 2022-06-29 11:20 护发师兄 阅读(38) 评论(0) 推荐(0) 编辑
摘要: VMware-管理-虚拟机设置-选项-共享文件夹 设置为总是启用 然后添加 共享文件夹是将本机的文件夹共享到VMware虚拟机 共享到虚拟机的目录为/mnt/hgfs 注意:如果重启后共享文件夹消失的话,可以这样处理 查看共享文件夹是否挂载 vmware-hgfsclient 如果看不到共享的文件夹 阅读全文
posted @ 2022-06-29 11:07 护发师兄 阅读(1134) 评论(0) 推荐(0) 编辑
摘要: @Required注解作用于Bean的setter方法上,用于检查一个Bean的属性的值在配置期间是否被赋值 阅读全文
posted @ 2022-06-16 16:52 护发师兄 阅读(288) 评论(0) 推荐(0) 编辑
摘要: Class Loader:类加载器,把类加载到JVM内部的JMM区域 Runtime Data Area: JMM内存空间结构模型 Execution Engine:执行引擎 Native Interface:融合多种开发语言的库,提供接口给执行引擎使用 阅读全文
posted @ 2022-06-16 15:29 护发师兄 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 1. 堆内存区域 当堆内存不足时会抛出java.lang.OutOfMemoryError:Java heap space异常 2. 虚拟机栈和本地方法栈 当递归深度过深时会抛StackOverFlowError异常 当扩展栈空间的失败时会抛出OutOfMemoryError异常 3. 元空间 元空 阅读全文
posted @ 2022-06-15 21:01 护发师兄 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 如何设计一个秒杀系统? 秒杀系统主要是有三个特点高性能、高并发、高可用。 从一次秒杀的流程出发,考虑秒杀系统的三个特点,那么就可以设计一个秒杀系统。 1. 秒杀页面获取 优化方案: 动静分离。将页面的静态资源等部署到Nginx或者CDN,这样可以加快秒杀页面获取。 静态资源合并获取。通过将多个请求合并为单个请求,一次获取多 阅读全文
posted @ 2022-06-06 21:27 护发师兄 阅读(1683) 评论(6) 推荐(3) 编辑
摘要: 1. val 自动识别循环变量类型 本地变量和foreach循环可用。 import java.util.ArrayList; import java.util.HashMap; import lombok.val; public class ValExample { public String e 阅读全文
posted @ 2022-06-06 18:51 护发师兄 阅读(115) 评论(0) 推荐(0) 编辑
摘要: ### E指的是`ElasticSearch` > Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业 阅读全文
posted @ 2022-06-01 21:25 护发师兄 阅读(90) 评论(0) 推荐(0) 编辑
摘要: Cache Aside Pattern(旁路缓存模式) 读:从cache中读取数据,若读取到则直接返回;cache中不存在则去database中读取,然后更新到cache。 写:先更新database然后删除cache中的数据。 缓存一致性 多并发情况下,需要延时双删,否则数据会不一致。 出现不一致 阅读全文
posted @ 2022-06-01 21:07 护发师兄 阅读(146) 评论(0) 推荐(0) 编辑
摘要: MySQL中的分页 MySQL中通过LIMIT关键字可以实现分页,如:(其中0表示开始记录数,10表示返回数据的数量) SELETE * FROM table_name LIMIT 0, 10 MyBatis中的分页 MyBatis中的分页分为物理分页和逻辑分页。 物理分页 物理分页使用数据库中的分 阅读全文
posted @ 2022-05-27 17:43 护发师兄 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1. 脏读 含义:在事务过程中,读到了其它事务为提交的数据。 解决方法:将数据库事务提升到读已提交或以上的隔离级别。 2. 不可重复读 含义:一次事务中,两次读操作中,读出来的数据内容不一致。 解决方法:将数据库事务提升到可重复读或以上的隔离级别。 3. 幻读 含义:一次事务中,两次读操作中,读到的 阅读全文
posted @ 2022-05-27 17:34 护发师兄 阅读(81) 评论(0) 推荐(0) 编辑
摘要: API接口层 规定了一系列接口,能够向外提供接口,对内进行操作。 数据处理层 负责SQL相关处理工作,如:SQL查找、SQL执行、SQL映射等工作。 基础支撑层 提供基础功能支撑,包括连接管理、事务管理、配置加载和缓存处理。 阅读全文
posted @ 2022-05-27 17:20 护发师兄 阅读(33) 评论(0) 推荐(0) 编辑
摘要: SqlSessionFactory SqlSessionFactory是创建SqlSession的工厂,一般使用单例模式,不需要重复创建。 SqlSession SqlSession是直接与数据库直接进行交互的对象,能够执行SQL语句,在使用后应该关闭SqlSession,避免内存泄漏。 每个线程都 阅读全文
posted @ 2022-05-27 17:11 护发师兄 阅读(27) 评论(0) 推荐(0) 编辑
摘要: InnoDB支持事务,MyISAM不支持。InnoDB会将单条语句封装成事务,自动提交。 MyISAM不支持外键。 InnoDB能够使用聚簇索引保存数据。MyISAM只能使用B+树,在叶子节点保存索引数据和文件指针。 MyISAM的锁最细只能是表锁,不支持行锁和间隙锁。 InnoDB必须要拥有主键, 阅读全文
posted @ 2022-05-27 16:55 护发师兄 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 需求分析:分析用户的需求,包括数据、功能和性能需求。 概念结构设计:主要采用E-R模型进行设计,包括画E-R图。 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换,进行关系规范化。 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存储路径。 数据库的实施:包括编程、测 阅读全文
posted @ 2022-05-27 15:52 护发师兄 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Redis中work线程是单线程的。也就是对于业务数据的操作是单线程的。 Redis中存在多线程操作 异步关闭文件 异步将缓冲区冲洗到磁盘文件中 异步删除键值对 Redis是基于内存的,所以cpu不是Redis中主要的瓶颈。若想提升效率,Redis官方建议多开Redis组成集群。 单线程可以避免线程 阅读全文
posted @ 2022-05-27 15:46 护发师兄 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 简介:Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 功能:使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建 阅读全文
posted @ 2022-05-20 15:16 护发师兄 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 本项目gitee地址 一、 环境搭建 1. 虚拟机安装 1.1 安装 Vmware,并在其基础上安装 CentOS7 2. 安装Docker 2.1 安装Docker参考我的博文 Docker搭建大数据集群 2.2 docker 容器开机自启 (可选 always、no) docker update 阅读全文
posted @ 2022-04-24 20:29 护发师兄 阅读(627) 评论(0) 推荐(0) 编辑
摘要: MySQL - 锁的分类 1. 加锁机制 乐观锁 悲观锁 2. 兼容性 共享锁 排他锁 3. 锁粒度 表锁 页锁 行锁 4. 锁模式 记录锁(record-lock) 间隙锁(gap-lock) next-key-lock 意向锁 插入意向锁 阅读全文
posted @ 2022-04-14 17:21 护发师兄 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 一个问题是该用递推、贪心、搜索还是动态规划,完全是由这个问题本身阶段间状态的转移方式决定的! 每个阶段只有一个状态->递推; 每个阶段的最优状态都是由上一个阶段的最优状态得到的->贪心; 每个阶段的最优状态是由之前所有阶段的状态的组合得到的->搜索; 每个阶段的最优状态可以从之前某个阶段的某个或某些 阅读全文
posted @ 2022-04-14 13:02 护发师兄 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 应用层 - 负责给应用程序提供统一的接口 表示层 - 负责把数据的解压缩和编码 会话层 - 负责会话的管理(建立和终止) 传输层 - 负责端到端的数据传输 网络层 - 负责数据的路由、转发、分片 数据链路层 - 负责数据的封帧、差错检测和MAC寻址 物理层 - 负责在物理网络中传输数据帧 阅读全文
posted @ 2022-03-29 20:44 护发师兄 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一般来说是根据 DDD ( Domain Drive Design )领域驱动设计 来划分微服务。首先思考用户需求,然后将用户需求转换成产品的需求。通过产品的需求可以逐渐讨论实际的业务边界,进而设计出领域模型。然后就可以根据领域模型进行实际的代码开发。 阅读全文
posted @ 2022-03-25 15:06 护发师兄 阅读(261) 评论(0) 推荐(0) 编辑
摘要: ## 1. 强引用 new 一个对象的时候,就是强引用 ```java Object object = new Object(); ``` 只要强引用存在,垃圾回收就不会回收该对象,内存不足时会抛出OOM。 ## 2. 软引用 定义:非必须,但仍有用的对象。内存不足时才会回收。 软引用的使用 ``` 阅读全文
posted @ 2022-03-15 16:46 护发师兄 阅读(327) 评论(0) 推荐(0) 编辑
摘要: Java - volatile 1. volatile的特性 可见性。对于 volatile 变量的读和写,任意线程总是能够看到该volatile变量最新的值。 原子性。对于 volatile 变量的读和写操作具有原子性。(复合操作除外,如:num++)。 2. volatile的内存语义 当写一个 阅读全文
posted @ 2022-03-15 16:24 护发师兄 阅读(44) 评论(0) 推荐(0) 编辑
摘要: Java - happens-before JSR-133对 happens-before 关系的定义如下: 如果一个操作 happens-before 另一个操作,那么第一个操作的执行结果将对第二个操作可见,而且第一个操作的执行顺序排在第二个操作之前。 两个操作之间存在 happens-befor 阅读全文
posted @ 2022-03-15 16:15 护发师兄 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 计算机网络 - 三次握手、四次挥手 都是四次挥手关闭链接时候的状态。 TIME_WAIT是主动关闭形成的。 CLOSE_WAIT是被动关闭形成的。 三次握手 四次挥手 阅读全文
posted @ 2022-03-15 16:06 护发师兄 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 消息队列 - 如何保证消息的顺序 拆分多个 queue,每个 queue 一个 consumer,就能确保消息的顺序。 阅读全文
posted @ 2022-03-15 12:51 护发师兄 阅读(93) 评论(0) 推荐(0) 编辑
摘要: Redis - Redlock算法 在Redis的分布式环境中,我们假设有N个Redis master。这些节点完全互相独立,不存在主从复制或者其他集群协调机制。之前我们已经描述了在Redis单实例下怎么安全地获取和释放锁。我们确保将在每(N)个实例上使用此方法获取和释放锁。在这个样例中,我们假设有 阅读全文
posted @ 2022-03-13 22:07 护发师兄 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 计算机网络 - 断点续传原理 由客户端告诉服务器已经下载的大小,然后服务器会将指针移动到相应的位置,继续读出,把文件返回给客户端。 阅读全文
posted @ 2022-03-13 15:16 护发师兄 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 计算机网络 - HTTP和HTTPS的区别 http所有传输的内容都是明文,并且客户端和服务器端都无法验证对方的身份。 https具有安全性的ssl加密传输协议,加密采用对称加密。 https协议需要到ca申请证书,一般免费证书很少,需要交费。 可以将HTTPS协议简单理解为HTTP协议+TLS/S 阅读全文
posted @ 2022-03-13 15:12 护发师兄 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 操作系统 - 页面置换算法 当发生缺页中断时,如果当前内存中并没有空闲的页面,操作系统就必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。用来选择淘汰哪一页的规则叫做页面置换算法,我们可以把页面置换算法看成是淘汰页面的规则。 OPT 页面置换算法(最佳页面置换算法) :最佳(Opti 阅读全文
posted @ 2022-03-12 12:36 护发师兄 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 操作系统 - 进程的调度算法 先到先服务(FCFS)调度算法 : 从就绪队列中选择一个最先进入该队列的进程为之分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时再重新调度。 短作业优先(SJF)的调度算法 : 从就绪队列中选出一个估计运行时间最短的进程为之分配资源,使它立 阅读全文
posted @ 2022-03-12 12:35 护发师兄 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 操作系统 - 进程间的通信方式 管道/匿名管道(Pipes) :用于具有亲缘关系的父子进程间或者兄弟进程之间的通信。 有名管道(Names Pipes) : 匿名管道由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道。有名管道严格遵循先进先出(first in first 阅读全文
posted @ 2022-03-12 12:35 护发师兄 阅读(191) 评论(0) 推荐(0) 编辑