![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 71
小玄ks
努力学习,迈进大厂
展开
-
【入门】Elasticsearch基本语句
ES中的一些基本查询语句以及细节问题原创 2022-10-08 13:57:23 · 820 阅读 · 1 评论 -
【Redis】主从复制
在Redis中,用户可以通过执行SLAVEOF命令,让一个服务器去复制(replicate)另一个服务器,那么主动复制的就是从服务器,被复制的就是主服务器。老版本Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作:❑同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。❑命令传播操作则用于在主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一致时,让主从服务器的数据库重新回到一致状态。同步(sync)同步操作是从服务器向主服原创 2022-03-29 12:42:36 · 515 阅读 · 0 评论 -
Redis事务
MULTI 、 EXEC 与 WATCH当输入MULTI时,标志着事务的开始,之后命令入队,当输入EXEC时,表示开始执行事务。WATCH命令是一个乐观锁(optimistic locking),它可以在EXEC命令执行之前,监视任意数量的数据库键,并在EXEC命令执行时,检查被监视的键是否至少有一个已经被修改过了,如果是的话,服务器将拒绝执行事务,并向客户端返回代表事务执行失败的空回复。WATCH功能的实现原理:每个Redis数据库都保存着一个watched_keys字典,这个字典的键是某个被WAT原创 2022-03-23 16:43:10 · 1957 阅读 · 0 评论 -
【详解】TCP
TCPTCP是传输层协议,提供可靠的字节流服务,它将大块的数据分割为一个个报文段来管理。1.TCP的报文段结构图片转自 如故目前我们只需要知道TCP报文段有如下内容:源端口号和目的端口号:这个不用说,表明该TCP报文来自哪,要去哪。序号和确认号:这是报文段首部最重要两个字段,也是TCP可靠数据传输的关键部分,下面详细讲。6比特的标志字段:ACK用于确认是否收到,RST、SYN、FIN用于连接的简历和拆除。PSH和URG暂时不需要了解。16位窗口大小:该字段用于流量控制,也就是指示接收方愿意原创 2022-02-18 16:17:02 · 1916 阅读 · 0 评论 -
Redis持久化
1.持久化持久化就是说redis不仅可以作为缓存,它还可以将数据保存到磁盘中,这样当机器故障时才不会丢失大量数据。1.1持久化之RDBRDB(Redis Database)也叫快照,是Redis默认的持久化方式。它可以在指定的时间间隔内将数据写入到磁盘中。指定的时间可以在config文件中进行配置,Redis中默认的是下面三种情况,当触发三种情况中的任意一种就会发生一次RDB持久化操作。save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,Redis原创 2022-02-09 22:02:12 · 614 阅读 · 0 评论 -
【锁机制】MySQL锁机制
1.全局锁全局锁就是对整个数据库实例加锁,当加全局锁的时候,整个数据库处于只读状态。全局锁的使用场景是给数据库做备份。2.表级锁表级锁分为两种:表锁和元数据锁(meta data lock,MDL)。2.1表锁表锁的语法是 lock tables … read/write,例如执行下面的语句lock tables t1 read,t2 write;表明对表t1加读锁,对表t2加写锁。此时其他线程只能读t1,不能写t1,且不能读写t2。同时当前线程也只能读t1,读写t2,且不能访问其他表。2原创 2022-02-06 17:03:17 · 826 阅读 · 0 评论 -
【索引】浅谈MySQL索引
1.什么是索引索引就好比一本书的目录,所以说,就像我们看的书都有目录一样,我们建的表也都要有索引。不同之处在于:书本只有一个目录,而表可以有多个索引(但只能有一个主键索引)。如下建表语句,在表T中,id为主键索引,index (k)表示设置k为一个普通索引。create table T(id int primary key, k int not null, name varchar(16),index (k));2.索引的结构在MySQL的默认引擎InnoDB中,索引的结构都是B+树(B原创 2022-02-06 14:07:57 · 450 阅读 · 0 评论 -
【事务】MySQL事务特性、隔离级别
1.什么是事务通俗易懂的就是说,在我们执行一个事务期间,对数据库进行了好几步的操作,执行了多条命令,该事务结束后,这些命令要么全部都执行成功,要么全部都执行失败,不存在其他结果。2.事务的特性原子性:一个事务本身就原子的,也就是说事务中的操作要么全部完成,要么全部失败。一致性:执行事务前后,数据保持一致。比如转账业务中,无论转账成功或者失败,收款方和付款方的总额是不变的。隔离性:并发访问数据库时,多个事务之间的操作应该是是互不影响的。持久性:一个事务提交后,对数据库中数据的改变是永久的。3.事原创 2022-02-05 22:04:58 · 489 阅读 · 0 评论 -
简单理解CAS
CAS简单理解1.什么是CAS?2.CAS的执行过程3.CAS的缺陷(1)ABA问题(2)循环时间开销大(3)只能保证一个变量的原子操作1.什么是CAS?CAS(Compare And Swap):比较并交换。它是一条CPU指令,可以在不加锁的情况下,原子性地完成比较和交换操作。CAS有3个操作数:需要读写的内存值:V旧的预期值:A更新值:B具体操作流程如下:当且仅当V(内存中)的值等于A(预期值)时,CAS才通过原子方式用B(新的值)来更新V的值,否则不执行更新。2.CAS的执行原创 2021-11-23 16:52:19 · 707 阅读 · 2 评论 -
==和equals的区别
我们用字符串的比较来进行演示==和equals的区别:首先明确两点:1.==比较的是两个引用指向的是否为同一个对象。2.Java中String类的equals方法是被重写过的,它比较的是两个字符串中的内容是否相等。public class equalsTest { public static void main(String[] args) { String s1 = "guQi"; String s2 = "guQi"; System.原创 2021-11-16 22:56:14 · 866 阅读 · 7 评论 -
【入门篇】JVM类加载机制
类加载机制1.什么是类加载2.类加载的过程2.1加载2.2验证2.3准备2.4解析2.5初始化【重中之重之重中重】1.什么是类加载首先你要知道一个类的从被加载到虚拟机内存中开始,到被初始化为止,是为类加载的整个过程。下图就是类加载的整个过程:一个类只有经历了加载、验证、准备、解析、初始化这五个关卡才能被认为是实现了类加载。这,就是类加载。注意一点:上面五个过程并不是按部就班地“完成”,而是按部就班地“执行”(除解析过程外)。执行时一定是先开始加载,再开始验证,但加载过程中也可能会直接开始验证。原创 2021-11-15 23:14:25 · 1806 阅读 · 10 评论 -
Java经典垃圾收集器
经典垃圾收集器1.Serial收集器2.ParNew收集器3.Parallel Scavenge收集器4.Serial Old收集器5.Parallel Old收集器6.CMS收集器7.Garbage First收集器1.Serial收集器Serial收集器是最基础,历史最久远的收集器,是一款新生代收集器,新生代收集采用的是“标记-复制算法”;它的工作方式是“单线程”。此处的单线程不仅是指它只会用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调它在垃圾收集的时候,必须暂停其他所有工作的线程,包原创 2021-11-14 19:34:28 · 1257 阅读 · 12 评论 -
JVM垃圾收集(GC)机制和GC算法
垃圾收集(Garbage Collection)机制前言1.GC需要回收哪些内存?2.回收的基本单位?1.标记:判断对象生死(1)引用计数法(Python中使用,这里做简单介绍)(2)可达性分析(Java中使用)2.回收:把死的对象回收回去(1)标记-清除算法(2)标记-复制算法(3)标记-整理算法前言垃圾收集(Garbage Collection)简称GC。1.GC需要回收哪些内存?主要回收堆,其次是方法区,栈中不需要回收,线程结束,栈上的内存就会被释放。2.回收的基本单位?内存的单位是“字节原创 2021-11-13 16:46:21 · 1190 阅读 · 8 评论 -
【简单且实用】Java基础面试题
1.如何理解基本数据类型和引用数据类型基本数据类型:数值型(int、long等)、字符型(char)、布尔型(boolean)引用数据类型:数组(array)、类(class)、接口(interface)基本数据类型的变量名对应的就是该变量本身。引用数据类型中的引用是一个地址,该地址指向它的实例对象。2.如何理解引用和对象对于下面的代码:public class Student{ public static void main(String[] args){ //看下面原创 2021-11-12 20:48:11 · 843 阅读 · 5 评论 -
Linux常用命令
Linux常用命令查看帮助文档 man 操作指令 查看该操作指令的帮助文档目录查看当前目录路径 pwd目录查看 ls ls 查看当前目录下的所有目录和文件 ls -a 查看当前目录下的所有目录和文件 ls -l或ll 列表查看当前目录下的所有目录和文件 ls /dir 查看指定目录下的所有目录和文件目录切换 cd cd / 切换到根目录 cd /user 切换到根目录下的user目录 cd原创 2021-11-09 21:02:11 · 2544 阅读 · 9 评论 -
【通俗易懂】三次握手与四次挥手
三次握手1.1三次握手(Three-way Handshake)是指在建立一个TCP连接时,客户端和服务器会一共发送三个报文段。初始时客户端和服务器都处于CLOSED状态,当服务器应用程序创建一个监听套接字时,服务器处于LISTEN状态。1.第一次握手:客户端向服务器发送一个SYN报文段,报文段的首部中的标志位SYN置为1,另外还会指明客户端的初始化序列号ISN(seq=x),此时客户端处于SYN_SENT状态。2.第二次握手:服务器收到SYN的报文段后,会以自己的SYNACK报文进行应答。该应答报原创 2021-10-24 17:18:59 · 46536 阅读 · 24 评论 -
单例模式
单例模式概念:单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。这里介绍两种单例模式:饿汉模式和懒汉模式。单例模式的特点:1.顾名思义,单例模式只有能一个实例。2.单例模式必须自己创建自己的唯一实例。3.单例模式必须给所有其他对象提供这一实例。单例模式的应用:在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单原创 2021-10-15 10:18:15 · 98 阅读 · 7 评论 -
进程与线程【通俗易懂】
进程与线程1.什么是进程?官方定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。通俗的讲:进程可以理解为我们在电脑上正在运行的一个个应用,例如:QQ,微信,LOL2.什么是线程?官方定义:线程是操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程中的实际运作单位。通俗的讲:进程是一座正在运作的工厂,那么线程就是工厂里面的生产线,生产线包含在工厂中,是工厂中的实际运作单位。原创 2021-10-13 12:46:30 · 2805 阅读 · 9 评论 -
图书管理系统--Java实现
声明:本项目不涉及web操作,但需要了解java的基本语法和MySQL的基本语句运用。一、项目分布db.sql类:SQL语句,在控制台执行,用于建立图书管理库。Book类: 定义了书的一些属性(书编号,书名,作者,价格,分类,状态)并且写了属性的get、set、toSting方法。User类:定义了用户的一些属性(用户编号,用户名,密码和是否为管理员的标记),并且写了属性的get、set、toSting方法。NormalUser类:描述普通用户,实现普通用户的构造方法,并打印普通用户的操作.原创 2021-10-07 22:47:27 · 6930 阅读 · 23 评论 -
字符串必知事项
Java中输入字符串时,有哪些要注意的呢?nextLine()与nextInt()共用时的注意事项1.当两者一起用的时候,nextLine()应该放到nextInt的前面,也就是先输入字符串,不然会导致字符串输入失败。正确示范//nextLine()放在前面public class IdeaText { public static void main(String [] args) { Scanner sca=new Scanner(System.in);原创 2021-08-23 17:37:24 · 88 阅读 · 1 评论 -
方法的重载
【方法的重载详解】初识Java方法方法的重载(overload):* 1.方法名相同* 2.返回值不做要求* 3.参数列表必须不同(参数个数或者类型不同)* 4.在同一个类当中方法的重载 代码如下: public static int add(int a,int b){ return a+b; } public static int add(int a,int b,int c){ return a+b+c; } public原创 2021-08-24 11:57:20 · 64 阅读 · 0 评论