自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【设计模式】——代理模式

代理模式是指,为其他对象提供一种代理以控制对这个对象的访问,在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用使用代理模式的作用功能增强:可以在完成目标对象的调用时,附加一些额外的功能,这些额外的功能叫做功能增强控制访问:在代理中,控制是否可以调用目标对象的方法实现代理的方式静态代理代理类是自己手工实现的,自己创建一个java类,代表代理类所要代理的目标类是确定的特点优点:实现简单,容易理解缺点:当目标类增加了,代理类可能也需.

2022-03-18 14:51:17 501

原创 【刷题记录】——递增的三元子序列

2022-03-18 14:14:22 425

原创 【刷题记录】——单调栈(字母去重)

2022-03-18 13:57:20 378

原创 【刷题记录】——贪心(排序+拼接字符串)

2022-03-18 13:05:05 175

原创 【计算机网络】——TCP协议如何保证可靠传输

一些可靠传输协议:当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到的数据时,及时告诉发送方适当降低发送数据的速度TCP协议如何保证可靠传输?(1)将应用层数据分割成TCP认为最适合发送的数据块(2)TCP给发送的每一个报文段进行编号,接收方对报文段进行排序,把有序数据传送给应用层(3)检验和:检验报文段在传输中是否有错,有错就丢弃(4)TCP的接收端会丢弃重复的数据(5)流量控制:TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数.

2022-03-15 22:12:14 317

原创 【计算机网络】——TCP和UDP协议的区别

TCP和UDP主要有以下区别:(1)UDP在传输数据之前不需要先建立连接,TCP在传输数据之前要进行三次握手来建立连接;(2)目标主机在收到UDP报文之后不需要给出任何确认,而TCP要给出确认,保证可靠连接;(3)因为UDP是面向无连接的,不提供可靠交付,所以开销很小,而TCP是面向连接的,保证可靠交付,所以开销很大;(4)UDP一般用于即时通信的服务,如语音、视频等,TCP一般用于文件传输、远程登录等场景。(5)UDP支持一对一、一对多、多对一和多对多的交互通信;而TCP连接只针对点对点的通信。UDP在

2022-03-15 16:12:01 4562

原创 【计算机网络】——TCP三次握手和四次挥手

TCP连接的建立采用客户服务器方式,主要发起连接建立的应用进程叫做客户端,而被动等待连接建立的应用进程叫做服务端三次握手TCP建立连接的过程叫做握手,握手需要在客户端和服务器之间交换三个报文段。假设主机A运行的是TCP客户程序,而B运行TCP服务器程序。最初两端的TCP进程都处于CLOSED(关闭)状态。一开始,B的TCP服务器进程先创建传输控制块TCB,准备接收客户端的连接请求,然后服务器进程就处于LISTEN(收听)状态,等待客户端的连接请求,如有,即作出响应。A的TCP客户进程也是首先创建传输.

2022-03-15 15:48:18 3308

原创 【计算机网络】——体系结构

OSI的体系结构从下往上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;TCP/IP的体系结构从下往上依次是网络接口层、网际层(IP)、传输层(TCP或UDP)、应用层(TELNET、FTP、SMTP等);一般在学习计算机网络时,采用五层协议的体系结构从下往上依次是:物理层、数据链路层、网络层、传输层和应用层。接下来说一下各层的作用,物理层的主要任务是确定与传输媒体的接口有关的特性,考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,考虑的是用多大的电压代表“1”或“0”,以及接收

2022-03-15 12:53:26 3532

原创 【SpringCloud】——注册中心Zookeeper

注册中心Zookeeperzookeeper是一个分布式协调工具,可以实现注册中心功能关闭Linux服务器防火墙后启动zookeeper服务器zookeeper服务器取代Eureka服务器,zk做为服务注册中心服务提供者新建cloud-provider-payment8004POMYML主启动类Controller启动8004注册进zookeeper启动后问题​ 解决zookeeper版本jar包冲突问题​ 排除zk冲突后的新POM验证测试jdbc会

2022-03-12 22:38:20 2592

