![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
个人学习笔记
文章平均质量分 87
Swing_zzZ
这个作者很懒,什么都没留下…
展开
-
Redis学习笔记 ---- 常见面试题
Redis 是一种的,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于等场景。Redis 提供了多种数据类型来支持不同的业务场景,比如并且的,因为执行命令由负责的,不存在并发竞争的问题。Redis 具备「高性能」和「高并发」两种特性。操作 Redis 缓存就是直接操作内存,速度相当快;直接访问 Redis 能够承受的请求是远远大于直接访问 MySQL 的。原创 2023-03-27 21:19:15 · 530 阅读 · 0 评论 -
Redis学习笔记 ---- 数据结构
随着 Redis 版本的更新,后面又支持了四种数据类型:。原创 2023-03-20 19:04:43 · 583 阅读 · 1 评论 -
操作系统学习笔记 ---- 网络系统
直接内存访问(Direct Memory Access) 技术。在进行 I/O 设备和内存的数据传输的时候,的工作,而 CPU 不再参与任何与数据搬运相关的事情,这样 CPU 就可以去处理别的事务。DMA将磁盘控制器缓冲区的数据拷贝到内存缓冲区(该过程不占用CPU)传统的文件传输:数据读取和写入是从用户空间到内核空间来回复制,而内核空间的数据是通过操作系统层面的 I/O 接口从磁盘读取或写入。期间共发生了 4 次用户态与内核态的上下文切换,还发生了 4 次数据拷贝。原创 2023-03-17 10:32:04 · 436 阅读 · 0 评论 -
操作系统学习笔记 ----文件系统
基本数据单位是 文件Linux 文件系统会为每个文件分配两个数据结构:索引节点(index node)和目录项(directory entry),用来记录文件的元信息和目录层次结构。索引节点( inode),用来记录文件的元信息,比如 inode 编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘的位置等等。索引节点是文件的唯一标识。同样占用磁盘空间目录项(dentry),用来记录文件的名字、索引节点指针以及与其他目录项的层级关联关系。目录项是由内核维护的一个数据结构,不存放于磁盘,而是缓存在内存。原创 2023-03-14 10:15:17 · 320 阅读 · 0 评论 -
ThreadLocal学习笔记
1、Spring采用Threadlocal的方式,来保证单个线程中的数据库操作使用的是同一个数据库连接,同时,采用这种方式可以使业务层使用事务时不需要感知并管理connection对象,通过传播级别,巧妙地管理多个事务配置之间的切换,挂起和恢复。每一个ThreadLocal对象都有一个threadLocalHashCode,在插入过程中,根据这个hash值,定位到table中的位置i,如果当前位置是空的,就初始化一个Entry对象放在位置i上;在使用的最后用remove把值清空就好了。原创 2023-02-27 14:45:14 · 70 阅读 · 0 评论 -
操作系统学习笔记 ---- 内存管理
线程是进程当中的一条执行流程。同一个进程内多个线程之间可以共享代码段、数据段、打开的文件等资源,但每个线程各自都有一套独立的寄存器和栈,这样可以确保线程的控制流是相对独立的。· 优点:· 一个进程中可以同时存在多个线程;· 各个线程之间可以并发执行;· 各个线程之间可以共享地址空间和文件等资源;· 缺点:· 当进程中的一个线程崩溃时,会导致其所属进程的所有线程崩溃(C/C++,Java不会)原创 2023-02-22 17:22:03 · 300 阅读 · 0 评论 -
操作系统学习笔记 ---- 硬件结构
运算器、控制器、存储器、输入设备、输出设备运算器、控制器是在中央处理器里的,存储器就我们常见的内存,输入输出设备则是计算机外接的设备,比如键盘就是输入设备,显示器就是输出设备。存储单元和输入输出设备要与中央处理器打交道的话,离不开总线。原创 2023-02-20 21:23:50 · 112 阅读 · 0 评论 -
计算机网络学习笔记 ---- TCP面向字节流协议
由包头和数据组成,其中包头包是固定大小的,而且包头里有一个字段来说明紧随其后的数据有多大。比如这个消息结构体,首先 4 个字节大小的变量来表示数据长度,真正的数据则在后面。当接收方接收到包头的大小(比如 4 个字节)后,就解析包头的内容,于是就可以知道数据的长度,然后接下来就继续读取数据,直到读满数据的长度,就可以组装成一个完整到用户消息来处理了。原创 2023-02-20 21:03:31 · 149 阅读 · 0 评论 -
计算机网络学习笔记 ---- TCP重传机制、滑动窗口、流量控制、拥塞控制
TCP 实现可靠传输的方式之一,是通过。原创 2023-02-20 20:47:00 · 546 阅读 · 0 评论 -
计算机网络学习笔记 ---- TCP三次握手、四次挥手
TCP 是面向连接的可靠的、基于字节流的传输层通信协议。是一个工作在传输层的可靠数据传输的服务,它能确保接收端接收的网络包是无损坏无间隔非冗余和按序的。什么是连接:用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括 Socket、序列号和窗口大小称为连接。建立一个 TCP 连接是需要客户端与服务端达成下面三个信息的共识。Socket:由 IP 地址和端口号组成序列号:用来解决乱序问题等窗口大小:用来做流量控制TCP四元组可唯一确定一个连接。原创 2023-02-18 21:27:04 · 558 阅读 · 0 评论 -
计算机网络学习笔记 ---- RPC、WebSocket与HTTP区别
HTTP 协议(Hyper Text Transfer Protocol),又叫做超文本传输协议。我们用的比较多,平时上网在浏览器上敲个网址就能访问网页,这里用到的就是 HTTP 协议。而 RPC(Remote Procedure Call),又叫做远程过程调用。它本身并不是一个具体的协议,而是一种调用方式。比如 比较有名的gRPC,thrift。原创 2023-02-15 14:35:27 · 1064 阅读 · 1 评论 -
计算机网络学习笔记 ---- HTTP/2、HTTP/3
第一点,,仍然用「http://」表示,用「https://」表示,于是只需要浏览器和服务器在背后自动升级协议,这样可以让用户意识不到协议的升级,很好的实现了协议的平滑升级。第二点,,还是基于 TCP 协议传输,应用层方面为了保持功能上的兼容,HTTP/2 把 HTTP 分解成了「语义」和「语法」两个部分,「语义」层不做改动,与 HTTP/1.1 完全一致,比如请求方法、状态码、头字段等规则保留不变。HTTP/2 在「语法」层面做了很多改造,基本改变了 HTTP 报文的传输格式。原创 2023-02-15 10:59:31 · 443 阅读 · 0 评论 -
计算机网络学习笔记 ---- HTTPS
其中每一个「框」都是一个记录(record),是 TLS 收发数据的基本单位,类似于 TCP 里的 segment。多个记录可以组合成一个 TCP 包发送,所以通常经过「四个消息」就可以完成 TLS 握手,也就是需要 2个 RTT 的时延,然后就可以在安全的通信环境里发送 HTTP 报文,实现 HTTPS 协议。不同的密钥交换算法,TLS 的握手过程可能会有一些区别。考虑到性能的问题,双方在加密应用信息时使用的是,而对称加密密钥是的,为了保证对称加密密钥的安全性,所以使用的方式来。原创 2023-02-15 09:27:35 · 261 阅读 · 0 评论 -
计算机网络学习笔记 ---- HTTP/1.1
避免发送 HTTP 请求的方法就是通过。HTTP 协议的头部有不少是针对缓存的字段。客户端会把第一次请求以及响应的数据保存在本地磁盘上,其中将请求的 URL 作为 key,而响应作为 value,两者形成映射关系。服务器在发送 HTTP 响应时,会估算一个过期的时间,并把这个信息放到响应头部中,这样客户端在查看响应头部的信息时,一旦发现缓存的响应是过期的,则就会重新发送网络请求。原创 2023-02-14 10:09:55 · 152 阅读 · 0 评论 -
计算机网络学习笔记 ---- HTTP常见面试题
通过哈希算法可以确保内容不会被篡改,但是并不能保证「内容 + 哈希值」不会被中间人替换,原创 2023-02-13 17:47:20 · 291 阅读 · 0 评论 -
计算机网络学习笔记 ---- 基础篇
TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层。网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。原创 2023-02-11 20:25:03 · 565 阅读 · 0 评论 -
mysql学习笔记(一)
(包括建表、修改表结构等)和。原创 2022-12-02 11:12:25 · 3097 阅读 · 0 评论 -
JAVA学习笔记 -- 设计模式
Spring框架总体架构图:核心容器由 beans、core、context 和 expression 4个模块组成· spring-beans和spring-core模块是Spring框架的核心模块,包含控制反转(IOC)和依赖注入(DI)。BeanFactory使用控制反转对应用程序的配置和依赖性规范与实际的应用程序代码进行分离。原创 2022-11-18 17:33:48 · 337 阅读 · 0 评论 -
JAVA学习笔记 -- JUC并发编程
遗留的安全集合,如Hashtable,其方法都是用synchronized来修饰修饰的安全集合,如SynchronizedMap,直接调用map的方法,但会增加synchronized的修饰JUC 安全集合· Blocking大部分实现基于锁,并提供用来阻塞的方法· CopyOnWrite 之类容器修改开销相对较重· Concurrent 类型的容器· 内部很多操作使用cas优化,一般可提供较高吞吐量· 弱一致性。原创 2022-10-27 15:51:20 · 460 阅读 · 0 评论 -
JVM--学习笔记(四) --内存模型
java内存模型 是 Java Memory Model(JMM),JMM定义了一套在多线程读写共享数据(成员变量、数组)时,对数据的可见性、有序性和原子性的规则和保障例如,完成静态变量的自增、自减需要在主存和线程内存中进行数据交换:先从主内存中读取i值,然后在线程内存中进行操作,最后把i值重新赋值给主内存synchronized(同步关键字),可用来修饰成员变量和静态成员变量,它可以避免线程从自己的工作缓存中查找变量的值,必须到主存中获取它的值,线程操作volatile变量都是直接操作主存。原创 2022-09-06 14:49:39 · 118 阅读 · 0 评论 -
JVM--学习笔记(三) --类加载与字节码技术
想加载非classpath随意路径中的类文件· 都是通过接口来使用实现,希望解耦时,常用在框架设计· 这些类希望予以隔离,不同应用的同名类都可以加载,不冲突,常见于tomcat容器1、继承ClassLoader父类2、要遵从双亲委派机制,重写findClass方法(注意不是重写loadClass方法,否则不会走双亲委派机制)3、读取类文件的字节码4、调用父类的defineClass方法来加载类5、使用者调用该类加载器的loadClass方法。...原创 2022-08-31 21:38:20 · 209 阅读 · 0 评论 -
JVM--学习笔记(二)--垃圾回收
当一个对象的引用计数为0时,则可以被判断为垃圾进行回收。原创 2022-08-23 10:13:12 · 170 阅读 · 0 评论 -
JVM--学习笔记(一) --内存结构
Java virtual Machine (java 二进制字节码的运行环境)原创 2022-08-16 21:23:44 · 116 阅读 · 0 评论 -
SpringCloud微服务-----面试内容
Nacos内部接收到注册请求时,不会立即写数据,而是将服务注册任务放入一个阻塞队列就立即响应给客户端。然后利用线程池读取阻塞队列中的任务,异步来完成实例更新,从而提高并发写能力。...原创 2022-07-27 12:28:33 · 242 阅读 · 0 评论 -
SpringCloud微服务---学习笔记(三)--服务异步通讯
RabbitMQ高级特性。原创 2022-07-18 08:58:00 · 468 阅读 · 0 评论 -
SpringCloud微服务---学习笔记(二)--多级缓存
传统缓存策略一般是请求到达Tomcat,先查询Redis,如果未命中则查询数据库。存在问题:多级缓存方案多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能用作缓存的Nginx是业务Nginx,需要部署为集群,再有专门的Nginx用来做反向代理:缓存分两类:1.1.1 CaffeineCaffeine是基于Java8开发的,提供了近乎最佳命中率的高性能的本地缓存库(Spring内部的缓存使用的就是Caffeine)Caffeine提供三种缓存驱逐策略:·原创 2022-07-12 15:23:52 · 1023 阅读 · 0 评论 -
SpringCloud微服务---学习笔记(一)
微服务技术栈图示:单体架构:将业务所有功能集中在一个项目中开发,打成一个包部署。优点:缺点:分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发(一个服务)优点:微服务一种经过良好架构设计的分布式架构方案特征:微服务技术对比企业需求:SpringCloud与SpringBoot版本兼容关系:注意事项:1、不同微服务,不能重复开发相同业务2、微服务数据独立,不访问其他微服务的数据库3、微服务将自己的业务暴露为接口,供其他微服务使用基于RestTemplate发起的原创 2022-07-07 20:32:15 · 959 阅读 · 0 评论 -
Spring注解开发学习笔记
1 IOC1.1 工厂模式使用工厂中方法代替new形式创建对象的一种设计模式1.2 Inversion of Control控制翻转一种思想,用于消减代码间的耦合。实现思想:利用工厂设计模式,把创建对象代码从具体类中剥离出来,交由工厂完成,从而降低代码间依赖关系。耦合分类:1 内容耦合(最高程度耦合) 当一个模块直接修改 或 操作另一个模块数据时,或一个模块不通过正常入口而转入另一个模块2 公共耦合 两个 或 两个以上模块共同引用一个全局数据项3 外部耦合 一组模块都访问同一全局简单原创 2022-05-07 16:51:08 · 1299 阅读 · 0 评论 -
SSM整合学习笔记
1 原始整合方式步骤一:创建数据库表步骤二:创建Maven工程导入坐标<dependencies> <!--spring相关--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.5.RE原创 2022-03-04 16:00:42 · 456 阅读 · 0 评论 -
Mybatis、Mybatis-Plus学习笔记
1 Mybatis简介1.1 原始jdbc分析存在问题:1 数据库连接、创建、释放 频繁造成系统资源浪费2 sql语句 硬编码,不易维护3 查询操作,需手动将结果集中的数据手动封装到实体中。 插入操作,需手动将实体的数据设置到sql语句的占位符位置。应对方案:1 使用数据库连接池初始化连接资源2 将sql语句抽取到xml配置文件中3 使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射1.2 Mybatis基于java的持久层框架,它内部封装了jdbc,只需原创 2022-03-03 17:12:37 · 1543 阅读 · 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 · 306 阅读 · 0 评论 -
SpringMVC学习笔记
1 概述SpringMVC 是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架1.1 开发步骤1 导入SpringMVC包2 配置Servlet3 编写Controller4 将Controller使用注解配置到Spring容器中(@Controller)5 配置spring-mvc.xml文件(配置组件扫描)6 执行访问测试·...原创 2022-02-16 11:11:49 · 207 阅读 · 0 评论 -
Git分布式版本控制工具学习
1 概述应用场景:1 备份2 代码还原3 协同开发4 代码追溯常用版本控制器的方式:1 集中式: 版本库集中存放在中央服务器里,必须联网 ,如SVN、CVS2 分布式: 无需联网,每人都有一个完整的版本库,如GitGit工作流程图命令如下: 1 clone:从远程仓库中克隆代码到本地仓库 2 checkout:从本地仓库中检出一个仓库分支然后修订 3 add:在提交前先将代码提交至暂存区 4 commit:提交到本地仓库(保存修改的各种历史版本) 5 fetch:从远原创 2021-11-18 21:40:43 · 1930 阅读 · 0 评论 -
Springboot学习
SpringBoot概述SpringBoot 是使用最小的配置去启动Spring的项目。提供一种快速使用Spring项目的方式!!!!Spring缺点: 1 配置繁琐 2 依赖繁琐SpringBoot功能: 1 自动配置 一个运行时的过程 2 起步依赖 本质是一个Maven项目对象模型(POM),定义了对其他库的传递依赖 即,将具备某种功能的坐标打包到一起,并提供一些默认的功能。 3 辅助功能 提供一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标、外部配置等。原创 2021-11-07 16:20:18 · 509 阅读 · 0 评论 -
python 在控制台实现学生信息管理系统(采用文件存储学生信息)附完整代码
简要说明该系统是本人学习python基础,为了对基础知识加深巩固使用,参考教学视频练手写的。用python 3.8 和idea2020.1版本。仅使用到os一个额外的模块代码直接复制,就可运行。系统比较粗糙,往大佬可以提些改进意见!!!!!!!!仅供参考,不喜勿喷!!!!!!!系统框架本系统涉及到的文件 仅三个main、Student和Student_mangementmain.py作为主函数,仅是作为系统的入口import Student_mangement as sm#主函数原创 2021-10-28 17:20:44 · 526 阅读 · 0 评论 -
Vue框架学习----VueCLI
1.Vue CLI1.1 Vue CLI使用前提1 NodeJS2 Webpack1.2 Vue CLI使用安装npm install @vue/cli@3.2.1 -g如需拉取2.x模板(旧版本)npm install @vue/cli-init -gCLI2详解:脚手架目录先从package.json中找目录结构:原创 2021-08-16 17:16:55 · 134 阅读 · 0 评论 -
Vue框架学习----箭头函数
1箭头函数基本使用const 变量名 = (参数列表) => { }2参数、返回值在有一个参数时,小括号可省去函数代码块中只有一行代码时,可写成如下形式:3 this使用向外层作用域中一层一层查找this,直到有this的定义...原创 2021-08-16 17:15:43 · 181 阅读 · 0 评论 -
Vue框架学习----模块化开发
1 使用模块作为出口1.在匿名函数内定义一个对象2.给对象添加各种需要暴露到外面的属性、方法3.最后将对象返回,在外面使用一个变量名接受var 变量名 =(function(){ //定义一个对象 var obj = {} //在对象内部添加属性、方法 obj.flag = true obj.myfunc = function(info){ console.log(info); } //返回对象 return obj})()在外边调用if(变量名.flag){原创 2021-08-11 16:46:23 · 799 阅读 · 0 评论 -
Vue框架学习----组件化
组件化1 注册组件基本步骤1)创建组件构造器社区其中,在ES6 用 ` 来修饰template里的内容(键盘Esc下面的键)可直接将内容进行换行。2)注册组件3)使用组件2 全局组件、局部组件1.全局组件,直接写在外部在构造的多个Vue实例中使用2.局部组件,需写在Vue实例里面的只可在这一个实例内使用3 父组件、子组件组件构造器中也可声明注册组件直接在实例中使用标签,就可将cpn1与cpn2一起显示出来4注册组件语法糖全局组件 语法糖形式:局部组件 语法原创 2021-07-24 09:51:25 · 104 阅读 · 0 评论 -
Vue框架学习----基础
Vue基础1.vuevue是渐进式框架,可作为应用一部分嵌入。功能包括:1)解耦视图、数据2)可复用组件3)前端路由技术4)状态管理5)虚拟DOM2.vue安装方式1:CDN引入方式2:下载、引入方式3:NPM安装随后,新建项目,在项目内设置一个新文件夹,将vue.js放入3.第一个vuejs新建文件夹,再在其中新建一个HTML文件其中,new Vue({参数为对象})var变量无作用域一般使用let(变量)、const(常量)声明式编程,数据与样式分开处理创原创 2021-07-13 16:51:28 · 673 阅读 · 0 评论