本文主要是介绍【冲刺秋招,许愿offer】第 二 天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【冲刺秋招,许愿offer】第 二 天
- 知识点
- 每天emo
- 小tips
知识点
- final不可变性的原理
可见性:当一个共享变量被声明为final时,每个线程都能看到这个变量的最新值。这是因为final变量的读取操作会直接从主内存中获取值,而不是从线程的工作内存中。这样,即使多个线程同时访问这个变量,也能保证它们看到的是同一个值。
有序性:使用final可以防止指令重排序。JVM会在写入final变量时插入一个写屏障,确保当一个线程将值赋给final变量后,其他线程能看到这个变量的最新值,而不是看到变量未初始化之前的默认值。
以上都可以保证final修饰的变量能被正确的初始化和赋值。
如果以后线程想获取该变量的值,其实是对该值的拷贝,或者是从常量池的拷贝,并不是直接使用该变量的引用。
牛客
- 索引底层原理
mysql索引是使用B+树的数据结构,是一颗多叉树,非叶子节点只存放指针,叶子节点存放真正的数据,叶子节点之间又使用双向链表,那么只有叶子节点存放数据这就保证的查询效率的稳定性,减少磁盘IO,使用链表又方便进行范围查询。
- 索引失效情况
没有遵循最左前缀法则
对索引列进行计算
字符踹类型没加’',会类型转化为int,也会失效
模糊匹配在前,比如 like ‘%xxx’
大于或者小于号会使索引失效,尽量使用大于等于
等等还有好多,我认为说这些可以啦
- 什么是回表查询
如何你根据某一字段索引进行查找,而该索引不是主键索引,他找到的叶子节点里面保存的数据只有主键值和该列值,如果你还查询了其他的列,那么他就会拿到这个主键,再去主键索引里查找出全部行数据,这样又回去查询了一次,就叫做回表查询。
每天emo
JUC真的听的云里雾里的,尤其是什么读屏障、写屏障,volatile原理、final的不可见性、等等,感觉被面试官一问就会尬住。。
小tips
以后晚上早点去跑步,睡不着了
这篇关于【冲刺秋招,许愿offer】第 二 天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!