高职院校优质校建设专栏网站,网络培训师,东阳自适应网站建设,wordpress修订版本java面试八股
mysql篇#xff1a;
事物的性质#xff1a;
事物的性质有acid四特性。 a#xff1a;automic#xff0c;原子性#xff0c;要么全部成功#xff0c;要么全部失败#xff0c;mysql的undolog#xff0c;事物在执行的时候#xff0c;mysql会进行一个快照读… java面试八股
mysql篇
事物的性质
事物的性质有acid四特性。 aautomic原子性要么全部成功要么全部失败mysql的undolog事物在执行的时候mysql会进行一个快照读如果失败那么久进行回滚。
c一致性能够保留数据库的完整性约束条件。
i:隔离性事物在并发执行的时候是互相不干扰的。
d持久性mysql能够将数据持久化到磁盘中。 事物的隔离级别
能够读取未提交的数据 读未提交 对于同一个数据页 该事物能够读取到其他事物对数据页未提交的数据。可能会出现脏读不可重复读、幻读
读已提交read-committed对于这个数据页 只能够读取到已经提交的数据。但是可能造成不可重复读幻读。
可重复读repeattable-read:对同一个字段多次读取的结果是一致的除非本身的事物修改但是可能造成幻读。
可串行化 加锁的方式可以避免脏读、不可重复读、幻读。 脏读幻读不可重复读
脏读 当一个事物正在访问数据并且对其进行修改但是还没有提交事物这个时候另一个事物访问了这个数据然后使用了这个数据 但是此时数据库中还没有这个数据被访问出来的数据就是脏数据。
修改丢失一个事物读取数据另一个数据也访问了该数据那么第一个事物修改了这个数据之后另一个事物也修改了这个数据 。那么第一个事物修改的数据就没了这就是数据的修改丢失。
不可重复读 事物内多次读取同一个数据在这个事物还没有结束的时候另一个事物也访问了这个数据并对这个数据进行了修改那么第一个事物在之后的读取这个数据的时候就出现了不一致这种就是不可重复读。
幻读与他类似反复读同一个数据页在反复读的时候另一个事物对这个数据页进行了插入数据导致第一个事物读取到的数据就会比上一次读到的数据多。
不可重复读和幻读最大的区别就是在一个事物进行重复读某个数据页的时候出现了另一个事物进行修改或者是增加。 mysql的锁的优缺点平常使用什么锁
锁的详解常见的锁大致可以分为三种全局锁表锁行锁 全局锁就是给整个数据库加个锁。全局读锁 Flush tables with read lock。除了read外其他的都会被阻塞。
使用的场景一般使用来做全库的逻辑备份对所有的表进行锁定。 表锁 锁顶的粒度大容易发生冲突。 共享读锁 其他的事物能够进行读取。但是不能够进行修改。 lock table read/write 。 unlock table /客户端断开连接 表独占写锁 加上这个锁之后其他的客户端的请求全部堵死。 行锁 共享锁:s锁 多个事物对于同一组数据能够共享一把锁能够read 不能修改。同时能够阻止之后想对这个数据组进行加上排他锁 排他锁:x锁 就是只能够一个事物获取到对与当前的数据组的read, 修改。如果之后还有其他事物对她进行加锁那么全部阻止。 间隙锁锁住当前数据之间的间隙 确保当前的索引防止其他的事物进行jinsert 防止幻读。。 临键锁 锁住了数据同时锁住了数据之间的间隙防止插入数据和修改数据 spring和springboot的缺点和区别ioc和aop具体的什么原理 springcloud的nacos如何进行路由的转发默认心跳的时间 gateway等 jvm的具体对象的具体流程 jvm双亲委派机制 jvm的gc垃圾回收流程 jvm的gc垃圾回收的算法有哪些 jvm的类加载器 下次要将自己会使用平常的sdk人脸识别等等。 jvm垃圾回收 jvm将字节码文件 转到操作系统。
jvm里面的垃圾
像是c和c必须进行手工的回收。java中youjvm进行自动回收。golang 自动化回收在分配内存之后会自动回收内存。 1个对象有 没用的东西回收。垃圾回收器有10种。
parallel 和po Gone
gc root root searching根可达 如果说线每段的有断了。
怎么找垃圾root searching跟可达方法找垃圾 垃圾回收的算法标记清除标记压缩拷贝。
标记删除标记之后将他清除内存会变成碎片化。
拷贝一个内存只能够使用一半不能够全部使用将有用的复制到另外一个地方。然后将原本的一般全部清掉。
标记拷贝就是在标记删除之后整理内存留下的数据达到一个内存不再碎片化。 gc演化1.8分代管理内存逻辑 新生代 老年代
12 比例。
811.这个比列就是jvm调优
新生的 对象一般在新生代新生代装满之后gc。gc发现有些对象一值有用进行标记次数多了就放到老年代。老年代满了之后就删除。
伊甸ygc新生的对象满了之后 ygc。把活着的对象放到survivor中然后进行整块清空
和两个幸存者的 处置清除两个 然后幸存的复制到其中的一个空的survivor中。 最后survivor装不下了到老年代。