自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zbzbzzz

自己学习过程中的记录

  • 博客(17)
  • 收藏
  • 关注

原创 在方法中改变传递参数的值

1.对于基本类型参数,在方法体内对参数进行重新赋值,并不会改变原有的变量的值。2.对于引用类型参数,在方法体内对参数进行重新赋值引用,在方法体内使用的是引用的副本,不会改变原有变量的引用3方法体内对参数进行运算不会影响原有的变量的值,但在方法体内对参数所指的对象的属性进行操作,将改变原有变量所指对象的属性值...

2021-02-28 10:07:07 979

原创 Spring源码编译过程中出现Kotlin: Language version 1.1 is no longer supported; please, use version 1.2

出现这个错误提示的原因很简单,就是kotlin版本太低,但是百度过几个相同的问题,都不能解决这个报错。后面偶然间找到了解决这个问题的办法。首先要看编译过程中是哪个module出问题了,然后到对于的module中的kotlin选项里面去把对应的版本提高就行了。就按照下面两个图右边的Language version和API version来改。...

2021-02-25 12:33:45 11421 4

转载 红黑树

作者:coolblog segmentfault.com/a/1190000012728513 红黑树简介红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1972年发明,在当时被称为对称二叉 B ...

2021-02-24 09:27:14 137

原创 MySQL中常见的log

binlog什么是binlogmysql数据库变更的记录,不包括查询,这样说起来就好像有点redis的aof文件的味道binlog的作用mysql进行主从复制的时候可以用binlog来恢复数据数据库中数据发生变化对于的索引的数据也要变化,要产生这种变化可以通过监听binlog来实现redo logredo log记录的是数据库的物理变化(xxxx页修改了xxx)。mysql对数据修改是先吧对应的页面加载到内存,然后在内存中把数据给修改了。如果这个记录没有马上写到物理磁盘中那就写一份

2021-02-23 23:30:12 217

原创 Redis缓存相关

Redis 和 Memcached的区别Redis 支持更丰富的数据类型(支持更复杂的应用场景)。Redis 不仅仅支持简单的 k/v 类型的数据,同时还提供 list,set,zset,hash 2等数据结构的存储。Memcached 只支持最简单的 k/v 数据类型。Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而 Memecache 把数据全部存在内存之中。Redis 有灾难恢复机制。 因为可以把缓存中的数据持久化到磁盘上。Redis 在服务器

2021-02-22 16:44:33 127

原创 Redis持久化和分布式

RDBAOF哨兵主从复制分布式锁

2021-02-21 21:53:07 93

原创 NoSQL简介以及Redis数据类型

什么是NoSQLNoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。为什么使用NoSQL当前很多用户的个人信息,社交网络,地理位置这种类型的数据存储并不需要一个固定的格式。所以也就不适用于存储在关系型数据库中,而更适合存储在NoSQL中。Redis的5中基本数据类型stringstring 数据结构是简单的 key-value 类型。虽然 Redis 是用 C 语言写的,但是 Redis 并没有使用 C 的字

2021-02-21 17:02:17 149

原创 MySql事务

事务4大特性(ACID)原子性(atomicity):操作过程中不允许其他事务中途插入,工作的最小单元一致性(consistency):事务前后数据的完整性必须保持一致隔离性(isolation):不同事务不互相影响,分为4个隔离级别持久性(durability):事务提交后对于数据会永久保存到数据库中事务的隔离级别读未提交(脏读)一个事务可以读取到另一个事务未提交的数据。这种隔离级别岁最不安全的一种,因为未提交的事务是存在回滚的情况读已提交(不可重复读)在当前事务执行过程中另

2021-02-20 19:51:12 83

原创 MySql索引优化

多表索引优化左连接使用右表的索引右连接使用左表的索引写join语句时,应永远用小结果集驱动大结果集,保证join语句中被驱动表上join条件字段已被索引,当无法保证被驱动表的join条件字段被索引且内存资源充足的前提下,不要吝啬JoinBuffer的设置索引优化如果索引了多列,要遵循最左前缀法则,也就是说查询从最左前列开始并且不跳过索引中的列不在索引列上做任何操作(计算,函数,(自动或者手动)类型转换),会导致索引失效而转向全表扫描范围查询比如大于多少或者小于多少,这样是能用到索引的排序

2021-02-20 16:29:43 70

原创 explain命令

什么是explainexplain是MySql中用来分析SQL语句执行效率的一条命令,通过explain命令我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。explain各参数解析idselect查询的序列号包含一组数字,表示查询中执行select子句或者操作表的顺序id相同,执行顺序由上至下id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先执行id有相同的也有不同的,则相同的

