自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一切都是最好的安排

记录学习的过程

  • 博客(87)
  • 收藏
  • 关注

原创 高频反转链表

2021-06-04 15:01:01 188 1

原创 删除链表中结点

保留重复节点不保留 重复节点 递归迭代

2021-06-04 14:47:08 172

原创 合并两个有序链表剑指offer25题

递归法迭代法

2021-06-03 17:24:42 187

原创 链表中倒数第 K 个结点

剑指offer 22题

2021-06-03 17:22:15 114

原创 牛客高频 判断链表是否有环 链表中环的入口节点

23 求环的入口节点在链表头结点和相遇节点分别放置一个指针,每走一步两个指针在入口环节点处相遇a=(n-1)r+(L-a-x)

2021-06-03 15:02:17 62

原创 剑指offer2替换空格

替换空格:法二 csnotes 双指针import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ public String replaceSpace (String s) { StringBu

2021-06-03 14:03:18 73

原创 剑指offer从尾到头打印链表 3题

2021-06-02 16:26:39 56

原创 剑指offer(3)数组中重复的数字

法一:哈希表法二:原地置换将值为i的元素调整到第i个位置进行求解public class Solution { // Parameters: // numbers: an array of integers // length: the length of array numbers // duplication: (Output) the duplicated number in the array number,length.

2021-06-02 15:23:07 54

原创 project 秒杀(一)

一、Spring Boot环境搭建Spring MCV 需要大量的配置 理念0配置con调service,service调dao

2021-06-02 15:02:17 99

原创 内部类匿名内部类总结

https://blog.csdn.net/gafeng123456/article/details/50679642局部内部类https://blog.csdn.net/qq_34944851/article/details/51449420?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-4&spm=1001.2101.3001.4242

2021-05-29 09:59:05 75

原创 快速排序 持续更新

参考博客:https://blog.csdn.net/liuensong/article/details/20449571class Solution { public int[] getLeastNumbers(int[] arr, int k) { quickSort(arr, 0, arr.length - 1); return Arrays.copyOf(arr, k); } private void quickSort(int[] arr

2021-05-25 21:22:53 59

原创 Java IO常见面试题

请你说一下Java中的IO流?以及他们的分类和作用?按照数据流的方向的不同,可以分为输入流和输出流;按照处理数据单位的不同,可以划分为字节流和字符流;按照流的实现功能的不同,可以划分为节点流和处理流;Java Io流共涉及40多个类,这40多个类都是从如下4个抽象类基类中派生出来的:InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。转换流实现字节流

2021-05-25 19:29:35 579

原创 java基础 接口与抽象类

抽象类用abstract关键字修饰,抽象类与普通类的最大区别,抽象类不能被实例化,需要继承抽象类才能实例化子类。如果一个类中包含抽象方法,那么这个类必须声明为抽象类注意:abstarct不能修饰属性和构造器,也不能修饰私有方法、静态方法、final方法接口接口用interface关键字修饰,是抽象类的延伸,在java开发中,接口通常让类去实现implement的方式去使用,jdk8之前可以看成是一个完全抽象的类注意事项 :jdk7及以前:只能定义全局常量(public static final

2021-05-25 09:54:10 53

原创 值传递

Java 的参数是以值传递的形式传入方法中,而不是引用传递。在将一个参数传入一个方法时,本质上是将对象的 地址以值的方式传递到形参中。因此在方法中使指针引用其它对象,那么这两个指针此时指向的是完全不同的对象, 在一方改变其所指向对象的内容时对另一方没有影响java语言的方法调用只支持参数的值传递,当一个对象实例作为一个参数传递到方法时,参数的值就是该对象的引用。对象的属性可以在调用过程中被改变,但是对象引用的改变是不会影响到调用者的。...

2021-05-24 20:09:58 70

原创 互联网数据库面试持续更新。。。。

知识整理持续更新基础知识简述数据库三大范式第一范式:最基本的范式,列表字段不可分第二范式:关系模式必须满足第一范式,有主键且非主键依赖主键第三范式:关系模式满足第二范式 所有非主键字段不能相互依赖存储引擎innoDB 和 myisam 的区别innodb支持事务、外键,myisam不支持事务、外键。InnoDB支持行锁,myisam支持表锁,每次更新增加删除都会锁住表。InnoDB只缓存索引,不缓存真实数据,myisam支不仅缓存索引也缓存真实数据,对内存要求性高,而且内存大

2021-05-24 18:50:27 130

原创 MyBatis框架 小白也能看懂

什么是MyBatis框架?MyBatis是一个优秀的基于Java的持久层框架,内部封装了jdbc,开发者仅需关注sql语句本身,不需要花更多的精力去处理加载驱动、创建连接、创建statement等繁杂的过程。MyBatis通过注解或xml配置的方式将需要执行的statement配置起来,并通过Java对象和statement中sql的动态参数进行映射生成最终需要执行的sql语句,最后由Mybatis框架执行sql语句并将结果映射为Java对象并返回。Mybatis采用 ORM思想决了实体类和数据库映

2021-05-24 17:32:49 241 2

原创 SpringBoot持续更新

pom.xmlApplication.java@SpringBootApplication 标注在某个类上,表明这个类是SpringBoot的主配置类HelloController.java首先,在IDEA中开发Springboot应用和Eclipse里面一样,本质上都是一个maven 项目。 但是呢,IDEA 本身自带对SpringBoot支持的插件,不像Eclipse那样,要用插件还需要从第三方安装, 而且很缓慢 (国外插件源)。 所以使用IDEA自带的 SpringBoot插件来开发。S.

2021-05-23 18:24:59 510 1

原创 Redis 缓存雪崩、缓存击穿、缓存污染及避免

缓存击穿(缓存失效)缓存击穿是指缓存中没有****但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。解决办法:热点数据不过期。直接将缓存设置为不过期,然后由定时任务去异步加载数据,更新缓存。 这种方式适用于比较极端的场景,例如流量特别特别大的场景,使用时需要考虑业务能接受数据不一致的时间,还有就是异常情况的处理。加互斥锁 在并发的多个请求中,只有第一个请求线程能拿到锁并执行数据库查询操作,其他的线程

2021-05-19 13:17:19 161

原创 Redis(八)哨兵机制

哨兵机制下面是典型的哨兵集群监控的逻辑图哨兵机制实现的功能其中监控和自动故障转移功能,使得哨兵可以及时发现主节点故障并完成转移而配置提供者和通知功能,则需要在客户端的交互中才能体现哨兵集群的组建哨兵监控Redis库 怎么监控?这是由哨兵向主库发送 INFO 命令来完成的。就像上图所示,哨兵 2 给主库发送 INFO 命令,主库接受到这个命令后,就会把从库列表返回给哨兵。接着,哨兵就可以根据从库列表中的连接信息,和每个从库建立连接,并在这个连接上持续地对从库进行监控。哨兵 1 和 3

2021-05-19 11:35:07 273

原创 Redis(七) 消息传递 发布订阅模式详解

什么是Redis发布订阅Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis有哪两种发布/订阅模式Redis有两种发布/订阅模式:基于频道(Channel)的发布/订阅基于模式(pattern)的发布/订阅基于基于频道(Channel)的发布/订阅、基于模式(pattern)的发布/订阅如果有某个/某些模式和这个频道匹配的话,那么所有订阅这个/这些频道的客户端也同样会收到信息。...

2021-05-19 11:04:34 165

原创 Redis(六)主从复制

什么是主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。主从库之间采用的是读写分离的方式。读操作:主库、从库都可以接收;写操作:首先到主库执行,然后,主库将写操作同步给从库。主从复制的作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。负

2021-05-19 10:50:00 93

原创 Redis(六)Redis事务

什么是Redis事务Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令Redis 事务相关命令有哪些MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令MULTI :开启事务,redis会将后续的命令逐个放入队列中,然后使用EXE

2021-05-19 09:47:27 103

原创 Redist(四)设置过期时间 内存淘汰机制

什么是tokenToken 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位如果你设置了一批key只能活一个小时,接下来的1小时后,redis怎么对这批key进行删除...

2021-05-19 09:29:00 103

原创 Redis学习(二)数据类型和数据结构

面试问题汇总redis有哪些数据类型 redis数据类型有哪些命令 谈谈redis的对象机制(redisObject) redis数据类型有哪些底层数据结构 为什么要设计sds? 一个字符串类型的值能存储最大容量是多少?512M 为什么会设计Stream Stream用在什么样场景 消息ID的设计是否考虑了时间回拨的问题参考博客 特别鸣谢https://pdai.tech/md/db/nosql-redis/db-redis-z-mianshi.html...

2021-05-18 21:51:21 128 1

原创 Redis入门(一) 为什么用Redis

什么是redis,为什么要使用它redis一般有哪些使用场景redis为什么快https://note.youdao.com/ynoteshare1/index.html?id=482b79e266de97c20d0bd1125b15dbab&type=note什么是Redisredis :REmote DIctionary Server(远程字典服务器)redis 是完全开源免费的,用c语言编写的一个高性能(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSql.

2021-05-18 19:54:36 130

原创 两台计算机如何通信

通过网络通信的五层模型讲解一台计算机是如何找到另外一台计算机,并且把数据发送给另一台计算机首先看一下 网络的5层模型物理层一台计算机于另一台就算计通信,第一件事是把这台计算机与另一台计算机连接起来,这样才能把数据传输过去连接的介质:电缆、双绞线、光纤物理层作用:负责把两台计算机连接起来,然后在计算机之间通过高低电频来传送0,1这样的电信号数据链路层于是有了以太网协议以太网协议以太网协议规定一组电信号构成一个数据包,将这个数据包称为帧每一个帧有标头(head)和数据(data)两部

2021-05-17 10:01:00 2103 2

原创 Spring MVC 客户端跳转

什么是客户端跳转访问页面http://127.0.0.1:8080/springmvc/jump结果客户端跳转到了127.0.0.1:8080/springmvc/hello-修改HelloController使用redirect:/hello就表示跳转到/hello这个路径重启服务器,在地址栏中输入:localhost/jump就会自动跳转到hello路径下也可以这样用:@RequestMapping("/jump")public String jump() { retur

2021-05-16 18:35:08 78

原创 Spring (三)视图定位

我们将我们的 JSP 文件配置在【WEB-INF】文件夹中的【page】文件夹下【WEB-INF】是 Java Web 中默认的安全目录,是不允许用户直接访问的想要直接访问的是WEB-INF】文件夹中的【page】文件夹下的.jsp文件第一步配置视图解析器,修改 dispatcher-servlet.xml增加:<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewR

2021-05-16 18:07:36 110

原创 Spring MVC 第一个HelloWorld程序

@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。参看文章https://www.jianshu.com/p/91a2d0a1e45ahttps://www.jianshu.com/p/f39a7949957aSpring MVC面试题...

2021-05-16 17:36:48 239 1

原创 Spring MVC

Spring MVC一般把后端项目分为Service层(处理业务),Dao层(数据库操作),Entity层(实体类)、Controller(控制层 返回数据给前台页面)参考https://www.cnblogs.com/xiaoxi/p/6164383.html

2021-05-15 11:50:29 66

原创 Redis——缓存穿透

缓存穿透缓存穿透就是大量请求的key根本不存在于缓存中,导致请求直接到了数据库中,根本没有经过缓存这一层我们经常会把一部分数据放在Redis中缓存,比如文章详情。这样有查询请求进来,我们可以根据文章Id直接去缓存中取数据,而不用读取数据库,这是提升性能最简单,最普遍,也是最有效的做法。一般的查询请求流程是这样的:先查缓存(有缓存的话直接返回)-> 如果缓存中没有,再去数据库查询(把数据库取出来的数据放入缓存)-> 返回数据。问题:如果现在有大量的请求进来,而且都在请求一个不存在的文章i

2021-05-14 21:24:17 334 7

原创 Redis(五)持久化机制

在学习之前学习几个问题:Redis 的持久化机制是什么?各自的优缺点?一般怎么用? Redis 过期键的删除策略有哪些 Redis 内存淘汰算法有哪些 Redis的内存用完了会发生什么?如果达到设置的上限,Redis的写命令会返回错误信息(但是读命令还可以正常返回。)或者你可以配置内存淘汰机制,当Redis达到内存上限时会冲刷掉旧的内容。 Redis如何做内存优化? Redis key 的过期时间和永久有效分别怎么设置? EXPIRE 和 PERSIST 命令 Redis 中的管道有什么用? 一次请求/

2021-05-14 17:05:00 201 2

原创 Spring框架——AOP

Spring的核心部分:IOC:控制翻转,把创建对象过程和对象之间的调用过程交给Spring进行管理,为了降低耦合度AOP:面向切面,不修改源代码,进行功能增强。AOP简介OOP:面向对象编程,数据封装,继承和多态AOP:把系统分解不同的关注点,或者称之为切面通俗的说,就是不通过修改源代码的方式,在主干功能里面添加新功能。AOP相关术语Aspect:切面,即一个横跨多个核心逻辑的功能,或者称之为系统关注点;切入点:知道对哪个类里面的哪个方法进行增强execution([权限修饰符]

2021-05-12 18:50:51 114 2

原创 Spring框架——IOC

Spring是轻量级的开源的JavaEE框架,可以解决企业应用开发的复杂性Spring有两个核心部分 :IOC和AOPIOC:(依赖注入——降低耦合度)控制反转 把创建对象过程交给Spring进行管理AOP:面向切面,不修改源代码进行功能增强dao层主要做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此service层主要负责业务模块的应用逻辑应用设计Controller层负责具体的业务模块流程的控制 ,在此层要调用service层的接口来控制业务流程Spring的核心就是提供了一个

2021-05-12 16:31:09 593 2

原创 计算机网络面试

TCP和UDP分别对应的常见应用层协议TCP对应的应用层协议FTP:定义了文件传输协议,使用21端口。常说某某计算机开了FTP服务便是启动了文件传输服务。下载文件,上传主页,都要用到FTP服务。Telnet:它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。如以前的BBS是-纯字符界面的,支持BBS的服务器将23端口打开,对外提供服务。SMTP:定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。如常见的

2021-05-10 20:15:02 61

转载 计算机网络面试(六)HTTPS HTTP和HTTPS的区别

参考网址:https://www.cnblogs.com/l199616j/p/11195667.htmlhttps参考网址:https://zhuanlan.zhihu.com/p/57142784非常好:https://segmentfault.com/a/1190000018992153https://www.cnblogs.com/xiaonian8/p/13761230.html大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用

2021-05-10 20:09:48 277

原创 计算机网络面试(五)Cookie与Session

如何解决HTTP的无状态性使用Session和Cookie。Session机制的存在就是为了解决这个问题,Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物车,当你要添加商品到购物车的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的Session之后就可以标识这个用户并且跟踪这个用户了(一般情况下,服务器会在一定时间内保存这个 Session,过了时间限制,就会销毁这个Session)。在服务端保存 Session 的方法很多,最常用的就

2021-05-10 16:46:27 307

原创 计算机网络面试(四)HTTP

参考博客:https://segmentfault.com/a/1190000006879700https://blog.51cto.com/369369/812889http协议https://www.cnblogs.com/an-wen/p/11180076.htmlhttps://www.cnblogs.com/ranyonsue/p/5984001.html区别https://www.html.cn/qa/other/21875.html一次完整的HTTP事务流程1.根据域名,进行D

2021-05-10 15:16:48 431 2

原创 计算机网络面试(三)TCP如何保证可靠传输TCP与UDP的区别

TCP协议传输的主要特点是面向字节流、传输可靠、面向连接确保传输可靠的方式有 校验和 序列号 确认应答 超时重传 连接管理 流量控制 拥塞控制 下面从这几个方面进行学习TCP和UDP的区别特别感谢:TCP如何保证可靠传输https://blog.csdn.net/qq_41431406/article/details/97926927拥塞控制https://blog.csdn.net/liuchenxia8/article/details/80428157TCP和UDP的区别https://w

2021-05-09 14:09:14 547

原创 计算机网络层次模型

TCP/IP模型是互联网的基础,它是一系列网络协议的总称。这些协议可以划分为四层,分别为链路层、网络层、传输层和应用层。链路层:负责封装和解封IP报文 发送和接受ARP/RARP报文等网络层:负责路由以及把分组报文发送给目标网络或者主机传输层:负责对报文进行分组和管理,并且以TCP和UDP 协议格式封装报文应用层:负责向用户提供应用程序 比如HTTP、FTP、Telnet、DNS、SMTP等。...

2021-05-09 10:17:54 213

空空如也

空空如也

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

TA关注的人

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