自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JAVA面试合集】

AOF重写指的是在重写时,Redis 根据数据库的现状创建一个新的 AOF 文件,也就是说,读取数据库中的所有键值对,然后对每一个键值对用一条命令记录它的写入。AOF重写具备多变一能力,使原本多条命令合并成一条。AOF重写不会阻塞主线程,由后台线程bgrewriteaof完成。重写具体来说分为一处拷贝,两处日志。拷贝指的是重写时主线程会fork出子线程,然后把主线程的内存数据拷贝给子线程。两处日志指的是:1.原本的AOF日志缓冲区。2.AOF重写的日志缓冲区。

2023-07-02 18:10:17 120

原创 基于redis实现异步消息队列

@Configurationpublic class ThreadPoolConfig { /** * 事件处理线程池 * * @return Executor */ @Bean(name = "eventThreadPool") public ThreadPoolTaskExecutor eventThreadPool() { ThreadPoolTaskExecutor executor = new ThreadPool

2020-08-14 17:31:58 318

原创 Mysql面试(五)(join语句优化)

MRR优化(Multi-Range Read )NLJ(Index Nested-Loop Join)算法和BNL(Block Nested-Loop Join)都有优化的空间。MRR优化的主要目的是尽量使用顺序读盘。select * from t1 where a>=1 and a<=100;什么是回表,回表就是,Innodb在普通索引a上查找到主键id,在根据这个主键id到主键索引上去查整行数据。而这个回表的过程,是一条一条查的。如果随着 a 的值递增顺序查询的话,id 的值就变

2020-08-03 15:10:42 168

原创 Mysql面试(四)(join语句相关)

驱动表,被驱动表我们将两张表进行join语句关联时,例如,假设有t1表(id int primarykey(id) , a int key(a), b int) , t2表 (id int primarykey(id) , a int key(a), b int),t1和t2都有主键索引id和普通索引a,t1有100条数据,t2有1000条数据,select * from t1 straight_join t2 on (t1.a = t2.a) 如果直接使用join,Mysql优化器可能会选择表t1,

2020-08-03 11:30:24 235

原创 Spring面试(一)

什么是spring框架spring是一种轻量级框架,由很多模块组成,这些模块可以很方便的协助我们进行开发。比如核心容器,数据访问/集成,Web,AOP(面向切面编程),测试模块,消息模块等。Core Container中的Core组件是Spring所有组件的核心,Bean组件时实现IOC和依赖注入的基础,AOP组件用来实现面向切面编程。@RestController vs @Controller@Controller返回一个页面单独使用 @Controller 不加 @ResponseBody的

2020-07-10 19:56:58 99

原创 Mysql面试(三)(sql优化相关)

尽量使用聚簇索引,或者使用覆盖索引聚簇索引的叶子节点存放的是整行数据,而非主键索引也就是二级索引的叶子节点是主键的值,所以根据二级索引去查询的话会根据拿到的主键id回到聚簇索引里面在查一次,称为回表。而使用覆盖索引就是说在查询的时候只查索引树上已经有的值,比如直接查询主键id,这样就不需要回表了。使用explain查看语句的预执行行数是否符合预期值,判断mysql是不是选错索引了优化器在选择索引的时候,往往会根据预计扫描的行数,是否需要回表等来判断选择哪个索引,也就是说预计扫描行数是mysql选索引

2020-06-23 15:52:26 102

转载 Redis面试(一)

Redis概述简单来说redis就是一个数据库,数据存储在内存,所以读写速度非常快。广泛应用于缓存,分布式锁等,redis支持事务,持久化,LUA脚本。LRU驱动事件,多种集群方案。使用Redis做缓存高性能:假设用户第一次访问数据库中的某些数据,过程会比较慢,因为是直接从硬盘上读取的,直接操作数据库。而将用户访问的数据存在缓存,下次直接从缓存中读取,相当于直接操作内存,速度非常快。如果数据库中的对应数据发生变化,更新缓存即可。高并发:将数据库中的数据存在缓存中,减少部分请求直接打到数据库,减少数

2020-06-21 14:43:48 93

原创 JVM面试(一)

线程私有的:程序计数器,虚拟机栈,本地方法栈线程共享的:堆,方法区,直接内存程序计数器程序计数器可以看作是当前线程所执行的字节码都得行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等都需要依赖这个计数器来完成。为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储。综上程序计数器有两个作用:1.字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控

2020-06-15 18:06:02 84

原创 Mysql面试(二)(事务相关)

事务四大特性:ACID:原子性,一致性,隔离性,持久性。隔离性:读未提交:一个事务还没提交时,他做的变更就能被其他事务看到。读提交:一个事务提交之后,他做的变更才会被别的事务看到。可重复读:一个事务在执行的过程中总是和他启动时所看到的数据一致。串行化:隔离级别最高,对于同一行记录,读会加读锁,写会加写锁。当发生读写冲突时后访问的事务必须等待前一个事务执行完,才能继续执行。事务隔离的实现(MVCC):在mysql中,每条记录在更新的时候都会生成一条回滚操作,记录上的最新值可以根据回滚操作得到之

2020-06-15 18:04:26 117

原创 Mysql面试(一)

一条sql语句是如何执行的?1.首先进来是连接器,连接器负责跟客户端建立连接,获取权限,维持和管理连接。连接命令mysql -hip−pip -pip−pport -u$user -p连接成功后,连接器会到权限表查出你拥有的权限。一个建立好的连接,即使你登录管理员账号修改其权限,也不会影响已存在连接的权限,只有在新建的连接才有新的权限。可以使用show processlist查看连接状态。如果长时间没有动作,连接会处于sleep状态。如果客户端长时间没动静,连接器会自动将他断开。由参数wait_

2020-06-08 16:33:55 90

原创 什么是Online DDL ?

2020-04-05 20:10:44 4250

转载 牢记面向对象五个基本原则

单一职责原则(Single-Resposibility Principle)其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合,高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。通常意义下的单一职责,就是指只有一...

2019-04-27 14:21:19 154

空空如也

空空如也

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

TA关注的人

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