疯狂面试题
文章平均质量分 67
示圆阇梨偈
这个作者很懒,什么都没留下…
展开
-
互联网项目中mysql应该选什么事务隔离级别
引言开始我们的内容,相信大家一定遇到过下面的一个面试场景面试官:“讲讲mysql有几个事务隔离级别?”你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读”面试官:“为什么mysql选可重复读作为默认的隔离级别?”(你面露苦色,不知如何回答!)面试官:“你们项目中选了哪个隔离级别?为什么?”你:“当然是默认的可重复读,至于原因。。呃。。。”(然后你就可以回去等通知了!)为了避免上述尴尬的场景,请继续往下阅读!Mysql默认的事务隔离级别是可重复读(Repeatable Re转载 2020-07-21 16:26:40 · 191 阅读 · 0 评论 -
线程创建的四种方式
线程的生命周期在JAVA层面,线程有6个状态:1、NEW(初始状态):高级语言层面的线程创建,操作系统并没有真正创建线程,因此也不会获得CPU的执行权,通过调用start()方法进入RUNNABLE状态;2、RUNNABLE(可运行/运行状态):RUNNABLE状态分可运行和运行两种状态,在java语言中统一叫做RUNNABLE状态,NEW状态的线程通过调用start()方法进入可运行状态,此时操作系统会新建一个线程,当有CPU空闲时,OS会分配CPU执行权,此时进入运行状态。运行时状态也可通过调用转载 2020-07-20 15:07:52 · 267 阅读 · 0 评论 -
Redis事务详解
Redis的事务功能详解MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础。Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项:Redis会将一个事务中的所有命令序列化,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求。这样便能保证Redis将这些命令作为一个单独的隔离操作执行。 > 在一个Redis事务中,Redis要么执行其中的所有命令,要么什么都不执行。因此,Redis事务能够保证原子性。转载 2020-07-14 10:52:46 · 163 阅读 · 0 评论 -
redis的基础知识
redis简介redis是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且转载 2020-07-13 16:47:13 · 158 阅读 · 0 评论 -
B树和B+树详解
1 B树在介绍B+树之前, 先简单的介绍一下B树,这两种数据结构既有相似之处,也有他们的区别,最后,我们也会对比一下这两种数据结构的区别。1.1 B树概念B树也称B-树,它是一颗多路平衡查找树。二叉树我想大家都不陌生,其实,B树和后面讲到的B+树也是从最简单的二叉树变换而来的,并没有什么神秘的地方,下面我们来看看B树的定义。每个节点最多有m-1个关键字(可以存有的键值对)。根节点最少可以只有1个关键字。非根节点至少有m/2个关键字。每个节点中的关键字都按照从小到大的顺序排列,每转载 2020-07-08 16:05:15 · 674 阅读 · 0 评论 -
十大经典排序算法
0、算法概述0.1 分类时钟常见排序算法可以分为两大类比较类排序: 通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O,因此也成为非线性时间比较类排序。非比较类排序: 不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也成为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定: 如果a原本在b的前面,而a=b,排序之后a可能出现在b的后面。时间复杂度:对排序数据的原创 2020-07-08 13:49:54 · 166 阅读 · 0 评论 -
mysql的分式事务
https://www.jianshu.com/p/7003d58ea182https://www.jianshu.com/p/7003d58ea182转载 2020-07-06 22:57:47 · 120 阅读 · 0 评论 -
Mysql引擎的知识
什么是引擎存储引擎是数据库的发动机,决定数据库提供的功能和性能。使数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。引擎的任务...原创 2020-07-06 22:42:31 · 283 阅读 · 0 评论 -
HashMap的扩容,HashMap为什么线程不安全?怎样才能让HashMap变的线程安全?
HashMap的扩容了解HashMap的扩容首先要了解HashMap几个非常重要的常量:static final float DEFAULT_LOAD_FACTOR = 0.75f;//负载因子Capactity:HashMap的当前长度(2的n次幂)LoadFActor:负载因子,默认为0.75f;//在每次put之后,会有下面这个判断:if (++size > threshold) resize();threshold = Capactity * LoadFActor,th转载 2020-07-06 21:51:33 · 292 阅读 · 0 评论 -
解决哈希冲突的四种办法
解决哈希冲突的四种办法哈希冲突的产生原因哈希是通过对数据进行再压缩,提高效率的一种解决方法。但由于通过哈希函数产生的哈希值是有限的,而数据可能比较多,导致经过哈希函数处理后仍然有不同的数据对应相同的哈希值。这时候就产生了哈希冲突。产生哈希冲突的影响因素装填因子(装填因子=数据总数 / 哈希表长)、哈希函数、处理冲突的方法解决哈希冲突的四种方法1.开放地址方法(1)线性探测按顺序决定哈希值时,如果某数据的哈希值已经存在,则在原来哈希值的基础上往后加一个单位,直至不发生哈希冲突。(2)再平转载 2020-07-06 11:22:53 · 735 阅读 · 0 评论 -
Entity实体类为什么要实现Serializable接口才能被序列化
疯狂面试题Entity实体类为什么要实现Serializable接口才能被序列化ObjectOutputStream 来持久化对象, 对于此处抛出的异常,查看该类中实现如下:private void writeObject0(Object obj, boolean unshared) throws IOException { // ... // remaining cases if (obj instanceof String) {转载 2020-07-06 09:18:00 · 428 阅读 · 0 评论