自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

南淮北安的博客

加油吧!少年!

  • 博客(1669)
  • 资源 (9)
  • 收藏
  • 关注

原创 (面经总结)一篇文章带你整理面试过程中关于消息队列(RabbitMQ/RocketMQ/Kafka)的相关知识点

Kafka:不支持事务,对于消息重复、丢失、错误没有严格要,适用大量数据的互联网服务RabbitMQ:对数据的一致性、稳定性、可靠性要求很高的场景,对性能和吞吐量要求其次RocketMQ:具有高吞吐量,高可用性,主要用于阿里内部文章目录一、RabbitMQ 如何保证高可用?二、如何保证消息队列的高性能?1. 幂等性2. 可靠性3. 顺序性三、RocketMQ1. 高性能2. 高可用四、Kafka一、RabbitMQ 如何保证高可用?RabbitMQ 有三种部署方式:单节点模式:最简单的情况,非

2022-05-11 07:00:00 202

原创 (面经总结)一篇文章带你整理面试可能会问到的 聚簇索引和非聚簇索引

文章目录一、聚簇索引二、非聚簇索引三、InnoDB 的索引1. 聚簇索引的优势2. 聚簇索引的劣势四、MyISM 的非聚簇索引五、为什么主键通常建议使用自增 id六、聚簇索引和非聚簇索引的使用场景七、Mysql 聚簇索引的设定一、聚簇索引聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个。如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相比,聚集索引有着更快的检索速度。

2022-05-11 07:00:00 515

原创 (面经总结)一篇文章带你整理面试过程中关于一致性Hash算法的相关知识点

文章目录一、为什么要引入一致性哈希二、一致性哈希算法的基本概念三、hash 环的偏斜四、使用场景一、为什么要引入一致性哈希比如我们有三个缓存服务器,用于缓存服务器编号为 0,1,2现在有3万张图片需要缓存,为了分摊缓存的压力,我们肯定希望将这些图片均匀的分配到这三个服务器上我们可以直接将这3万张图片均摊到三个服务器上,但是这样的话,因为是无规律,所以查找时就需要依次遍历所有的服务器,效率太低所以可以利用 hash 算法或者取模算法,将图片的名称哈希计算,我们这里有3个服务器,然后将哈希后的结果对3

2022-05-11 05:30:00 268

原创 (面经总结)一篇文章带你整理面试过程中关于Redis 的删除策略的相关知识点

Redis中有个设置时间过期的功能,即对存储在redis数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的token或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能set key的时候,都可以给一个expire time,就是过期时间,通过过期时间就可以指定这个key可以存活的时间删除策略的目标:在内存占用和CPU占用之间寻找一种平衡,提高 Redis 的性能(1)定时删除策略创建

2022-05-10 15:30:00 208

原创 (面经总结)一篇文章带你整理面试过程中关于 TCP,UDP,IP的相关知识点

TCP/IP协议是一个协议簇。里面包括很多协议的,UDP只是其中的一个, 之所以命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议,就用他两命名了TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层文章目录一、TCP二、IP三、UDP一、TCP按层次分,TCP位于传输层,提供可靠的字节流服务。所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把

2022-05-10 10:00:00 278

原创 (面经总结)一篇文章带你整理面试过程中关于HTTPS的相关知识点

文章目录一、HTTPS二、共享秘钥加密和公开秘钥加密1. 共享秘钥加密2. 公开秘钥加密三、HTTPS 采用混合加密机制四、HTTPS 的工作原理一、HTTPS对于HTTP来说,服务器也好,客户端也好,都是没有办法确认通信方的。因为很有可能并不是和原本预想的通信方在实际通信,同时通信的报文很有可能在通信途中就被篡改了为了统一解决上述这些问题,需要在HTTP上再加入加密处理和认证等机制。我们把添加了加密及认证机制的HTTP称为 HTTPS通常,HTTP直接和 TCP 通信。当使用 SSL 时,则演变成

2022-05-10 06:30:00 307

原创 (面经总结)一篇文章带你完整复习HTTP的相关知识点

