自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【简述自己理解的设计模式】

简述自己理解的设计模式以下只是自己网上查询出来的资料,自己理解后设计并模拟场景构建的,缺乏书籍和开发经验,如果您有建议,请教教我。抽象工厂模式使用场景:顾客想要去工厂买玩的 或者 放置的东西。顾客去导航,导航根据要求去app工厂 或者 周边工厂。顾客买可以玩的阴阳师app,或者买可以放置的杯子周边。长话短说,上代码:导航import lombok.NoArgsConstructor;/** * Created on 2022-02-22 * 导航 */@NoArgsConstruct

2022-02-22 20:01:13 169

原创 ThreadLocal

ThreadLocal以ThreadLocal为Key,Value为值放入ThreadLocalMap中setpublic void set(T value) { Thread t = Thread.currentThread(); //每一个 ThreadLocalMap map = getMap(t); if (map != null) map.set(this, value); else createMap(t, value

2021-05-07 13:57:21 143

原创 对redo日志与undo日志理解

redo日志(记录执行期间的各种操作IO,应用:宕机数据丢失后,根据操作顺序IO,恢复数据)undo日志(记录一个状态,失败后回滚。应用:快照方式恢复数据)

2021-05-07 13:55:51 174

原创 Redis与数据库一致性问题

三种更新策略:先更新数据库,再更新缓存先删除缓存,再更新数据库先更新数据库,再删除缓存

2021-05-07 13:54:18 125

原创 MySQL InnoDB MMCC**Mutil-Version Concurrency Control)

MySQL InnoDB MMCCMutil-Version Concurrency Control),就是多版本并发控制大概意思就是加入版本号参数,乐观锁实现原理

2021-05-07 13:53:06 132

原创 JUC并发编程学习笔记

