面试刷题11-5

上上周四 一面

1.volatile关键字的含义

保证内存可见性,禁止指令重排

2.Java NIO 讲一下

非阻塞IO

2.1 NIO selector,epoll的区别

3.Java多线程中的reentrantlock 讲一下

可重入锁

4.AQS大致说一下 同步队列,等待队列

5.mysql 锁,行锁,表锁,读锁,写锁,mvcc

面试刷题11-5_第1张图片

 

6.mvcc 适用的隔离级别,为什么

多版本并发控制(Multi-Version Concurrency Control, MVCC),顾名思义,在并发访问的时候,数据存在版本的概念,可以有效地提升数据库并发能力,常见的数据库如MySQL、MS SQL Server、IBM DB2、Hbase、MongoDB等等都在使用。
简单讲,如果没有MVCC,当想要读取的数据被其他事务用排它锁锁住时,只能互斥等待;而这时MVCC可以通过提供历史版本从而实现读取被锁的数据(的历史版本),避免了互斥等待。

 

在讲述事务隔离级别的时候已经带出了mvcc了, mvcc是一种多版本并发控制机制,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能。

MVCC主要是为Repeatable-Read事务隔离级别做的。在此隔离级别下,A、B事务所示的数据相互隔离,互相更新不可见。
 

 

7.mysql 用的什么数据结构,为什么

索引B+树

8.聚簇索引了解吗,讲一下

9.讲一下gc,公司用的是什么垃圾回收器,什么情况下full gc

1.讲一下线程池有哪些

2.controller,service,interceptor 这类都是什么区别

3.AOP是怎么实现的

面向切面编程

4.讲一讲在公司负责的项目

5.前台,中台,具体的区别,中台是什么

6.公司内部用到的分布式框架 讲一下

end

!!

 

 

你可能感兴趣的:(算法)