05 2021 档案

摘要:1、Set接口:Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。 Set判断两个对象相同不是使用==运算符,而是根据equals方法。也就是说,只要两个对象用equals方法比较返回true,Set就不会接受这两个对象。2、HashSet:HashSet 阅读全文
posted @ 2021-05-28 17:18 郭慕荣 阅读(426) 评论(0) 推荐(0)
摘要:1.索引作用在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~ 阅读全文
posted @ 2021-05-27 17:51 郭慕荣 阅读(248) 评论(0) 推荐(0)
摘要:java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap.Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。1、Hashmap 是一个最常用的Map 阅读全文
posted @ 2021-05-27 11:16 郭慕荣 阅读(194) 评论(0) 推荐(0)
摘要:单例设计模式代码如下所示: package com.springboot.study.tests; /** * @Author: guodong * @Date: 2021/5/26 16:00 * @Version: 1.0 * @Description: */ public class Sing 阅读全文
posted @ 2021-05-26 16:03 郭慕荣 阅读(716) 评论(0) 推荐(0)
摘要:内存屏障(Memory Barrier)与内存栅栏(Memory Fence)是同一个概念,不同的叫法。通过volatile标记,可以解决编译器层面的可见性与重排序问题。而内存屏障则解决了硬件层面的可见性与重排序问题。 先简单了解两个指令: Store:将处理器缓存的数据刷新到内存中。 Load:将 阅读全文
posted @ 2021-05-25 16:55 郭慕荣 阅读(1005) 评论(0) 推荐(0)
摘要:一:为啥会有两次写?必要了解partial page write 问题 : InnoDB 的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。而计算机硬件和操作系统,写文件是以4KB作为单位的,那么每写一个innodb的page到磁 阅读全文
posted @ 2021-05-24 15:00 郭慕荣 阅读(4281) 评论(0) 推荐(1)
摘要:方法一:在初始化时保存ApplicationContext对象 方法二:通过Spring提供的utils类获取ApplicationContext对象 方法三:继承自抽象类ApplicationObjectSupport 方法四:继承自抽象类WebApplicationObjectSupport 方 阅读全文
posted @ 2021-05-22 21:40 郭慕荣 阅读(3975) 评论(0) 推荐(0)
摘要:一、SPI简介SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现,而后,把新加的 阅读全文
posted @ 2021-05-19 18:48 郭慕荣 阅读(566) 评论(0) 推荐(0)
摘要:【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以 阅读全文
posted @ 2021-05-17 13:22 郭慕荣 阅读(317) 评论(0) 推荐(0)
摘要:三次握手换个易于理解的视角来看为什么要3次握手。客户端和服务端通信前要进行连接,“3次握手”的作用就是双方都能明确自己和对方的收、发能力是正常的。 第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。 第二次握手:服务端发包,客户端收到了。 阅读全文
posted @ 2021-05-15 19:24 郭慕荣 阅读(975) 评论(0) 推荐(0)
摘要:0.前言对于"三次握手"我们耳熟能详,因为其相对的简单。但是,我们却不常听见“四次挥手”,就算听过也未必能详细地说明白它的具体过程。下面就为大家详尽,直观,完整地介绍“四次挥手”的过程。 1.“四次挥手”的详解所谓的四次挥手即TCP连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放。以 阅读全文
posted @ 2021-05-15 09:40 郭慕荣 阅读(145) 评论(0) 推荐(0)
摘要:在 TCP 建立连接的三次握手连接阶段,如果客户端发送的第三个ACK包丢了,那么客户端和服务端分别进行什么处理呢?相信了解 tcp 协议的人,三次握手的过程肯定很了解了。第三次的 ack 包丢失就是说在 client 端接收到 syn + ack 之后,向 server 发送的 ack 包 由于各种 阅读全文
posted @ 2021-05-14 16:24 郭慕荣 阅读(595) 评论(0) 推荐(0)
摘要:隔离级别的实现:未提交读(RU:read-uncommitted):在RU级别中,事务读到的所有数据都是最新的数据,可能是事务提交后的数据,也可能是事务执行中的数据(可能会被回滚)。当隔离级别为RU时:①:所有的读不加锁,读到的数据都是最新的数据,性能最好。②:所有的写加行级锁,写完释放。提交读(R 阅读全文
posted @ 2021-05-14 14:24 郭慕荣 阅读(218) 评论(0) 推荐(0)
摘要:一、TCP connection 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西;由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它们之间都是经过由TCP创建的一个从客户端发起,服务器接收的类似连接的通道,这个连接可以一直保持,htt 阅读全文
posted @ 2021-05-14 13:34 郭慕荣 阅读(154) 评论(0) 推荐(0)
摘要:一:文档对象如下 @Data @AllArgsConstructor @NoArgsConstructor @Document(indexName = "items", type = "item",shards = 5, replicas = 1) public class Item impleme 阅读全文
posted @ 2021-05-13 17:30 郭慕荣 阅读(5575) 评论(0) 推荐(1)
摘要:一:背景在开发工作中,会遇到一种场景,做完某一件事情以后,需要广播一些消息或者通知,告诉其他的模块进行一些事件处理,一般来说,可以一个一个发送请求去通知,但是有一种更好的方式,那就是事件监听,事件监听也是设计模式中发布-订阅模式、观察者模式的一种实现。观察者模式:简单的来讲就是你在做事情的时候身边有 阅读全文
posted @ 2021-05-13 10:57 郭慕荣 阅读(4962) 评论(0) 推荐(0)
摘要:大白话解释,零拷贝就是没有把数据从一个存储区域拷贝到另一个存储区域。但是没有数据的复制,怎么可能实现数据的传输呢?其实我们在java NIO、netty、kafka遇到的零拷贝,并不是不复制数据,而是减少不必要的数据拷贝次数,从而提升代码性能。 一:零拷贝的好处1、减少或避免不必要的CPU数据拷贝, 阅读全文
posted @ 2021-05-11 20:24 郭慕荣 阅读(349) 评论(0) 推荐(0)
摘要:一:简介状态模式设计模式是一种行为型的设计模式。当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。定义对于初学者没啥用,因为字都认识却无法理解其中的含义。必须等学完了,回过头来看才能更加深刻的理解其含义。 使用场景你发现你的代码里面存在一个很长的if else列表,而这些分支都是 阅读全文
posted @ 2021-05-08 16:27 郭慕荣 阅读(257) 评论(0) 推荐(0)
摘要:一、简介享元模式是一种结构性的设计模式,允许使用对象共享来有效地支持大量细粒度对象。“享”就是分享之意,指一物被众人共享,而这也正是该模式的终旨所在。享元模式有点类似于单例模式,都是只生成一个对象来被共享使用。这里有个问题,那就是对共享对象的修改,为了避免出现这种情况,我们将这些对象的公共部分,或者 阅读全文
posted @ 2021-05-08 15:42 郭慕荣 阅读(133) 评论(0) 推荐(0)
摘要:一.装饰者模式定义:​动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。模式的结构图: 二.模式包含角色 :抽象构件类(Component):给出一个抽象的接口,用以规范准备接收附加责任的对象具体构件类(ConcreteComponent):定义一个具 阅读全文
posted @ 2021-05-06 13:46 郭慕荣 阅读(387) 评论(0) 推荐(0)
摘要:一:设计模式概要 阅读全文
posted @ 2021-05-03 18:22 郭慕荣 阅读(47) 评论(0) 推荐(0)
摘要:1. 介绍1.1 定义策略模式是属于一个行为型的设计模式,定义一系列算法,将每个算法封装到具有公共接口的一系列策略类中,从而使它们可以相互替换 & 让算法可在不影响客户端的情况下发生变化。简单来说:准备一组算法 & 将每一个算法封装起来,让外部按需调用 & 使得互换。 1.2应用场景 ①:系统中有很 阅读全文
posted @ 2021-05-03 17:53 郭慕荣 阅读(118) 评论(0) 推荐(0)