原创 【SpringCloud】——Eureka服务注册与发现

什么是服务治理?Spring Cloud封装了Netflix公司开发的Euraka模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册什么是服务注册与发现?Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心,而系统中的其他微服务,使用Euraka的客户端连接到Euraka Server并维持心跳.

2022-03-12 21:58:12 1474

原创 【SpringBoot】——Thymeleaf模板引擎

模板引擎(这里特指用于Web开发的模板引擎是为了使用户看到的页面与业务数据分离而产生的一种模板技术。它可以生成特定格式的文档,用于网站的模板引擎就会生产出标准的HTML静态页面内容。使用模板引擎技术可以动态加载数据。在开发过程中,开发人员首先需要制作出模板引擎文件,并在控制器中将模板需要的数据组装好,然后将二者都交给模板引擎,最终生成HTML内容响应给客户端创建模板文件在resources/templates目录下新建模板文件thymeleaf.htmlThymeleaf模板引擎的默认后缀名即为.

2022-03-12 18:11:13 301

原创 【SpringBoot】——基础知识

文章目录1、SpringBoot和Spring的区别2、SpringBoot核心设计思想3、`@SpringBootApplication`注解分析4、SpringBoot项目启动步骤5、DispatcherServlet6、关于静态资源1、SpringBoot和Spring的区别答:SpringBoot来自于Spring家族,所以Spring所具备的功能和优点,SpringBoot同样具有SpringBoot简化了基于Spring的应用开发,只通过少量的代码就能快速构建一个Spring应用Spri

2022-03-12 17:26:38 323

原创 【Java基础】——注解

注解相当于一个标签,可以给这个标签上添加相关信息,然后插入到代码中,在运行该程序时,虚拟机会利用反射机制来处理这些代码,使它完成相应的功能。它可以出现在许多地方,比如说包、类、接口、方法、构造器、实例域、局部变量、参数变量、类型参数等,通常可以这样自定义一个注解:以@interface声明一个注解,配置相关元注解,包括@Target来定义该注解适用的场合,@Retention来指明该注解保留多长时间,再配置一些参数;然后再添加一个方法去处理这个注解:先通过.getClass()方法获取Class对象,然后根

2022-03-11 21:43:29 624 1

原创 【SpringCloud】——预备知识

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值,每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTFUL API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等,另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其构建微服务架构主要包括:服务注册与发现、服务调用、服务熔断、负载均衡、服务降级、服务

2022-03-10 18:17:53 191

原创 【实验记录】——Nginx反向代理cookie丢失

少了一个配置proxy_set_header Host $host;proxy_set_header Host $host;作用:把原http请求的Header中的Host字段也放到转发的请求里。若不加这一行,nginx转发的请求头里就没有该域名,就不会把cookie放置到该域名里了为了实现反向代理的功能,nginx增加了一个ngx_http_proxy_module模块,其中proxy_set_header指令就是该模块需要读取的配置文件,在这里所有设置的值的含义都和请求头的含义相同。...

2022-03-07 15:45:52 2910

原创 【面试题】——写一个会导致死锁的程序

实现一个死锁:A线程获取B线程占有的锁,B线程获取A线程占有的锁线程A获取线程B占有的资源(锁),线程B获取线程A占有的资源(锁)import java.util.concurrent.locks.ReentrantLock;public class DeadLock { private static ReentrantLock lockA = new ReentrantLock(); private static ReentrantLock lockB = new Reentran

2022-03-07 15:11:30 451

原创 【实验记录】——JMeter压力测试

启动JMter创建一个线程组开启10个线程,轮询1次HTTP请求默认配置IP地址+端口号添加一个HTTP请求请求方法+路径添加监听器生成聚合报告开始测试(对商品列表开始测试)线程数设为1000配置同一用户测试带参数的测试(把cookie信息填入)(把其中一个禁用掉)线程数改成了10000先测不带参数的商品列表带参数的用户信息配置不同用户测试将cookie信息写入txt文件内正式压力测试对商品列表进行压力测试线程数5000循环

2022-03-05 19:37:54 792

原创 【实验记录】——Redis端口暴露到公网没设密码导致key丢失

这是什么啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊设置密码设置成功application.yml文件更改spring.redis.password=westos

2022-03-05 14:18:53 482

原创 【实验记录】——Redis存储用户信息

Redis配置类实现序列化@Configurationpublic class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate&l

2022-03-05 11:22:17 1078

原创 【实验记录】——生成用户工具类

public class UserUtil { private static void createUser(int count) throws Exception { List<User> users = new ArrayList<>(count); //生成用户 for (int i = 0; i < count; i++) { User user = new User();

2022-03-05 09:55:00 187

原创 【SpringCloud】——Nacos

Nacos服务注册与配置中心Nacos的命名:前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service(Dynamic Naming and Configuration Service)Nacos的功能:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台(注册中心+配置中心的组合)等价于Nacos=Eureka+Config+Bus替代Eureka微服务注册中心、替代Config做服务配置中心各注册中心比较服务注册与发现框架CAP模型

2022-03-03 20:38:16 169

原创 【图解HTTP】——Web的攻击技术

互联网上的攻击大都将Web站点作为目标1HTTP协议本身不存在安全性问题,应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标HTTP不具备必要的安全功能,仅是一个通用的单纯协议机制,开发者需要自行设计并开发认证及会话管理功能来满足Web应用的安全容易被攻击者滥用的安全漏洞的Bug:在客户端即可篡改请求Web应用可能会接收到与预期数据不相同的内容在HTTP请求报文内加载攻击代码,就可以发起对Web应用的攻击通过URL查询字段或表单、HTTP首部、Cookie等

2022-03-03 11:04:25 4016

原创 【数据结构与算法】——回溯法

回溯法在解决问题时的每一步都尝试所有可能的选项,最终找出所有可行的方案回溯法非常适合解决由多个步骤组成的问题,并且每个步骤都有多个选项在某一步选择了其中一个选项之后,就进入下一步,然后会面临新的选项就这样重复选择,直至到达最终的状态用回溯法解决问题的过程可以形象地用一个树形结构表示,求解问题的每个步骤可以看作树中的一个节点,如果在某一步有n个可能的选项,每个选项是树中的一条边,然后经过这些边就可以到达该节点的n个子节点在采用回溯法解决问题时如果到达树形结构的叶节点,就找到了问题的一个解。如果希.

2022-03-03 09:42:57 1317

原创 【数据结构与算法】——排序

如果排序的对象是数值,那么按数值递增或递减的顺序进行排序;如果排序的对象是字符串,那么按照字典顺序进行排序;如果面试题中的输入数据不是排序的,但数据排序之后便于解决问题,那么如果时间复杂度允许就可以先将输入的数据排序思路:首先需要考虑两个区间在什么情况下才能被合并计数排序是一种线性时间的整数排序算法。如果数组的长度为n,整数范围(数组中最大整数与最小整数的差值)为k,对于k远小于n的场景(如对某公司所有员工的年龄排序),那么计数排序的时间复杂度优于其他基于比较的排序算法(如归并排序、快速排序.

2022-03-02 15:27:39 537 1

原创 【图解HTTP】——构建Web内容的技术

1Web页面几乎全由HTML创建HTML(超文本标记语言)是为了发送Web上的超文本(

2022-03-02 10:21:47 428 1

原创 【图解HTTP】——基于HTTP的功能追加协议

1若想在现有Web实时显示更新的内容,以下HTTP标准就会成为瓶颈一条连接上只可发送一个请求请求只能从客户端开始。客户端不可以接收除响应以外的指令请求/响应首部未经压缩就发送。首部信息越多延迟越大发送冗长的首部。每次互相发送相同的首部造成的浪费较多可任意选择数据压缩格式。非强制压缩发送Ajax的解决方法Ajax(异步JavaScript与XML技术)是一种有效利用JavaScript和DOM(Document Object Model,文档对象模型)的操作,以达到局部Web页面替换加载的

2022-03-01 20:58:14 1724

原创 【图解HTTP】——确认访问用户身份的认证

某些Web页面只想让特定的人浏览,或者干脆仅本人可见。为达到这个目标,必不可少的就是认证功能1为了验证访问服务器的人的身份,就需要核对”登录者本人才知道的信息“、”登录者本人才会有的信息“核对的信息通常是指:密码:只有本人才会知道的字符串信息动态令牌:仅限本人持有的设备内显示的一次性密码数字证书:仅限本人(终端)持有的信息生物认证:指纹和虹膜等本人的生理信息IC卡等:仅限本人持有的信息HTTP/1.1使用的认证方式Basic认证(基本认证)DIGEST认证(摘要认证)SSL.

2022-03-01 17:41:34 828

原创 【图解HTTP】——确保Web安全的HTTPS

在HTTP协议中有可能存在信息窃听或身份伪装等安全问题,使用HTTPS通信机制可以有效地防止这些问题1HTTP的缺点通信使用明文(不加密),内容可能会被窃听不验证通信方身份,因此有可能遭遇伪装无法证明报文的完整性,所以有可能已遭篡改通信使用明文可能会被窃听如何防止窃听保护信息?最为普及的就是加密技术通信的加密通过和SSL(安全套接层)或TLS(安全传输层协议)的组合使用,加密HTTP的通信内容用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了,与SSL组合使用的HT

2022-03-01 16:11:46 252

原创 【图解HTTP】——HTTP首部

1HTTP报文的结构①报文首部:在客户端和服务器处理时传递额外重要信息②空行:(CR+LF)③报文主体:所需要的用户和资源的信息HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。报文首部由几个字段构成在请求中,HTTP报文由方法、URI、HTTP版本、HTTP首部字段等部分构成在响应中,HTTP报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分构成2HTTP首部字段传递重要信息使用首部字段是为了给浏览器和服

2022-02-28 21:22:37 446 1

原创 【图解HTTP】——与HTTP协作的Web服务器

一台Web服务器可搭建多个独立域名的Web网站,也可作为通信路径上的中转服务器提升传输效率HTTP/1.1允许一台HTTP服务器搭建多个Web站点。比如,提供Web托管服务(Web Hosting Service)的供应商,可以用一台服务器为多位客户服务,也可以以每位客户持有的域名运行各自不同的网站。这是因为利用了虚拟主机的功能。即使物理层面只有一台服务器,但只要使用虚拟主机的功能,则可以假想已具有多台服务器...

2022-02-28 16:56:10 160

原创 【数据结构与算法】——二分查找

如果数组是排序的(通常按照递增的顺序排序),那么可以采用二分查找进行优化。可以取出位于数组中间的数字并和目标数字比较如果中间数字正好等于目标数字,那么就找到了目标数字。如果中间数字大于目标数字,那么只需要查找数组的前半部分;如果中间数字小于目标数字,那么接下来只需要查找数组的后半部分public int search (int[] nums, int target) { int left = 0; int right = nums.length - 1; while (left <= r.

2022-02-28 16:19:03 4529 1

原创 【图解HTTP】——返回结果的HTTP状态码

HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作1状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果状态码的第一位指定了响应类别,后两位无分类。响应类别有以下5种:类别原因短语1XX信息性状态码接收的请求正在处理2XX成功状态码请求正常处理完毕3XX重定向状态码需要进行附加操作以完成请求4XX客户端错误状态码服务器无法处理请求5XX服务器错误状态码服务器处理请求出错.

2022-02-23 22:32:51 255

原创 【图解HTTP】——HTTP报文内的HTTP信息

HTTP通信过程包括从客户端发往服务器端的请求及从服务器端返回客户端的响应1用于HTTP协议交互的信息被称为HTTP报文。请求端(客户端)的HTTP报文叫做请求报文响应端(服务器端)的叫做响应报文HTTP报文本身是由多行(用CR+LF作换行符)数据构成的字符串文本HTTP报文大致可分为报文首部和报文主体两部分,两者由最初出现的空行(CR+LF)来划分,通常不一定有报文主体报文首部:服务器端或客户端需处理的请求或响应的内容及属性CR+CL:回车符+换行符报文主体:应被发送的数据2请求.

2022-02-23 21:10:07 233

原创 【数据结构与算法】——树

树的概念:一棵非空的树中有一个根节点,根节点上面不存在父节点,下面有若干子节点,子节点下面又有其自身的子节点,如果子节点下面不存在自身的子节点,那么该子节点为叶节点,这样的结构称为树。二叉树:每个节点最多只有两个子节点,是一种典型的具有递归性质的数据结构,其根节点可能有子节点,子节点又是对应子树的根节点,它可能也有自己的子节点。二叉树的数据结构可定义为:public class TreeNode { int val; TreeNode left; TreeNode right; Tre.

2022-02-23 18:33:26 249

原创 【图解HTTP】——简单的HTTP协议

HTTP协议用于客户端与服务器之间的通信1客户端:请求访问文本或图像等资源的一端称为客户端服务器端:提供资源响应的一端称为称为服务器端HTTP协议规定:请求从客户端发出,最后服务器端响应该请求并返回客户端发出请求报文,服务器端接收后进行处理,将处理结果以响应报文的形式返回给客户端请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用于解释状态码的原因短语、可选的响应首部字段以及实体主体构成2HT.

2022-02-23 18:32:04 910

原创 【图解HTTP】——了解Web及网络基础

Web是建立在HTTP协议上通信的,根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源等信息,从而显示出Web页面。HTTP协议:超文本传输协议协议:指规则的约定HTML:超文本标记语言URL:统一资源定位符URI:统一资源标识符格式:协议类型、认证(可选)、服务器地址、服务器端口号、带层次的文件路径、查询字符串(可选)、片段标识符(可选)...

2022-02-23 16:28:30 1427

原创 并查集UnionFind

并查集是一种树形的数据结构,用于处理不交集的合并(union)及查询(find)问题Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一个子集Union:将两个子集合并成同一个集合Basic implementationclass DSU { int[] parent; public DSU(int N) { parent = new int[N]; for (int i = 0; i < N; ++i) parent[i] = i; } public int

2022-02-01 11:30:36 347

原创 MySQL

1、MySQL执行计划执行计划——一条sql语句的执行过程explain官网2、索引数据结构设计原则优化失效回表索引覆盖最左匹配索引下推聚簇索引用途:提高sql语句执行效率索引和实际的数据都是存储在磁盘的,只不过在进行数据读取的时候会优先把索引加载到内存中存储引擎:不同的数据文件在磁盘的不同组织形式3、索引储存数据的格式格式——>K-V——>数据结构——>hash表——>树——>为什么是B+树?当索引非常大的时候,分块读取分而治之I

2022-01-20 19:39:20 555

原创 JUC多线程及高并发

文章目录1、对volatile的理解2、CAS3、原子类AtomicInteger的ABA问题,原子更新引用4、ArrayList线程不安全的案例5、公平锁/非公平锁/可重入锁/递归锁/自旋锁6、CountDownLatch/CyclicBarrier/Semaphore7、阻塞队列8、线程池,对ThreadPoolExecutor的理解9、生产中如何设置合理的线程池参数10、死锁编码及定位分析11、Java里锁的认识1、对volatile的理解一、volatile是Java虚拟机提供的轻量级的同步机制

2022-01-19 15:32:40 537

原创 JVM+GC解析

文章目录1、JVM内存结构2、GC的作用域3、常见的垃圾回收算法4、JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots?5、你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值?6、你平时工作用过的JVM常用基本配置参数有哪些?7、强引用、软引用、弱引用、虚引用分别是什么?8、请谈谈你对OOM的认识9、GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈10、怎么查看服务器默认的垃圾收集器是哪个?生产上如何配置垃圾收集器的?谈谈你对垃圾收集器的理解?11、G1垃圾收集器12、生产

2022-01-19 15:31:46 457

空空如也

空空如也

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

TA关注的人

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