文章目录一、HTTP 协议二、消息结构三、HTTP 方法三、HTTP 状态码一、HTTP 协议HTTP协议和TCP/IP协议族内的其他众多的协议相同,用于客户端和服务器之间的通信。请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应它是一种无状态协议:HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理使用HTTP协议,每当有新的请求发送

2022-05-10 05:30:00 176

转载 (面经总结)一篇文章带你整理面试过程中关于TCP粘包的相关知识点

在socket网络编程中,都是端到端通信,由客户端端口+服务端端口+客户端IP+服务端IP+传输协议组成的五元组可以明确的标识一条连接。在TCP的socket编程中,发送端和接收端都有成对的socket。发送端为了将多个发往接收端的包,更加高效的的发给接收端,于是采用了优化算法(Nagle算法),将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。那么这样一来,接收端就必须使用高效科学的拆包机制来分辨这些数据文章目录一、什么是TCP粘包问题?二、造成TCP粘包的原因三、什么时候需要

2022-05-09 16:19:40 197

原创 (面经总结)一篇文章带你整理面试可能会问到的 SQL 语句

文章目录一、求每个班级成绩前三的学生记录二、设计一个文件夹管理系统三、求每个部门薪水最高的员工和部门名一、求每个班级成绩前三的学生记录(1)新建 stu 表-- ------------------------------ Table structure for stu-- ----------------------------DROP TABLE IF EXISTS `stu`;CREATE TABLE `stu` ( `sid` int(11) NOT NULL AUTO_INCR

2022-05-09 05:00:00 315

原创 (面经总结)一篇文章带你整理面试过程中关于Innodb的相关知识点

文章目录一、存储引擎二、InnoDB三、InnoDB 的本质1. 数据是如何存储的?2. 页:InnoDB 管理存储空间的基本单位3. 页目录:Page Directory4. 引入 B+ 树:索引四、面试题一、存储引擎数据库的存储引擎是数据库的底层软件组织,数据库管理系统(DBMS)使用存储引擎创建、查询、更新和删除数据。不同的存储引擎提供了不同的存储机制、索引技巧、锁定水平等功能,都有其特定的功能。现在,许多数据库管理系统都支持多种存储引擎,常用的存储引擎主要有MyISAM、InnoDB、Memor

2022-05-09 04:00:00 271

原创 (面经总结)一篇文章带你整理面试过程中关于JVM 调优的相关知识

文章目录一、设置 JVM 参数二、jps 指令三、jconsole 指令四、jstat 指令五、jstack 指令六、jmap 指令七、visualvm八、补充一、设置 JVM 参数JVM 参数:点击可参考IDEA 配置JVM的初始堆和最大堆均为 10m:client模式:初始堆大小:物理内存的1/64,最小为 8MB最大堆:物理内存没有达到192MB之前,JVM最大堆为物理内存的一半,物理内存大于192MB,但是小于 1GB 时,JVM 最大堆大小为物理内存的 1/4;大于1GB物理内存

2022-05-08 04:45:00 357

原创 (面经总结)一篇文章带你深入剖析 synchronized 的底层原理

文章目录一、synchronized 的基本用法二、synchronized 的底层实现原理1. 同步块的底层原理分析2. 同步方法的底层原理分析四、总结一、synchronized 的基本用法可参考:一篇文章带你搞定 Java 中同步概念可参考:一篇文章带你深入了解多线程中的线程组,守护线程,线程优先级,synchronizesynchronized 与 volatile 的最大区别在于原子性,volatile 不具备原子性可参考:一篇文章带你深入了解 volatile 与 Java 内存模

2022-05-08 02:45:00 181

转载 学习设计模式之迭代模式

文章目录一、定义二、问题背景三、迭代器模式遍历组织结构1. 工程结构2. 代码实现3. 测试验证四、总结一、定义迭代器模式,常见的就是我们日常使用的iterator遍历。虽然这个设计模式在我们的实际业务开发中的场景并不多,但却几乎每天都要使用jdk为我们提供的list集合遍历。另外增强的for循环虽然是循环输出数据,但是他不是迭代器模式。迭代器模式的特点是实现Iterable接口,通过next的方式获取集合元素,同时具备对元素的删除等操作。而增强的for循环是不可以的。这种设计模式的优点是可以让我们

2022-05-07 10:11:00 375

原创 (面经总结)一篇文章带你整理面试过程中关于 Java 的内存模型 JMM(Java Memory Model)的相关知识

文章目录一、Java 内存模型二、原子性(Atomicity)三、可见性(Visibility)四、有序性(Ordering)五、哪些指令不能重排:Happen-Before 规则六、面试题一、Java 内存模型Java 内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节Java 内存模型规定了所有的变量都存储在主内存中,每个线程也都有自己的工作内存,工作内存中保存了这个线程使用到的变量的主内存副本拷贝JMM的关键技术点都是围绕着多线程的原

2022-05-07 07:45:00 363

原创 (面经总结)一篇文章带你整理面试过程中关于多线程的编程问题

文章目录一、多线程打印10个数二、交替打印奇偶不加锁三、交替打印10个数不加锁一、多线程打印10个数class MyThread implements Runnable { int num = 1; @Override public void run() { for (int i = 0; i < 10; i++) { //对当前对象加锁 synchronized (this) {

2022-05-07 04:15:00 168

原创 (面经总结)一篇文章带你整理面试过程中关于锁升级的过程

文章目录一、对象头二、重量级锁三、轻量级锁四、偏向锁五、自旋锁六、锁的升级一、对象头在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)实例数据和对其填充与synchronized无关,实例数据存放类的属性数据信息,java代码中能看到的属性和他们的值。对其填充不是必须部分,由于虚拟机要求对象起始地址必须是8字节的整数倍,对齐填充仅仅是为了使字节对齐。对象头是我们需要关注的重点,它是sync

2022-05-06 10:00:00 305

原创 (面经总结)一篇文章带你整理面试过程中关于ThreadLocal的相关知识

文章目录一、什么是 ThreadLocal二、ThreadLocal 的应用场景三、ThreadLocal 的底层1. set 和 get 方法2. ThreadLocalMap(1)为什么需要数组呢?(2)没有了链表怎么解决Hash冲突呢?3. 内存泄露一、什么是 ThreadLocalThreadLocal类顾名思义可以理解为线程本地变量。也就是说如果定义了一个ThreadLocal, 每个线程往这个ThreadLocal中读写是线程隔离,互相之间不会影响的,主要用来解决线程内资源的共享,比如,让

2022-05-06 10:00:00 227

原创 (面经总结)一篇文章带你整理面试过程中关于 JVM 的类加载机制的相关知识

文章目录一、 JVM的类加载阶段1. 加载2. 验证3. 准备4. 解析5. 初始化二、类加载器三、双亲委派机制四、OSGI一、 JVM的类加载阶段(1)一篇文章带你深入了解虚拟机类加载时机(2)一篇文章带你深入了解虚拟机类加载过程JVM的类加载分为5个阶段:加载、验证、准备、解析、初始化。在类初始化完成后就可以使用该类的信息,在一个类不再被需要时可以从JVM中卸载,如图1-20所示。1. 加载加载过程就是把class字节码文件载入到虚拟机中,至于从哪儿加载,虚拟机设计者并没有限定,你可以

2022-05-06 09:45:00 166

转载 (面经总结)一篇文章带你整理面试中被问到的 TCP 中7种定时器

文章目录一、建立连接定时器(connection-establishment timer)二、重传定时器(retransmission timer)三、延迟应答定时器(delayed ACK timer)四、坚持定时器(persist timer)五、保活定时器(keepalive timer)六、FIN_WAIT_2定时器(FIN_WAIT_2 timer)七、TIME_WAIT定时器 (TIME_WAIT timer, 也叫2MSL timer)一、建立连接定时器(connection-establi

2022-05-06 09:29:03 249

转载 (面经总结)一篇文章带你整理面试中数据库分库分表的相关知识点

参考链接:https://www.cnblogs.com/butterfly100/p/9034281.html文章目录一、为什么要进行数据库分库分表?二、垂直切分三、水平切分一、为什么要进行数据库分库分表?主要是为了提升数据库的性能,因为当数据库中的数据量达到1000w或者100G以后,由于查询维度比较多,此时像添加优化索引之类的操作对于数据库的性能提升很小,所系需要对其进行分库分表,目的就是减小数据库的负担,将数据分散到多个数据库中,提升性能。分库分表有垂直切分和水平切分两种二、垂直切分垂直

2022-05-06 09:18:09 306

转载 学习设计模式之命令模式

文章目录一、定义二、问题背景三、违背设计模式的设计实现1. 工程结构2. 代码实现四、问题改进1. 工程结构2. 代码实现3. 测试验证五、总结一、定义命令模式在我们通常的互联网开发中相对来说用的比较少,但这样的模式在我们的日常中却经常使用到,那就是Ctrl+C、Ctrl+V。当然如果你开发过一些桌面应用,也会感受到这样设计模式的应用场景。从这样的模式感受上,可以想到这是把逻辑实现与操作请求进行分离,降低耦合方便扩展。命令模式是行为模式中的一种,以数据驱动的方式将命令对象,可以使用构造函数的方式传递

2022-05-06 09:06:37 392

转载 学习设计模式之责任链模式

文章目录一、定义二、问题背景三、违背设计模式的设计实现1. 工程结构2. 代码实现四、问题改进1. 工程结构2. 代码实现3. 测试验证五、总结一、定义击鼓传雷,看上图你是否想起周星驰有一个电影,大家坐在海边围成一个圈,拿着一个点燃的炸弹,互相传递。责任链模式的核心是解决一组服务中的先后执行处理关系,就有点像你没钱花了,需要家庭财务支出审批,10块钱以下找闺女审批,100块钱先闺女审批在媳妇审批。你可以理解想象成当你要跳槽的时候被安排的明明白白的被各个领导签字放行二、问题背景在本案例中我们模拟

2022-05-05 15:47:17 301

原创 (面经总结)一篇文章带你完整复习 Java 中并发关键字(CountDownLatch/CyclicBarrier/Semaphore/Volatile)

文章目录一、倒计数器:CountDownLatch二、循环栅栏:CyclicBarrier三、信号量:Semaphore四、volatile 关键字的作用一、倒计数器:CountDownLatchCountDownLatch类位于java.util.concurrent包下,是一个同步工具类,允许一个或多个线程一直等待其他线程的操作执行完后再执行相关操作。CountDownLatch基于线程计数器来实现并发访问控制,主要用于主线程等待其他子线程都执行完毕后执行相关操作对于倒计数器,一种典型的场景就

2022-05-05 02:45:00 502

原创 (面经总结)一篇文章带你整理面试过程中关于锁的相关知识点下

文章目录一、Semaphore二、AtomicInteger三、可重入锁四、公平锁与非公平锁五、读写锁:ReadWriteLock六、共享锁和独占锁七、重量级锁和轻量级锁八、偏向锁九、分段锁十、同步锁与死锁十一、如何进行锁优化十二、相关面试题已经学习了:一篇文章带你完整复习 Java 中锁的相关知识 - 上这里继续把相关知识补充完整,后续还会继续补充。一、Semaphore详细内容学习可参考:一篇文章带你深入了解多线程中的信号量 SemaphoreSemaphore是一种基于计数的信号量,在定义信

2022-05-05 00:30:00 266

原创 (面经总结)一篇文章带你完整复习CAS 和 ABA 问题

文章目录一、CAS的概念:比较并交换二、CAS的特性:乐观锁三、CAS自旋等待四、ABA问题一、CAS的概念:比较并交换CAS(Compare And Swap)指比较并交换。CAS算法CAS(V, E, N)包含3个参数,V表示内存里的值,E表示传入的值,N表示新值。在且仅在V值等于 E值时,才会将V值设为 N,如果 V值和 E值不同,则说明已经有其他线程做了更新,当前线程什么都不做。最后,CAS返回当前V的真实值。二、CAS的特性:乐观锁CAS操作采用了乐观锁的思想,总是认为自己可以成功完成

2022-05-04 10:45:30 260

原创 (面经总结)一篇文章带你整理面试过程中关于IO 模型的相关知识

文章目录一、基础知识二、阻塞I/O模型三、非阻塞I/O模型四、多路复用I/O模型1. select2. poll3. epoll五、信号驱动I/O模型六、异步I/O模型七、BIO(同步阻塞 I/O 模型)八、NIO(同步非阻塞 I/O 模型)九、AIO(异步非阻塞 I/O 模型)十、知识补充1. 非阻塞 I/O 系统调用和异步 I/O 系统调用的区别2. 多路复用怎么解决阻塞IO存在的问题3. NIO 和传统 I/O 的区别一、基础知识(1)内核空间和用户空间系统调用将 Linux 整个体系分为用户态

2022-05-04 05:00:00 467

转载 学习设计模式之代理模式

一、定义代理模式有点像老大和小弟,也有点像分销商。主要解决的是问题是为某些资源的访问、对象的类的易用操作上提供方便使用的代理服务。而这种设计思想的模式经常会出现在我们的系统中,或者你用到过的组件中,它们都提供给你一种非常简单易用的方式控制原本你需要编写很多代码的进行使用的服务类。类似这样的场景可以想到:你的数据库访问层面经常会提供一个较为基础的应用,以此来减少应用服务扩容时不至于数据库连接数暴增。使用过的一些中间件例如;RPC框架,在拿到jar包对接口的描述后,中间件会在服务启动的时候生成对应

2022-05-04 00:13:21 200

转载 学习设计模式之享元模式

文章目录一、定义二、问题背景三、违背设计模式的设计实现1. 工程结构2. 代码实现四、问题改进1. 工程结构2. 代码实现3. 测试验证五、总结一、定义享元模式,主要在于共享通用对象,减少内存的使用,提升系统的访问效率。而这部分共享对象通常比较耗费内存或者需要查询大量接口或者使用数据库资源,因此统一抽离作为共享对象使用另外享元模式可以分为在服务端和客户端,一般互联网H5和Web场景下大部分数据都需要服务端进行处理,比如数据库连接池的使用、多线程线程池的使用,除了这些功能外,还有些需要服务端进行包装后

2022-05-02 23:03:28 253

原创 (面经总结)一篇文章带你整理面试过程中关于 Redis 的五种数据类型

文章目录一、Redis 优缺点二、Redis 的对象类型和编码三、五种数据类型1. String 字符串2. Hash (哈希)3. 列表4. Set 集合5. zset 有序集合一、Redis 优缺点Redis (Remote Dictionary Server) 是一个使用 C 语言 编写的,开源的 (BSD许可) 高性能 非关系型 (NoSQL) 的 键值对数据库。NoSQL :不仅仅是数据库,对传统数据库的补充键值对结构:查找和操作的时间复杂度都是O(1)Redis中的主要数据结构有

2022-05-02 17:30:00 281

原创 (面经总结)一篇文章带你整理面试过程中关于OSI 七层模型的相关知识

文章目录一、OSI 七层模型二、功能解释三、每层对应的协议四、相关面试题一、OSI 七层模型互联网的通信协议都对应了 7 层中的某一层,通过这一点,可以了解协议在整个网络模型中的作用,一般来说,各个分层的主要作用如下(1)应用层:为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务(2)表示层: 可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取,主要作用就是将设备的固有数据格式转换为网络标准传输格式。(3)会话层:利用传输层提供的服务(端口号:传输端口号与接收端口号)

2022-05-02 15:00:00 691

原创 (面经总结)一篇文章带你整理面试过程中关于 SQL优化的相关知识

文章目录一、为什么要对SQL进行优化?二、SQL 优化三、Mysql中高性能的索引策略1. 独立的列2. 前缀索引和索引选择性3. 多列索引4. 选择合适的索引列顺序(针对 B-Tree 索引)5. 覆盖索引6. 使用索引来做排序7. 冗余和重复索引8. 未使用的索引四、实际应用五、即便走索引,线上查询还是慢?六、除了读外,写性能也遇到瓶颈?一、为什么要对SQL进行优化?我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序

2022-05-02 10:30:00 400

原创 (面经总结)一篇文章带你整理面试过程中关于 Mybatis 底层的相关知识

文章目录一、什么是 Mybatis ?二、Mybatis 优缺点及使用场合三、#{}和${}的区别是什么?四、mappers 映射器对应的Dao接口的工作原理?五、Mybatis 的一级和二级缓存六、Mybatis 的 Mapper 接口调用要求七、resultMap 和 resultType八、Mybatis 实现批量插入一、什么是 Mybatis ?Mybatis是一个orm类型的半自动框架,执行了对JDBC的封装,是一个持久层框架,它可以通过XML文件或者注解来配置原生信息,不在需要去做更多繁琐重

2022-05-02 05:30:00 486

原创 (面经总结)一篇文章带你整理面试过程中关于 二叉树、二叉搜索树、平衡二叉树、B 树和 B+树的相关知识

文章目录一、二叉树(Binary Tree)二、二叉搜索树(Binary Search Tree)三、平衡二叉树(AVL Tree)四、B树(B Tree)五、B+树(B+ tree)五、数据库为什么引入 B+ 树六、树的搜索算法七、面试题一、二叉树(Binary Tree)每个节点最多有两个子节点的二、二叉搜索树(Binary Search Tree)二叉查找树又叫二叉搜索树,它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的

2022-05-02 00:30:00 564 1

原创 (面经总结)一篇文章带你整理面试过程中关于多线程中的线程池的相关知识点

文章目录一、线程池的工作原理二、线程复用三、线程池的核心组件和核心类四、Java线程池的工作流程五、线程池的拒绝策略六、5中常用的线程池1. newCachedThreadPool2. newFixedThreadPool3. newScheduledThreadPool4. newSingleThreadExecutor5. newWorkStealingPool六、面试题一、线程池的工作原理线程是非常宝贵的计算资源,在每次需要时创建并在运行结束后销毁是非常浪费资源的。Java线程池主要用于管理线程

2022-05-02 00:00:00 255 1

原创 (面经总结)一篇文章带你整理面试过程中关于 Java 中的 异常分类及处理的相关知识

文章目录一、异常的概念二、异常分类三、异常处理方式:抛出异常、使用 try catch捕获并处理异常四、面试提问一、异常的概念异常指在方法不能按照正常方式完成时,可以通过抛出异常的方式退出该方法,在异常中封装了方法执行过程中的错误信息及原因,调用方在获取该异常后可根据业务的情况选择处理该异常或者继续抛出该异常。在方法在执行过程中出现异常时,Java异常处理机制会将代码的执行权交给异常处理器,异常处理器根据在系统中定义的异常处理规则执行不同的异常处理逻辑(抛出异常或捕捉并处理异常)。详细内容可参考学习

2022-05-01 22:30:00 312

原创 (面经总结)一篇文章带你整理面试过程中关于 JVM 中分代收集算法、分区收集算法和垃圾收集器的相关知识

文章目录一、分代收集算法和分区收集算法1. 分代收集算法2. 分区收集算法二、垃圾收集器1. Serial垃圾收集器:单线程,复制算法2. ParNew垃圾收集器:多线程,复制算法3. Parallel Scavenge垃圾收集器:多线程,复制算法4. Serial Old垃圾收集器:单线程,标记整理算法5. Parallel Old垃圾收集器:多线程,标记整理算法6. CMS垃圾收集器7. G1垃圾收集器三、内存分配与回收策略四、其他相关知识点学习一、分代收集算法和分区收集算法1. 分代收集算法JV

2022-05-01 22:00:00 432

转载 学习设计模式之外观模式

文章目录一、定义二、问题背景三、违背设计模式的设计实现1. 工程结构2. 代码实现四、问题改进1. 工程结构2. 代码实现3. 测试验证五、总结一、定义外观模式也叫门面模式,主要解决的是降低调用方的使用接口的复杂逻辑组合。这样调用方与实际的接口提供方提供方提供了一个中间层,用于包装逻辑提供API接口。有些时候外观模式也被用在中间件层,对服务中的通用性复杂逻辑进行中间件层包装,让使用方可以只关心业务开发。那么这样的模式在我们的所见产品功能中也经常遇到,就像几年前我们注册一个网站时候往往要添加很多信

2022-05-01 17:44:02 161

原创 (面经总结)一篇文章带你完整复习数据库分布式事务的相关知识

分布式和集群的区别:小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是集群。 为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配菜师,两个配 菜师关系是集群文章目录一、CAP二、两阶段提交协议1. Prepare(准备阶段)2. Commit(提交阶段)3. 两阶段提交的缺点三、三阶段提交协议1. CanCommit阶段2. PreCo

2022-04-30 22:45:32 805

原创 (面经总结)一篇文章带你完整复习三次握手和四次挥手的相关知识点

文章目录一、三次握手二、四次挥手三、TIME_WAIT状态四、相关习题五、面试题一、三次握手为了准确无误地将数据送达目标处,TCP协议采用了三次握手(three-wayhandshaking)策略。握手之前服务器需要做哪些准备工作?(1)发送端首先发送一个带SYN标志的数据包给对方。(2)接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。(3)最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相

2022-04-30 22:42:54 203

原创 (面经总结)一篇文章带你整理面试过程中关于数据库的索引的相关知识点

文章目录一、数据库索引1. 创建普通索引2. 创建唯一索引3. 主键索引4. 建立索引的时机5. 索引的 不足之处二、数据库索引的作用三、索引的原理三、聚集索引/聚簇索引1. 聚集索引/聚簇索引2. 非聚集索引/非聚簇索引四、MyISAM索引实现五、InnoDB 索引实现六、联合索引/多列索引七、最左前缀匹配原则八、前缀索引九、覆盖索引十、回表与索引覆盖十一、什么时候需要回表?什么时候不需要?十二、建立索引需要考虑的因素一、数据库索引数据库索引是一种数据结构。通过增加额外的写操作和存储空间来维护数据库

2022-04-30 22:40:51 464

工业级图像分类实现(包含完整代码+注释)

内容包含数据集制作,模型训练,模型测试三个完整部分。实现了对于人脸微笑的分类,代码中包含完整注释,建议直接看https://blog.csdn.net/nanhuaibeian/article/details/106734550,可以配合博客观看。

2020-12-03

建模思路解决智慧政务的代码和论文

和数学建模专栏智慧政务问题配套,内含代码,预处理之后的文件,包括最后的论文,建议看专栏自己按照思路处理文件得到结果,如果实在不知道怎么处理,再购买处理好的资源文件。

2020-11-21

SQLyog.zip

SQLyog 管理mysql神器附账号密码, 管理mysql,mysql的图形化管理界面,十分好用,管理mysql,mysql的图形化管理界面,十分好用

2020-08-31

PLSQL+instantclient.7z

用于在服务端和客户端连接Oracle使用,具体使用方法见Oracle专栏,有详细使用办法,里面也包含安装步骤。

2020-05-27

Java 旅游网案例.zip

Java实现的一个旅游网案例,包括前台和后天的页面,使用了 servlet,jQuery,redis,mysql,maven,html,jdbc等技术,可以配合我的博客旅游网案例学习。

2020-04-23

java 用户信息展示案例.7z

java 用户信息展示案例,包含用户管理员登录界面,用户信息后台管理界面,实现了用户信息的增删改查,以及分页查询,界面优化等,具体可以配合文章学习。

2020-03-30

MySQL-5.5.40软件(win32和win64包括安装卸载说明).7z

MySQL-5.5.40软件包括 win32和win64 两个版本的安装包,同时包含安装和卸载的说明文档

2020-02-27

Play the ball.zip

小甲鱼的课程 Play the ball 的素材图片和第一节源代码,有需要的可以下载。

2019-08-17

sqli-labs-master-注入学习靶机

sqli-labs是一个非常好的学习sql注入的一个游戏教程,是一个印度程序猿的搬砖建造的,对于了解sqlmap的原理很有帮助。

2019-01-19

空空如也

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

TA关注的人

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