2021-02-18 23:15:18 1495

原创 MySql索引

什么是索引MySql官方对索引的定义为:索引(index)是帮助MySql高效获取数据的数据结构,所以索引的本质就是数据结构索引可以简单理解为拍好序的快速查找数据结构MySql索引的结构哈希索引顾名思义就是通过hash算法得到的索引,可以在短时间内定位到数据。但是它也有hash所拥有的缺点:容易产生哈希冲突,而且哈希索引不支持范围查询。B+ Tree 索引B+树是大多数MySql存储引擎默认的存储结构,因为它是有序的所以很容易进行范围查找,而且相对于普通二叉树高度不高,提高了查找的效

2021-02-17 16:28:23 51

原创 MySql基本架构

MySql基本架构分为Server层和存储引擎Server层连接器负责连接客户端与Server层,简单来说就像是一个登录认证模块,判断用户的身份和权限。查询缓存MySql会缓存我们执行过的select语句,以Key-Value的形式直接放在内存中。后续查询如果命中缓存就可以直接拿出缓存的结果集而不用去执行后面的复杂操作。但是查询缓存会经常失效,比如你更新一张表的其中一条内容,那这张表的所有查询缓存都会失效。所以在MySql8.0中查询缓存被移除了。分析器功能和它的名字一样就是分析sql语句,.

2021-02-15 20:57:26 73 1

转载 Bean的生命周期

Spring Bean的生命周期是Spring面试热点问题。这个问题即考察对Spring的微观了解,又考察对Spring的宏观认识,想要答好并不容易!本文希望能够从源码角度入手,帮助面试者彻底搞定Spring Bean的生命周期。是的,Spring Bean的生命周期只有这四个阶段。把这四个阶段和每个阶段对应的扩展点糅合在一起虽然没有问题,但是这样非常凌乱,难以记忆。要彻底搞清楚Spring的生命周期,首先要把这四个阶段牢牢记住。实例化和属性赋值对应构造方法和setter方法的注入,初始化和销毁是用户能自

2021-02-04 11:39:30 109

原创 垃圾回收器分类

Serial 收集器Serial 收集器主要工作在新生代,是一个采用复制算法的单线程的垃圾收集器,在垃圾回收的过程中会产生STW其他用户线程都会暂停。ParNew收集器ParNew垃圾收集器是Serial收集器的多线程版本,也工作在新生代采用复制算法,除了使用多线程进行垃圾收集外,其余行为(控制参数、收集算法、回收策略等等)和 Serial 收集器完全一样。Parallel Scavenge 收集器也是一个工作于新生代,采用复制算法的收集器,这个收集器更加关注可控制的吞吐量Serial Old

2021-02-03 10:18:28 64

原创 垃圾回收机制

识别垃圾引用计数简单来说就是对象被引用一次就在对象头的引用次数上加1,当对象的引用次数为零时就说明对象可以被回收了。但是这种方法容易出现循环引用问题,就是两个对象互相引用,但不存在外部引用,按理来说这个对象已经可以被回收了,但是因为他们之间还存在引用,所以引用数不会清零导致无法回收。可达性分析以一系列作为GC Roots的对象为起点,如果向下搜索可以搜到的对象为可用对象,搜不到的对象就可以被回收了垃圾回收算法标记-清除...

2021-02-03 09:21:52 92

原创 JVM内存模型

内存结构PC寄存器PC寄存器用来存储当前线程的执行位置,被中断的线程需要记录下当前执行到哪条内存地址,以便于它被恢复执行时再按照被中断时的指令地址继续执行下去。PC寄存器是唯一一个不会出现 OutOfMemoryError 的内存区域,它的生命周期随着线程的创建而创建,随着线程的结束而死亡。Java虚拟机栈虚拟机栈是由一个个栈帧组成,每个栈帧都都拥有:局部变量表、操作数栈、动态链接、方法信息出口。Java栈与Java线程是对应起来的,这里面数据不是共享的,所以我们不用关心它的数据一致性问题。堆用

2021-02-02 11:05:15 48

原创 AQS

AQS简介和原理AQS就是AbstractQueuedSynchronizer位于java.util.concurrent.locks 包下面。AQS已state为标志,当线程占有共享资源时state加一,线程执行完毕释放资源则state减一,然后再去唤醒队列中等待的下一个线程。AQS中的队列是一个FIFO的CLH队列,这是一个双向链表,具体结构如图AQS对资源的两种共享方式独占锁就是共享资源一次只能被一个线程所占有,只有当前线程释放之后其他线程才能竞争锁ReentrantLock就

2021-02-01 15:57:30 70

空空如也

空空如也

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

TA关注的人

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