
知识点总结
文章平均质量分 84
个人知识点总结
Linging_24
好记性不如烂笔头。
展开
-
mysql死锁排查
查看等待锁的事务:SELECT * FROM information_schema.INNODB_LOCK_WAITS。查看正在锁的事务:SELECT * FROM information_schema.INNODB_LOCKS。查看正在运行的事务:SELECT * FROM information_schema.INNODB_TRX。查看事务:SELECT * FROM information_schema.INNODB_TRX。查看线程列表:show processlist;表中数据:student。原创 2024-01-04 22:29:21 · 1576 阅读 · 0 评论 -
基于ReentrantLock详解AQS源码
7.上述流程可以说是公平锁的抢占方式,每次都是队列头节点的下一个节点抢到锁,严格排队枪锁,如果是非公平锁,则在唤醒head的下一个节点进行抢锁时,其他线程也可以在此期间抢锁,如果被其他线程抢到锁,则head的下一个节点还是会重新挂起,然后新的抢占锁的线程会重新关联head节点。6.线程三释放锁,把AQS中的state设置为0,清空持有锁线程,队列中的节点还是存在一个头节点,这个节点的内容都是空的,只要头节点创建出来了就一直存在,持有锁的线程会关联头节点。原创 2023-12-12 23:49:40 · 1451 阅读 · 0 评论 -
Linux的五种IO模型
不管使用何种方式,好处都是应用进程不会阻塞,可以继续执行,只要等待信号通知数据准备好被处理了、数据准备好被读取了。操作系统内核收到用户进程发起的请求后,从 I/O 设备读取数据到 kernel buffer 中,再将 buffer 中的数据拷贝到用户进程的地址空间,用户进程获取到数据后返回给客户端。和信号驱动 I/O 模型的区别是前者内核告诉我们何时可以开始一个 I/O 操作,而后者内核会告诉我们一个 I/O 操作何时完成。众所周知,出于对 OS 安全性的考虑,用户进程是不能直接操作 I/O 设备的。原创 2023-12-13 23:08:50 · 1463 阅读 · 1 评论 -
IO零拷贝
Linux 2.1 开始提供了 sendFile 函数,其基本原理是:数据根本不经过用户态,直接从 Kernel Buffer 进入到 Socket Buffer,并且由于和用户态完全无关,这就避免了一次上下文切换。因此零拷贝通常是站在操作系统的角度看,即整个过程中,内核缓冲区之间是没有重复数据的。由此可见,复制的操作太频繁,共有 2 次 DMA 拷贝、2 次 CPU 拷贝、4 次上下文切换。紧接着发生第二次数据拷贝,即从内核缓冲区拷贝到用户缓冲区,同时发生一次内核态到用户态的上下文切换。原创 2023-12-13 23:19:42 · 980 阅读 · 0 评论 -
Reactor线程模型详解
在目前的线程模型中一种是传统阻塞的I/O模型,一种是Reactor线程模型。原创 2023-12-13 23:54:54 · 1633 阅读 · 0 评论 -
HashMap JDK1.8源码详解
首先将高16位无符号右移16位与低十六位做异或运算。如果不这样做,而是直接做&运算那么高十六位所代表的部分特征就可能被丢失 将高十六位无符号右移之后与低十六位做异或运算使得高十六位的特征与低十六位的特征进行了混合得到的新的数值中就高位与低位的信息都被保留了 ,而在这里采用异或运算而不采用& ,| 运算的原因是 异或运算能更好的保留各部分的特征,如果采用&运算计算出来的值会向1靠拢,采用|运算计算出来的值会向0靠拢。int类型的数值是4个字节的,右移16位异或可以同时保留高16位于低16位的特征。原创 2023-09-10 22:31:14 · 225 阅读 · 0 评论 -
ConcurrentHashMap jdk1.8源码详解
原理:cas + synchronized + 数组 + 链表 + 红黑树。用来标识旧hash表扩容后占位的临时节点,即当前桶扩容迁移成功的标识。原创 2023-09-07 20:38:38 · 686 阅读 · 0 评论 -
JavaSE知识点总结
Java基础原创 2023-02-20 22:29:44 · 173 阅读 · 0 评论 -
面试复习知识点
面试题原创 2022-12-03 17:46:28 · 322 阅读 · 0 评论 -
订单相关场景
https://www.youkuaiyun.com/tags/NtTaYg0sODYwNzktYmxvZwO0O0OO0O0O.htmlhttps://blog.youkuaiyun.com/D812359/article/details/120797954以上三种扣库存方式是电商平台最常见的方式,其中第三种方式运用较多,每种方式都有自己使用的场景。商品库存数量较为敏感的场景,比如秒杀、抢购等建议使用下单减库存的方式,大部分正常买家都是想直接购买超优惠的商品。如果采用付款减库存的方式,可能会出现商品超卖的情况。比如商家设置秒杀原创 2022-10-26 23:25:49 · 1061 阅读 · 0 评论 -
TOP命令详解
比如,此时1分钟的平均负载为5.6,而我们的操作系统是4个CPU,那么就代表此时系统负载过高,意味着有160%的的超载进程竞争不到CPU;编写一个简单的springboot项目,其中编写一个死循环代码,将项目打成jar包上传服务器,并运行,然后调用接口触发死循环。平均负载可以理解为当前系统的平均活跃进程数,包含了系统处于可运行状态和不可中断状态的平均进程数,就是平均活跃进程数。top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。原创 2022-08-20 10:32:19 · 19352 阅读 · 0 评论 -
Spring事务传播行为及失效this详解
使用this失效的场景:无事务方法A,使用this调用开启默认事务方法B,无论在A方法中抛出异常,还是在B方法中抛出异常,方法A和方法B的操作都不会回滚。无事务方法A,使用代理对象调用开启默认事务方法B,如果方法A抛出异常,方法A和方法B的操作都不会回滚;如果方法B抛出异常,则方法B的操作会回滚,方法A的操作不会回滚。开启默认事务方法A,无事务方法B,方法A使用this或者代理对象调用方法B,方法A抛出异常,方法A和方法B的操作都会回滚。开启默认事务方法A,无事务方法B,方法A使用this或者代理原创 2021-12-05 10:51:57 · 3305 阅读 · 0 评论 -
SpringCloud五大组件原理
1. Eureka原理Eureka作为微服务中的注册中心,其服务注册于发现的原理如下:首先有两个角色,一个服务端和客户端,服务端就是Eureka本身,客户端就是服务提供者和消费者,当服务提供者启动会将自己的信息注册到Eureka去,消费者启动会去注册中心拉取服务列表缓存到本地,消费者就可以远程调用服务提供者。客户端会与注册中心保持心跳来证明自己存活,每隔30s客户端会发送心跳给注册中心,默认情况下,每隔90s注册中心会检查是否有收到心跳,如果没有收到心跳会将客户端从服务列表剔除。但是由于服务之间的调原创 2021-10-31 20:11:11 · 20539 阅读 · 0 评论 -
分布式相关知识点
1.如何防止表单重复提交前端。每次点击后都要等X秒才能点击。数据库添加唯一索引服务器返回表单页面时,会先生成一个subToken保存于session或redis,当表单提交时候携带token,如果token一致,则执行后续,并将服务器中的token删除。如果token不存在,则说明是重复提交。2.如何设计一个秒杀系统前端。在秒杀之前,按钮置灰,并且不给前端真正的请求地址。前端定时请求后端接口,如果到了秒杀时间,则返回给前端真正的地址,前端放开按钮,每次点击后都要等XX秒才能点击。服原创 2021-10-20 10:41:56 · 678 阅读 · 0 评论 -
RocketMQ相关知识点
消息队列的优缺点,以及使用场景?如何保证消息不被重复消费?由于网络波动的原因,无法保证生产消息和消费消息时的重复,所以只能保证消息的幂等性。如何保证消息不丢失原创 2021-10-11 23:28:30 · 693 阅读 · 0 评论 -
dubbo相关知识点
Dubbo是什么?能做什么?Dubbo是阿里巴巴开源的基于Java的高性能RPC分布式服务框架,现已成为Apache基金会孵化项目。致力于提供高性能和透明化的RPC远程服务调用解决方案,以及SOA服务治理方案。简单的说,dubbo就是一个服务框架,只有在分布式的时候才用,本质上是一个远程调用的分布式框架。其核心部分包含:远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式,透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需..原创 2021-10-07 09:30:08 · 239 阅读 · 0 评论 -
xml相关知识点
https://zhuanlan.zhihu.com/p/33804163https://blog.youkuaiyun.com/tanwei4199/article/details/240062751、什么是XML可拓展标记语言,它用于进行数据传输和存储,你可以自定义标签,只需要满足<>闭合</>即可。2、XML与HTML的区别3、XML用于传输数据,那么它与JSON的区别?XML文件格式复杂,比较占宽带,服务器端与客户端解析xml话费较多的资源和时间.JSON文件格式压缩,原创 2021-06-01 14:11:59 · 328 阅读 · 0 评论 -
synchronized详解
1、并发编程会出现原子性、可见性、有序性问题。原子性:在一次或多次操作中,要么所有的操作都执行并且不会受其它因素干扰而中断,要么所有的操作都不执行。在多线程环境下,线程对共享变量的操作,要么成功,要么失败,不会受其它线程的干扰。可见性:在多线程环境下,某个线程对共享变量的修改,其它的线程可以知道并获取最新修改的值。有序性:指程序中代码的执行顺序,java在编译时和运行时对代码进行优化,会导致程序的最终执行顺序不一定是我们Java代码编写时的顺序。2、JVM内存模型Java内存模型,是Java虚拟机原创 2020-12-03 16:57:41 · 1946 阅读 · 0 评论 -
集合相关知识点
https://thinkwon.blog.youkuaiyun.com/article/details/104588551JDK1.7 hashMap线程不安全体现在哪?在HashMap扩容的是时候会调用resize()方法中的transfer()方法,在这里由于是头插法所以在多线程情况下可能出现循环链表,所以后面的数据定位到这条链表的时候会造成数据丢失。和读取的可能导致死循环。JDK1.8 hashMap线程不安全体现在哪?1.8的HashMap对此做了优化,resize采用了尾插法,即不改变原来链表的顺序原创 2020-11-23 19:38:09 · 527 阅读 · 1 评论 -
多线程并发相关知识点
文章目录1、wait/sleep的区别:2、synchronized出现异常会释放锁?3、synchronized和Lock的区别?4、Runnable和Callable的区别?5、为什么内部类不能访问非final的局部变量?6、队列方法的区别?7、线程池详解8、自定义线程池时,我们如何确定线程池的最大线程数量?9、线程池的shutdown和shutdownNow方法的区别?https://thinkwon.blog.youkuaiyun.com/article/details/1048639921、wait/原创 2020-11-22 10:40:04 · 502 阅读 · 0 评论 -
JVM相关知识点
文章目录1、什么是JVM?2、JVM内存结构图1、什么是JVM?JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟计算机功能来实现的。JVM有自己完善的硬件架构,如处理器,堆栈,寄存器等,还有相应的指令系统。JVM是Java实现跨平台的本质,JVM运行在操作系统之上,java程序之下,在不同平台安装不同版本的JVM,由JVM来解释class文件,翻译成不同的机器码。2、JVM内存结构图类装载子系统:将class文件加载到运行时数据区。字节码执行器:将运行时数据原创 2020-11-21 10:59:08 · 866 阅读 · 1 评论 -
JavaWEB相关知识点
https://blog.youkuaiyun.com/xiamiflying/article/details/81938843原创 2020-11-20 10:12:11 · 181 阅读 · 0 评论 -
Linux的常用命令
cd功能:进入目录语法:cd【目录】 cd / 切换到根目录 cd .. 切换到上一级目录 cd ~ 切换到用户主目录列出文件清单 - ls名称:list功能:显示目录文件语法:ls 选项【-al】 【文件/目录】 -a: 显示所有文件名,包括隐藏文件 -l: 详细信息例子:ls -al 帮助命令 - man名称:manual page功能:显示系统中命令与函数的帮助信息例子:man ls创建新文件 - touch名称:touch功能:创建新文件语法:tou原创 2020-11-15 19:30:26 · 491 阅读 · 1 评论 -
Redis相关知识点
文章目录1.什么是Redis?它的优缺点是什么?2.redis是单线程的,为什么还那么快?3.redis支持的数据类型及使用场景4.redis的key的过期策略5.redis的内存淘汰策略6.一个字符串类型的值能存储最大容量是多少?7、缓存穿透、缓存击穿、缓存雪崩解决方案8、redis的持久化机制,及优缺点?1.什么是Redis?它的优缺点是什么?Redis是一个用c语言写的、开源的、基于内存的、高性能的Key-Value 非关系型数据库。优点:提供丰富的数据类型读写性能优异支持数据持久化原创 2020-11-15 09:15:32 · 514 阅读 · 1 评论 -
数据库相关知识点
1、innodb支持事务、myisam不支持事务;2、innodb支持外键、myiasm不支持外键;3、innodb支持行锁、表锁、myisam支持表锁;4、innodb是聚集索引,数据文件和索引绑定在一起,myisam是非聚集索引,数据文件和索引是分离的;5、innodb不保存表的行数,myisam会使用一个变量来保存表的行数;6、innodb不支持全文索引,在5.7版本后,支持全文索引,myisam支持全文索引;7、Innodb存储文件有frm、ibd,而Myisam是frm、MYD、MYI原创 2020-10-24 07:18:14 · 1230 阅读 · 1 评论 -
网络基础相关知识点
文章目录1、tcp的三报文握手2、四报文握手3、为什么是3次握手而不是2次握手?4、四次挥手5、为什么A在TIME-WAIT状态要等待2MSL?6、OSI、TCP\IP、五层协议及其作用和协议7、TCP与UDP8、各协议介绍9、ARP是地址解析协议,简单语言解释一下工作原理。10、RARP协议11、交换机和路由器,及区别12、网桥的作用13、子网掩码的作用14、一个Http请求的过程15、Http和Https的区别16、HTTP的长连接和短连接?17、Cookie和Session的区别?18、ip地址的分类原创 2020-11-16 17:33:31 · 615 阅读 · 1 评论 -
操作系统相关知识点
文章目录1、什么是进程、线程?及区别?2、引入进线程的目的?3、进程实体有哪几部分组成?4、PCB(进程控制块)的作用?5、进程的三种状态及转换的原因?6、操作系统的三个基本类型7、操作系统的概念及基本特征8、并发与并行,及区别?9、虚拟内存10、操作系统的主要功能11、进程间的通信方式12、进程的同步方式13、线程的同步方式14、什么是缓冲区溢出?有什么危害?其原因是什么?15、什么是死锁?死锁产生的条件?16、页面置换算法17、操作系统中进程调度策略有哪几种?18、IO中同步与异步,阻塞与非阻塞区别原创 2020-11-17 14:58:31 · 624 阅读 · 1 评论 -
mybatis相关知识点
https://blog.youkuaiyun.com/a745233700/article/details/80977133https://thinkwon.blog.youkuaiyun.com/article/details/1012929501、Mybatis都有哪些Executor执行器?它们之间的区别是什么?Mybatis有三种基本的Executor执行器,SimpleExecutor、ReuseExecutor、BatchExecutor。SimpleExecutor:每执行一次update或select,就原创 2020-11-20 09:05:34 · 286 阅读 · 0 评论 -
SpringMVC相关知识点
https://blog.youkuaiyun.com/a745233700/article/details/80963758https://thinkwon.blog.youkuaiyun.com/article/details/1043974271、MVC的理解MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。View(视图) -原创 2020-11-20 09:40:38 · 199 阅读 · 0 评论 -
SpringBoot相关知识点
文章目录1、什么是SpringBoot?2、SpringBoot有哪些优点?3、什么是YML,及优势?4、比较一下 Spring Security 和 Shiro 各自的优缺点 ?5、什么是 CSRF 攻击?6、SpringBoot如何解决跨域问题?1、什么是SpringBoot?SpringBoot是Spring的子组项目,它是在Spring的基础上,对我们Spring繁琐的配置进行简化,提供启动器对依赖的统一导入,避免了依赖冲突,它使我们可以很快搭建一个web应用。2、SpringBoot有哪原创 2020-11-20 08:31:29 · 417 阅读 · 0 评论 -
Spring相关知识点
https://blog.youkuaiyun.com/a745233700/article/details/80959716https://thinkwon.blog.youkuaiyun.com/article/details/1043975161、是什么是IOC?控制反转把创建对象的权利交给工厂或者框架,在原来,我们获取对象是采用new的方式,是主动的,现在我们获取对象时,是向工厂或者框架容器要的,有工厂或者框架容器帮我们查找或创建对象,是被动的。这种被动接受的方式获取对象的思想就是控制反转。2、Spring创建be原创 2020-11-20 09:32:07 · 304 阅读 · 1 评论