
面试
波波仔86
生活与技术并发!
展开
-
数据库并发事物存在的问题(脏读、不可重复读、幻读等)
一个数据库可能拥有多个访问客户端,这些客户端并发访问数据库时,若没有采取必要的隔离措施,存在以下问题,这些问题分为5类,包括3类数据读问题:脏读、不可重复读和幻读。两类数据更新问题:第一类丢失更新、第二类丢失更新。1、脏读A事务读取B事务尚未提交的更改数据,并在这个数据的基础上进行操作,这个时候事务B回滚,那么A事务读到的数据是不被承认的,例如常见的取款事务和转账事务:2、不可重复...原创 2019-10-29 22:03:18 · 998 阅读 · 0 评论 -
MySQL索引失效
1、like是以%开头的查询语句 假如有这样一列code的值为'AAA','AAB','BAA','BAB' ,如果where code like '%AB'条件,由于前面是模糊的,所以不能利用索引的顺序,必须一个个去找,看是否满足条件。这样会导致全索引扫描或者全表扫描。如果是这样的条件where code like 'A % ',就可以查找CODE中A开头的CODE的位置,当碰到...转载 2019-10-23 21:25:54 · 159 阅读 · 0 评论 -
mysql 主键和唯一索引的区别
主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。主键列在创建时,已经默认为非空值 + 唯一索引了。主键可以被其他表引用为外键,而唯一索引不能。一个表最多只能创建一个主键,但可以创建多个唯一索引。主键和唯一索引都可以有多列。主键更适合那些不容易更改的唯一标识...转载 2019-10-23 21:02:43 · 6047 阅读 · 1 评论 -
MySQl索引
索引目的 索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?索引原理 除了词典,生活中随处可见索引的例子,如...转载 2019-10-21 23:00:42 · 113 阅读 · 0 评论 -
基本类型和包装类型的区别
1、包装类型可以为 null,而基本类型不可以别小看这一点区别,它使得包装类型可以应用于 POJO 中,而基本类型则不行。POJO 是什么呢?这里稍微说明一下。POJO 的英文全称是 Plain Ordinary Java Object,翻译一下就是,简单无规则的 Java 对象,只有属性字段以及 setter 和 getter 方法,示例如下。class Writer {...转载 2019-10-21 22:30:01 · 169 阅读 · 0 评论 -
SpringMVC的流程
(1)用户发送请求至前端控制器DispatcherServlet;(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;(4)DispatcherServlet 调用 HandlerAd...转载 2019-10-19 14:22:01 · 119 阅读 · 0 评论 -
数据库存储引擎(主要分析对比InnoDB和MyISAM)
一、存储引擎的概述(1)为什么要合理选择数据库存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(...原创 2019-10-17 11:18:23 · 240 阅读 · 0 评论 -
mysql中char与varchar的区别
在mySQL 中char 和 varchar 都是存储字符串的,区别在于char有固定的长度,而varchar属于可变长的字符类型。char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为...原创 2019-10-17 09:36:49 · 3564 阅读 · 0 评论 -
线程池
1、什么是线程池线程池的基本思想是一种对象池,在程序启动时就开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。2、为什么要使用线程池降低资源消耗 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 运用线程池能有效的控制线程...原创 2019-10-12 22:21:22 · 159 阅读 · 0 评论 -
JVM内存管理
既然是 Java 开发面试,那么对 JVM 的考察当然也是必须的,面试官一般会问你对 JVM 有了解吗?我通常都会把我所了解的都说一遍,包括:JVM 内存划分、JVM 垃圾回收的含义,有哪些 GC 算法,年轻代和老年代各自的特点统统阐述一遍。01. JVM 内存划分:方法区(线程共享):常量、静态变量、JIT(即时编译器) 编译后的代码也都在方法区; 堆内存(线程共享):垃圾回收的主...转载 2019-10-11 20:33:37 · 101 阅读 · 0 评论