自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 ElasticSearch的深入学习

ElasticSearch的学习

2023-02-23 16:19:15 237

原创 JVM的学习

一、什么是虚拟机平时我们使用的电脑主机、服务器,都是传统意义上的物理机,通过具体的CPU,内存等硬件实现。虚拟机的定义:“虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。"虚拟机分为系统虚拟机和程序虚拟机。系统虚拟机是对物理机的仿真,它可以提供一个可运行完整操作系统的软件平台。例如常用的VMWare,我们在使用VM创建一个linux系统时,常常要我们为系统分配内存,CPU。由此可见系统虚拟...............

2022-05-19 19:02:59 851

原创 Redis的学习

Redis线程模型多个 socket 可能会并发产生不同的操作,每个操作对应不同的文件事件,但是 IO多路复用程序会监听多个 socket,会将产生事件的 socket 放入队列中排队,事件分派器每次从队列中取出一个 socket,根据 socket 的事件类型交给对应的事件处理器进行处理。建立连接首先,redis 服务端进程初始化的时候,会将 server socket 的 AE_READABLE 事件与连接应答处理器关联。客户端 socket01 ...

2022-02-15 20:04:42 587

原创 锁升级的学习

1.什么是用户态和内核态  用户态:用户执行自己的程序的空间。  内核态:当需要进行监听键盘输入事件,读取文件,IO操作等都会由用户态切换到内核态。内核态管理着计算机的硬件资源。2.用户态切换到内核态  当用户态需要访问内核管理的资源时,内核提供一个系统调用机制,在cpu中的实现叫做陷阱指令。  用户态程序将需要操作系统提供的服务数据存放在寄存器或者栈中,随后执行陷阱指令。  进入内核态,执行程序指定的指令,这些指令是用户态访问不了的,读取内存的数据参数,执行指定的服务。  

2022-01-06 18:06:26 116

原创 RocketMQ的学习

一、基本概念 Message (消息) 生产和消费的基本单位,生产者生产的一条数据就是一条Message,消费者消费的一条数据就是一条Message。 一条Message必须属于某一种Topic。Topic (主题) 可以理解为一级分类,某种Message的集合。生产者生产的是车,消费者消费的是车,这个车就是Topic,而Message就是车下具体的车实体。...

2021-11-18 15:30:02 493

原创 多线程的深入学习

进程与线程 进程操作系统进行资源分配和调度的基本单位。进程之间的内存相互独立,难以进行资源共享,一个进程崩溃不会影响其他进程。但是进程的开销大,进程之间的切换慢。 线程cpu调度的最小单位。线程在进程之中,线程之间共享进程的内存和资源,线程挂掉会导致进程崩溃,线程开销小,多线程之间切换快。并行与并发 并行 重点在于同一个时间点,多个处理器在同时做不同的任务。从宏观和微观上都是真正的并行。 ...

2021-10-19 15:14:56 142

原创 Java GC机制

为什么会有GC(垃圾回收)机制因为在日常工作学习中,我们需要频繁创建对象,当对象没有被使用,处于一个被废弃的状态时,如果不对这些废弃对象进行管理清除,那么可能会造成内存溢出,内存泄漏等问题,所以就需要一个垃圾回收机制来管理这些对象,释放掉废弃对象占据的内存。判断对象可以被回收引用计数算法给对象设立一个计数器,对象被引用一次+1,没有被引用了-1,如果计数器为0了,就表示该对象没有被任何地方引用,可以回收。效率很高,但是解决不了循环依赖的问题。可达性分析算法这是Ja...

2021-10-12 16:14:18 113

原创 Hashtatble、HashMap、ConcurrentHashMap区别

Hashtable和HashMap的区别命名Hashtable命名没有遵循驼峰命名,HashMap命名遵循了驼峰命名。继承类Hashtable继承的是Dictionary类,HashMap继承的是AbstractMap类。线程Hashtable在多线程的情况下是线程安全的,因为Hashtable在数据操作的方法上都加上了synchronized关键字。 //Hashtable的put方法public synchronized V put(K key, V value) H

2021-10-11 16:43:18 143

原创 Mysql索引

索引介绍Mysql官方介绍索引是一种帮助Mysql高效获取数据的数据结构。 而平时我们所说的索引是具体的像聚集索引,唯一索引,复合索引,前缀索引等。为什么要使用索引我们使用新华字典,如果没有拼音笔画查找目录,我们想查找一个字,那得一页页去翻。 假如有百万条数据,在没有索引的情况下,我们需要从第一条数据开始查找。运气好,可能第一条数据就是,运气不好,可能得查找到第一百万条数据...

2021-10-09 17:35:43 203

原创 hashMap如何解决hash冲突的

