java面试八股
mysql篇:
事物的性质:
事物的性质有acid四特性。
a:automic,原子性,要么全部成功,要么全部失败,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分代管理内存逻辑
新生代 老年代
1:2 比例。
8:1:1.这个比列就是jvm调优
新生的 对象一般在新生代,新生代装满之后gc。gc发现有些对象一值有用,进行标记次数,多了就放到老年代。老年代满了之后就删除。
伊甸ygc:新生的对象满了之后 ygc。把活着的对象,放到survivor中,然后进行整块清空
和两个幸存者的 处置清除两个 ,然后幸存的复制到其中的一个空的survivor中。
最后survivor装不下了,到老年代。