学习笔记
文章平均质量分 89
Swing_zzZ
这个作者很懒,什么都没留下…
展开
-
Redis学习笔记 ---- 常见面试题
Redis 是一种的,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于等场景。Redis 提供了多种数据类型来支持不同的业务场景,比如并且的,因为执行命令由负责的,不存在并发竞争的问题。Redis 具备「高性能」和「高并发」两种特性。操作 Redis 缓存就是直接操作内存,速度相当快;直接访问 Redis 能够承受的请求是远远大于直接访问 MySQL 的。原创 2023-03-27 21:19:15 · 572 阅读 · 0 评论 -
Redis学习笔记 ---- 数据结构
随着 Redis 版本的更新,后面又支持了四种数据类型:。原创 2023-03-20 19:04:43 · 637 阅读 · 1 评论 -
操作系统学习笔记 ---- 网络系统
直接内存访问(Direct Memory Access) 技术。在进行 I/O 设备和内存的数据传输的时候,的工作,而 CPU 不再参与任何与数据搬运相关的事情,这样 CPU 就可以去处理别的事务。DMA将磁盘控制器缓冲区的数据拷贝到内存缓冲区(该过程不占用CPU)传统的文件传输:数据读取和写入是从用户空间到内核空间来回复制,而内核空间的数据是通过操作系统层面的 I/O 接口从磁盘读取或写入。期间共发生了 4 次用户态与内核态的上下文切换,还发生了 4 次数据拷贝。原创 2023-03-17 10:32:04 · 460 阅读 · 0 评论 -
操作系统学习笔记 ----文件系统
基本数据单位是 文件Linux 文件系统会为每个文件分配两个数据结构:索引节点(index node)和目录项(directory entry),用来记录文件的元信息和目录层次结构。索引节点( inode),用来记录文件的元信息,比如 inode 编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘的位置等等。索引节点是文件的唯一标识。同样占用磁盘空间目录项(dentry),用来记录文件的名字、索引节点指针以及与其他目录项的层级关联关系。目录项是由内核维护的一个数据结构,不存放于磁盘,而是缓存在内存。原创 2023-03-14 10:15:17 · 336 阅读 · 0 评论 -
操作系统学习笔记 ---- 内存管理
线程是进程当中的一条执行流程。同一个进程内多个线程之间可以共享代码段、数据段、打开的文件等资源,但每个线程各自都有一套独立的寄存器和栈,这样可以确保线程的控制流是相对独立的。· 优点:· 一个进程中可以同时存在多个线程;· 各个线程之间可以并发执行;· 各个线程之间可以共享地址空间和文件等资源;· 缺点:· 当进程中的一个线程崩溃时,会导致其所属进程的所有线程崩溃(C/C++,Java不会)原创 2023-02-22 17:22:03 · 333 阅读 · 0 评论 -
操作系统学习笔记 ---- 硬件结构
运算器、控制器、存储器、输入设备、输出设备运算器、控制器是在中央处理器里的,存储器就我们常见的内存,输入输出设备则是计算机外接的设备,比如键盘就是输入设备,显示器就是输出设备。存储单元和输入输出设备要与中央处理器打交道的话,离不开总线。原创 2023-02-20 21:23:50 · 126 阅读 · 0 评论 -
计算机网络学习笔记 ---- TCP面向字节流协议
由包头和数据组成,其中包头包是固定大小的,而且包头里有一个字段来说明紧随其后的数据有多大。比如这个消息结构体,首先 4 个字节大小的变量来表示数据长度,真正的数据则在后面。当接收方接收到包头的大小(比如 4 个字节)后,就解析包头的内容,于是就可以知道数据的长度,然后接下来就继续读取数据,直到读满数据的长度,就可以组装成一个完整到用户消息来处理了。原创 2023-02-20 21:03:31 · 167 阅读 · 0 评论 -
计算机网络学习笔记 ---- TCP重传机制、滑动窗口、流量控制、拥塞控制
TCP 实现可靠传输的方式之一,是通过。原创 2023-02-20 20:47:00 · 577 阅读 · 0 评论 -
计算机网络学习笔记 ---- TCP三次握手、四次挥手
TCP 是面向连接的可靠的、基于字节流的传输层通信协议。是一个工作在传输层的可靠数据传输的服务,它能确保接收端接收的网络包是无损坏无间隔非冗余和按序的。什么是连接:用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括 Socket、序列号和窗口大小称为连接。建立一个 TCP 连接是需要客户端与服务端达成下面三个信息的共识。Socket:由 IP 地址和端口号组成序列号:用来解决乱序问题等窗口大小:用来做流量控制TCP四元组可唯一确定一个连接。原创 2023-02-18 21:27:04 · 566 阅读 · 0 评论 -
计算机网络学习笔记 ---- RPC、WebSocket与HTTP区别
HTTP 协议(Hyper Text Transfer Protocol),又叫做超文本传输协议。我们用的比较多,平时上网在浏览器上敲个网址就能访问网页,这里用到的就是 HTTP 协议。而 RPC(Remote Procedure Call),又叫做远程过程调用。它本身并不是一个具体的协议,而是一种调用方式。比如 比较有名的gRPC,thrift。原创 2023-02-15 14:35:27 · 1132 阅读 · 1 评论 -
计算机网络学习笔记 ---- HTTP/2、HTTP/3
第一点,,仍然用「http://」表示,用「https://」表示,于是只需要浏览器和服务器在背后自动升级协议,这样可以让用户意识不到协议的升级,很好的实现了协议的平滑升级。第二点,,还是基于 TCP 协议传输,应用层方面为了保持功能上的兼容,HTTP/2 把 HTTP 分解成了「语义」和「语法」两个部分,「语义」层不做改动,与 HTTP/1.1 完全一致,比如请求方法、状态码、头字段等规则保留不变。HTTP/2 在「语法」层面做了很多改造,基本改变了 HTTP 报文的传输格式。原创 2023-02-15 10:59:31 · 465 阅读 · 0 评论 -
计算机网络学习笔记 ---- HTTPS
其中每一个「框」都是一个记录(record),是 TLS 收发数据的基本单位,类似于 TCP 里的 segment。多个记录可以组合成一个 TCP 包发送,所以通常经过「四个消息」就可以完成 TLS 握手,也就是需要 2个 RTT 的时延,然后就可以在安全的通信环境里发送 HTTP 报文,实现 HTTPS 协议。不同的密钥交换算法,TLS 的握手过程可能会有一些区别。考虑到性能的问题,双方在加密应用信息时使用的是,而对称加密密钥是的,为了保证对称加密密钥的安全性,所以使用的方式来。原创 2023-02-15 09:27:35 · 274 阅读 · 0 评论 -
计算机网络学习笔记 ---- HTTP/1.1
避免发送 HTTP 请求的方法就是通过。HTTP 协议的头部有不少是针对缓存的字段。客户端会把第一次请求以及响应的数据保存在本地磁盘上,其中将请求的 URL 作为 key,而响应作为 value,两者形成映射关系。服务器在发送 HTTP 响应时,会估算一个过期的时间,并把这个信息放到响应头部中,这样客户端在查看响应头部的信息时,一旦发现缓存的响应是过期的,则就会重新发送网络请求。原创 2023-02-14 10:09:55 · 159 阅读 · 0 评论 -
计算机网络学习笔记 ---- HTTP常见面试题
通过哈希算法可以确保内容不会被篡改,但是并不能保证「内容 + 哈希值」不会被中间人替换,原创 2023-02-13 17:47:20 · 314 阅读 · 0 评论 -
计算机网络学习笔记 ---- 基础篇
TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层。网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。原创 2023-02-11 20:25:03 · 572 阅读 · 0 评论 -
JVM--学习笔记(四) --内存模型
java内存模型 是 Java Memory Model(JMM),JMM定义了一套在多线程读写共享数据(成员变量、数组)时,对数据的可见性、有序性和原子性的规则和保障例如,完成静态变量的自增、自减需要在主存和线程内存中进行数据交换:先从主内存中读取i值,然后在线程内存中进行操作,最后把i值重新赋值给主内存synchronized(同步关键字),可用来修饰成员变量和静态成员变量,它可以避免线程从自己的工作缓存中查找变量的值,必须到主存中获取它的值,线程操作volatile变量都是直接操作主存。原创 2022-09-06 14:49:39 · 122 阅读 · 0 评论 -
JVM--学习笔记(三) --类加载与字节码技术
想加载非classpath随意路径中的类文件· 都是通过接口来使用实现,希望解耦时,常用在框架设计· 这些类希望予以隔离,不同应用的同名类都可以加载,不冲突,常见于tomcat容器1、继承ClassLoader父类2、要遵从双亲委派机制,重写findClass方法(注意不是重写loadClass方法,否则不会走双亲委派机制)3、读取类文件的字节码4、调用父类的defineClass方法来加载类5、使用者调用该类加载器的loadClass方法。...原创 2022-08-31 21:38:20 · 221 阅读 · 0 评论 -
JVM--学习笔记(二)--垃圾回收
当一个对象的引用计数为0时,则可以被判断为垃圾进行回收。原创 2022-08-23 10:13:12 · 181 阅读 · 0 评论 -
JVM--学习笔记(一) --内存结构
Java virtual Machine (java 二进制字节码的运行环境)原创 2022-08-16 21:23:44 · 129 阅读 · 0 评论 -
SpringCloud微服务-----面试内容
Nacos内部接收到注册请求时,不会立即写数据,而是将服务注册任务放入一个阻塞队列就立即响应给客户端。然后利用线程池读取阻塞队列中的任务,异步来完成实例更新,从而提高并发写能力。...原创 2022-07-27 12:28:33 · 249 阅读 · 0 评论 -
SpringCloud微服务---学习笔记(三)--服务异步通讯
RabbitMQ高级特性。原创 2022-07-18 08:58:00 · 476 阅读 · 0 评论 -
SpringCloud微服务---学习笔记(二)--多级缓存
传统缓存策略一般是请求到达Tomcat,先查询Redis,如果未命中则查询数据库。存在问题:多级缓存方案多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能用作缓存的Nginx是业务Nginx,需要部署为集群,再有专门的Nginx用来做反向代理:缓存分两类:1.1.1 CaffeineCaffeine是基于Java8开发的,提供了近乎最佳命中率的高性能的本地缓存库(Spring内部的缓存使用的就是Caffeine)Caffeine提供三种缓存驱逐策略:·原创 2022-07-12 15:23:52 · 1046 阅读 · 0 评论 -
SpringCloud微服务---学习笔记(一)
微服务技术栈图示:单体架构:将业务所有功能集中在一个项目中开发,打成一个包部署。优点:缺点:分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发(一个服务)优点:微服务一种经过良好架构设计的分布式架构方案特征:微服务技术对比企业需求:SpringCloud与SpringBoot版本兼容关系:注意事项:1、不同微服务,不能重复开发相同业务2、微服务数据独立,不访问其他微服务的数据库3、微服务将自己的业务暴露为接口,供其他微服务使用基于RestTemplate发起的原创 2022-07-07 20:32:15 · 1096 阅读 · 0 评论 -
Spring注解开发学习笔记
1 IOC1.1 工厂模式使用工厂中方法代替new形式创建对象的一种设计模式1.2 Inversion of Control控制翻转一种思想,用于消减代码间的耦合。实现思想:利用工厂设计模式,把创建对象代码从具体类中剥离出来,交由工厂完成,从而降低代码间依赖关系。耦合分类:1 内容耦合(最高程度耦合) 当一个模块直接修改 或 操作另一个模块数据时,或一个模块不通过正常入口而转入另一个模块2 公共耦合 两个 或 两个以上模块共同引用一个全局数据项3 外部耦合 一组模块都访问同一全局简单原创 2022-05-07 16:51:08 · 1318 阅读 · 0 评论 -
Spring学习笔记
1 Spring配置数据源1.1 注解开发原始注解: * @Component:使用在类上 用于实例化Bean * @Controller:使用在web层类上 用于实例化Bean * @Service:使用在service层类上 用于实例化Bean * @Repository:使用在dao层类上 用于实例化Bean * @Autowired:使用在字段上 用于根据类型依赖注入 * @Qualifier:结合@Autowired一起使用 用于根据名称进行依赖注入 * @Resource:相当原创 2022-02-28 15:37:35 · 314 阅读 · 0 评论 -
根据数据范围判断时间复杂度
一般ACM或者笔试题,或者力扣上的题目的时间限制是1秒或2秒。在这种情况下,C++代码中的操作次数控制在 1e7 为最佳。我们做题时可以根据不同数据范围,知道代码的时间复杂度和算法该如何选择(n越小说明我们可以使用越暴力、时间复杂度越高的解法):n≤30, 指数级别, dfs+剪枝,状态压缩dpn≤100 => O(n3),floyd,dpn≤1000 => O(n2),O(n2logn),dp,二分分界点(一旦n到达1e4,就不适合n2的暴力解法)n≤10000 => O.转载 2022-02-16 15:38:39 · 614 阅读 · 0 评论