开启的三种方式:Thread,Runnable,Callablejava底层调用的本地方法(开启多线程) public synchronized void start() { /** * This method is not invoked for the main method thread or "system" * group threads created/set up by the VM. Any new functionality add

2021-05-07 13:51:22 156

转载 HTTPS 的实现原理

HTTPS 的实现原理大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:① 证书验证阶段浏览器发起 HTTPS 请求服务端返回 HTTPS 证书客户端验证证书是否合法,如果不合法则提示告警② 数据传输阶段1.当证书验证合法后,在本地生成随机数2.通过公

2021-05-07 13:39:07 458

原创 Git

管理多人协同开发项目的技术1.本地版本控制保存在自己的文件中2.集中版本控制SVN所有版本都保留在服务器中3.分布式版本控制Git每个人都拥有全部的代码镜像下载地址:http://npm.taobao.org/mirrors/git-for-windows/常用linux命令...

2021-05-07 13:37:56 83

转载 子类继承父类是否需要重写方法总结

1.父类是普通类,子类是普通类,不用重写父类的方法父类是普通类,子类是抽象类:不用重写父类方法2:抽象类继承:如果父类是抽象类,子类是一个抽象类,父类方法是普通方法:不用重写普通方法如果父类是抽象类,子类是普通类,父类方法是普通方法:不用重写普通方法如果父类是抽象方法,子类是普通类,父类方法为抽象方法:需要重写父类抽象方法如果父类是抽象类,子类是抽象类,父类方法是抽象方法:不用重写父类抽象方法3:父类是接口类继承:如果是一个子接口,则可以扩展父接口的方法如.

2021-05-07 13:36:34 8119

原创 异常

异常分为:运行时异常,编译时异常常见的异常有哪些?​ 空指针异常,数学运算异常,数组索引越界异常,堆栈溢出错误,数据类型转换异常(向下转型),文件未被找到异常(属于输入输出异常IOException)。异常在开发中的自定义实现?先定义一个异常类,继承Exception,写出无参构造与有参构造(参数为String s ,并且里面写出super(s))。在方法的异常处 throw new 自定义异常类(“对这个异常的描述”【eg:“武器数量已达到上限”】);然后方法名后面 throws 自

2021-05-07 12:50:05 95

原创 数据库索引的优缺点

优点:1.快速定位数据位置,避免全部遍历查询2.加快多表联查3.避免了服务器的排序分组,将随机IO变为顺序IO4.创建唯一索引,保证数据表的唯一性缺点:1.索引节点信息需要消耗内存2.修改数据信息后,要维护索引信息3.建库时需要建立和维护索引...

2021-05-07 12:48:47 176

原创 数据库索引的优缺点

数据库索引的优缺点优点:1.快速定位数据位置,避免全部遍历查询2.加快多表联查3.避免了服务器的排序分组,将随机IO变为顺序IO4.创建唯一索引,保证数据表的唯一性缺点:1.索引节点信息需要消耗内存2.修改数据信息后,要维护索引信息3.建库时需要建立和维护索引...

2021-04-14 13:46:40 110

原创 TCP与UDP的区别

TCP与UDP的区别?TCP是面向连接的,UDP是面向无连接的TCP是基于字符流的,UDP是基于数据报的TCP不会丢包,UDP可能会丢包TCP包头复杂,UDP包头简单,只含有源地址,目的地址,数据报长度,和UDP校验和TCP保证数据顺序,UDP不保证数据顺序什么是面向连接,什么是面向无连接?在互通之前,会先建立连接,如TCP三次握手四次挥手...

2021-04-14 12:23:12 149 2

原创 TCP如何实现可靠传输

TCP如何实现可靠传输累计确认首先为了保证顺序性,每个包都有一个 ID。在建立连接的时候会商定起始 ID 是什么,然后按照 ID 一个个发送,为了保证不丢包,需要对发送的包都要进行应答,当然,这个应答不是一个一个来的,而是会应答某个之前的 ID,表示都收到了,这种模式成为累计应答或累计确认。为了记录所有发送的包和接收的包,TCP 需要发送端和接收端分别来缓存这些记录,发送端的缓存里是按照包的 ID 一个个排列,根据处理的情况分成四个部分发送并且确认的发送尚未确认的没有发送等待发送的没有发送并且

2021-04-14 12:21:27 163 2

转载 Redis的五种数据类型

Redis的五种数据类型,(string,list,散列hash,set,sorted set)redis的常见数据类型stringlisthashsetsorted setstring:string是redis种最常用的数据结构,其中key-value也是string类型,尽管redis是由c编写的但是redis没有使用c语言中使用字符数组的字符串表示方式,而是自己开发了一种简单动态字符串SDS[Simple Dynamic String] redis中的SDS是二进制安全的因此不仅可

2021-04-14 12:18:09 136

转载 对称加密和非堆成加密的用法区别

对称加密和非堆成加密的用法区别对称密钥加密(私钥加密) 和 非对称密钥加密(公钥加密)对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。非对称密钥加密,又称公钥加密,它需要使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。(公钥加密,私钥解

2021-04-14 12:14:33 768

原创 Mac地址与IP地址有什么不同

Mac地址与IP地址有什么不同1.长度不同,Mac地址是6个字节,48位。eg:00:50:29:5A:8H:1EIP地址为4个8进制,32位。eg:192.168.0.1(点分十进制格式)2.Mac地址是数据链路层协议中应用的IP地址是网络层应用的(IP地址可根据ARP协议找到Mac地址)3.Mac是生产商规定的IP地址是根据网络拓扑结构规定的...

2021-04-14 12:11:06 405

原创 聚簇索引和非聚簇索引有什么不同

聚簇索引和非聚簇索引有什么不同聚簇索引的叶子节点就是数据节点非聚簇索引的叶子节点仍然是索引节点,不过含有指向对象数据块的指针聚簇索引有回表和覆盖索引非聚簇索引:需要根据地址找对象...

2021-04-14 12:08:14 107

原创 B+树与B树有什么不同

B+树与B树有什么不同B+树非叶子节点不存储data数据,只有叶子节点存储数据B+树叶子节点通过链表指针连接成一个链表(查询数据的时间复杂度为logn,而B树的查询复杂度不固定,取决于key在树中的位置,最好为O1)B+树叶子节点形成链表,所以可以进行范围查询,而B树的ley和data在一起,需要进行局部中序遍历,无法进行范围查找B+可以实现数据分批加载入内存...

2021-04-14 12:07:16 110

原创 区间反转链表

//反转区间链表public ListNode reverseBetween(ListNode head,int m, int n){ return reverseMN(head, m, n);} ListNode afterNode; public ListNode reverseProN(ListNode head,int n){ //递归出口 if (n==1){ afterNode=head.next; .

2021-04-12 19:02:49 87

转载 LRUCache算法实现

package LRUCacheDemo;import java.util.HashMap;/** * @ClassName LRUCacheDemo * @Description * @Version 1.0 */public class LRUCacheDemo { public class Node{ int key,val; Node pre; Node next; public Node(int key,in

2021-04-12 14:09:37 86

原创 TCP为什么要三次握手,为什么要四次挥手

TCP为什么要三次握手,为什么要四次挥手?三次握手,要保证发送端与接受端都做好连接的准备四次挥手,要保证断开连接时数据完整的发送完毕TCP是全双工的为什么连接的时候是三次握手,关闭的时候却是四次握手?但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。为什么TIME_WAIT状态需要经

2021-04-11 23:54:54 168

原创 Spring注入

spring注入接口注入,构造器注入,setter注入接口注入(springboot支持)即注解注入,在持久层,业务逻辑层,控制层的实现类上面分别加上@Repository,@Service,@Controller;在中立的类上加上@Component注解构造器注入bean管理的对象必须实现无参构造,否则不能创建对象。然后在核心配置文件中,配置构造器注入setter注入创建DAO类和属性,提供get,set方法创建Service类,创建DAO类型的成员变量,,提供get,set方法

2021-04-02 19:28:28 244

原创 算法设计与分析5-1 子集和问题

5-1 子集和问题问题描述子集和问题的一个实例为⟨S,t⟩〈S,t〉。其中,S={x1,x2,…,xn}S={x1,x2,…,xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在 S 的一个子集 S1,使得 ∑x∈S1x=c , ∑x∈S1x=c。试设计一个解子集和问题的回溯法。对于给定的正整数的集合 S={x1,x2,…,xn },S={x1,x2,…,xn }和正整数 c,编程计算 S 的一个子集S1,使得∑x∈S1x=c ,∑x∈S1x=c。数据输入:第 1 行有 2 个正整

2020-12-18 00:58:39 948

原创 算法设计与分析N后问题

n后问题问题描述:在nn格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在nn格的棋盘上放置n个皇后,任何2个皇后不放在同一行或 同一列或同一斜线上。解题思想第一个皇后先放第一行第一列2)第二个皇后放在第二行第一列、 然后判断是否ok,如果不oK,继续放在第二列、第三列、依次把所有列都放完,找到一个合适3)继续第三个皇后,还是第一-列,第二列……直到第8个皇后也能放在一 个不冲突的位置,算是找到了一个正确解4)当得到

2020-12-18 00:56:37 766

原创 算法设计与分析4-12 删数问题

4-12 删数问题问题描述给定 n 位正整数 a,去掉其中任意 k≤n 个数字后,剩下的数字按原次序排列组成一个 新的正整数。对于给定的 n 位正整数 a 和正整数 k,设计一个算法找出剩下数字组成的新数 最小的删数方案。对于给定的正整数 a,编程计算删去 k 个数字后得到的最小数。数据输入:第 1 行是 1 个正整数 a。第 2 行是正整数 k。解题思想使用贪心算法,从左到右依次遍历,找到第一次出现的a(k)>a(k+1)依次删除所有的使a(k)>a(k+1)的所有的a(k)

2020-12-18 00:54:54 738

原创 算法设计与分析4-1 会场安排问题

4-1 会场安排问题问题描述假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个 顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小 会场数。)对于给定的 k 个待安排的活动,编程计算使用最少会场的时间表。数据输入:第一行有 1 个正整数 k,表示有 k 个待安排的活动。接下来的 k 行中,每行有 2 个正整数,分别表示 k 个待安排的活动开始时间和结束时间。时间

2020-12-18 00:50:28 1599

原创 操作系统进程线程学习笔记

操作系统进程线程复习一、什么是线程,什么是进程?二、进程控制通过什么方式?关于进程关于线程什么是调度?关于CPU利用率的计算进程的互斥一、什么是线程,什么是进程?线程是CPU调度和分派的基本单位,不拥有系统资源(–线程ID,TCB线程控制块)进程是资源调度的基本单位,拥有系统资源,(PCB进程控制块)二、进程控制通过什么方式?通过操作系统核心态原语实现(原语特点:不可中断),这样的操作叫做原子操作。原语采用开关中断实现【阻塞原语和唤醒原语两两会同时出现】关于进程各进程内存地址空间相互独立

2020-12-18 00:45:09 136

原创 学习线索化二叉树

学习目标:学习线索化二叉树学习时间:2020/12/7——周一学习产出:package DataStructure.Tree.ThreadBinaryTreeDemo;public class ThreadBinaryTreeDemo { public static void main(String[] args) { //测试中序线索二叉树 HeroNode root = new HeroNode(1,"tom"); HeroNod

2020-12-07 22:10:49 76

原创 赫夫曼树与赫夫曼编码的学习

学习目标:赫夫曼树与赫夫曼编码的学习学习时间:2020/12/7——周一学习产出:赫夫曼树package Huffmantree;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class HuffmanTree { public static void main(String[] args) { int arr[] ={13,7,8

2020-12-07 22:08:27 65

转载 经典01背包问题

leecode01背包问题讲解解题思路解题思路背包问题的dp【i】【j】数组可以看作是当遇到第i个物品时候,背包的容量为j,dp【i】【j】代表的就是此刻将背包装满的装法有几种在这个题目中,第i个物品就可以看作第i个硬币coins【i-1】,背包容量j就可以看作需要达到一定数量(amount)的总金额,而dp【i】【j】则是硬币能拼出amount总金额的拼法。分析完dp数组后,就可以套用labuladong大神的完全背包问题模板了,:int dp[N+1][amount+1] //BaseCas

2020-12-03 18:29:05 206

原创 简单8皇后问题的实现

今天有个朋友给我发了两张截图,我一看,哦,原来是左天他遇到8皇后问题了,他说让我给他看看,我说试试就试试递归-回溯法 实现8皇后问题一、什么是8皇后问题?二、事项步骤1.建立一个数组存储棋盘2.然后我们开始着手编写怎么放置Queen3.从我们的伪代码中可以看出我们还需要编写出一个print()方法打印出我们的数组结果,和一个判断judge()方法判断,判断皇后是否冲突4.这里我们输出一下下结果5.肯定有人看到现在还没发现啊,这道题的回溯的思想体现在哪里,其实它在这里6.到此就是简单的8皇后问题;当然这只

2020-11-30 20:41:31 178

原创 Servlet学习笔记[上]

Servlet学习笔记[上]学习目标:学习内容:学习时间:学习产出:Servlet对象的生命周期Java面试题:线程的生命周期包括那几个阶段?UML的简单了解web.xml的小提示学习目标:懂得Servlet的作用和意义学习内容:熟悉Servlet的生命周期学习Servlet需要注意的事项学习时间:2020年11月25,星期三学习产出:Servlet对象的生命周期1.什么是生命周期?一个java对象从最初被船舰到最终被销毁,经历的所有过程2.servlet对象的生命周期谁来管理的?

2020-11-26 12:28:43 89

空空如也

空空如也

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

TA关注的人

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