如果我们在代码中创建一个对象,直接使用hashCode方法,这个hashCode方法是object类的,目的是返回一个对象的哈希码,但是会出现一个问题,不同的对象也可能会得到相同的哈希码,这就出现了哈希冲突。 hashMap源码中决定将元素要放进桶的哪个下标位置的代码如下p = tab[i = (n - 1) & hash] 有一种情况,两个哈希吗低位相同,高位不同,但是高位在&运算下并没有太大意义,所以还是得到了相同的下标。那...

2021-10-09 10:56:03 291

原创 红黑树-插入和删除

红黑树是平衡二叉树的一种,不像严格的平衡二叉树(AVL树),当左右子树深度差大于1时就会进行平衡操作,严格控制树的深度。红黑树只有当左右子树深度差大于2时会进行平衡操作。其次,由于AVL树严格追求平衡的特性,在插入删除时,在不同情况下,进行复衡旋转的次数要比红黑树多。 插入导致失衡时,AVL树和红黑树最多通过两次旋转复衡,都为O(1)。 删除导致失衡时,AVL树复衡是Olog(n),红黑树最多需要三次就能复衡,只需要O(1)。 由此来看,...

2021-10-08 15:08:32 670 1

原创 静态代理与动态代理

如果在游戏登录的过程中,登录的业务代码是欢迎玩家进入游戏。//学生类public class Student { String name; int age; public Student(String name,int age){ this.name=name; this.age=age; }}//业务类public class LoginImpl implements Login{ @Override p

2021-09-26 17:06:49 59

原创 Innodb和MyISAM两种引擎的区别

Innodb引擎支持ACID事务,提高了事务的四种隔离级别。数据库事务的特性与隔离级别_我是小Gua牛的博客-CSDN博客MyISAM引擎不支持事务。Innodb引擎的锁粒度是行级别,支持写读并发。但是在约束条件不清楚的情况下同样会锁住整张表。MyISAM引擎的锁粒度是表级别的,支持读并发,但是写操作是会锁住整张表,不允许其他的读写操作。读线程就算先到也会让位给写线程,写线程具有优先权。如果频繁进行写操作,那么将会不断进行排队,有可能会造成永久阻塞。Innodb引擎支持外键。MyIS

2021-09-23 09:56:05 143

原创 悲观锁、乐观锁、间隙锁、死锁、自旋锁等

悲观锁 在每一个数据被修改前认为会影响其他事务,持保守意见,对数据进行加锁,这就是悲观锁(Pessimistic Concurrency Control)。 悲观锁主要分为共享锁(shared lock)和排他锁(exclusive locks)。 事务正在查询的数据加共享锁后,其他事务也能对该数据添加共享锁,对该条数据进行并发访问,但是不需要进行修改操作。 事务对准备修改的数据添加排他锁后,其他事务不能够对该条数据再添加任何锁(包括排...

2021-09-22 17:17:11 949

原创 数据库事务的特性与隔离级别

事务四大特性: 原子性:要么事务操作成功,要么就失败回滚。成功就将操作修改完全应用到数据库,要么操作失败恢复到原来的情况,保证数据不受影响。 一致性:A账户有1000元,B账户0元,两个账户之间无论怎么转账,总额一定是1000元。亦或是一个事务内进行的读写操作应该是符合操作结果的,如果没有进行任何的修改,第一次读和第二次读的结果不一致,那就违背了一致性原则。 隔离性:事务之间相互隔离,一个事务不影响另一个事务。事务有四大隔离级别。 ...

2021-09-22 15:31:36 106

原创 设计模式之工厂模式

简单工厂模式 抽象对象:把要生产的对象共同点抽离出来做成一个接口或者抽象类。 具体对象:继承实现抽象对象,更具体化。 简单工厂:判断要生产哪个对象,就调用哪个方法进行生产。//抽象对象角色abstract class Car{ String name; long price; public String toString(){ return "Car n...

2021-09-02 16:36:20 59

原创 类加载机制

一、触发初始化的条件 1.实例化创建对象 2.访问静态变量或为静态变量赋值 3.调用静态方法 4.使用java.lang.reflect包下的方法对类进行反射调用方法 5.子类进行初始化,如果父类没有被初始化,那么父类会进行初始化 6.指定一个含有main方法的启动主类时,会先初始化主类二、Java类的生命周期装载----------&gt...

2021-08-24 17:00:14 68

原创 抽象类和接口的区别详解

一、变量 1. 接口只能是static final 修饰的静态常量,抽象类可以有一般的成员的变量。二、构造方法 1.接口没有构造方法,抽象类可以有构造方法。三、普通方法 1.接口中的普通方法只是能抽象方法,不能够实现。 抽象类中可以有实现了的普通方法,也可以有没实现的抽象方法。 ...

2021-08-24 10:48:39 94

原创 ArrayList扩容机制(源代码分析)

首先分析ArrayList的变量,最主要的是以下五个。 private static final int DEFAULT_CAPACITY = 10;//默认容量 private static final Object[] EMPTY_ELEMENTDATA = {};//空数组 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};//默认空数组 ...

2021-08-20 15:08:20 269 1

空空如也

空空如也

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

TA关注的人

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