阿里騰訊面試題目4

1、組合索引問題,失效問題

1.組合索引多字段是有序的,并且是個完整的BTree 索引,有最左原則
多列索引是先按照第一列進行排序,然后在第一列排好序的基礎(chǔ)上再對第二列排序,如果沒有第一列的話,直接訪問第二列,那第二列肯定是無序的,直接訪問后面的列就用不到索引了。
搜索需要從根節(jié)點出發(fā),上層節(jié)點對應靠左的值,搜索需要從根節(jié)點出發(fā),否則不從根節(jié)點出發(fā),后面的節(jié)點對應下層的值,依舊是亂序的,需要遍歷,所以索引就失效了,所以有最左原則。 2.組合索引的使用:
例如組合索引(a,b,c),組合索引的生效原則是
從前往后依次使用生效,如果中間某個索引沒有使用,那么斷點前面的索引部分起作用,斷點后面的索引沒有起作用;

2、simpleDateFormat 為啥線程不安全

通過 DateFormat 類中的注釋可知:此處 Calendar 實例被用來進行日期-時間計算,既被用于 format 方法也被用于 parse 方法!
在 parse 方法的最后,會調(diào)用 CalendarBuilder 的 establish 方法,入?yún)⒕褪?SimpleDateFormat 維護的 Calendar 實例,在 establish 方法中會調(diào)用 calendar 的 clear 方法,如下:
[圖片上傳失敗...(image-f1af5b-1589874591459)]

可知 SimpleDateFormat 維護的用于 format 和 parse 方法計算日期-時間的 calendar 被清空了,如果此時線程 A 將 calendar 清空且沒有設(shè)置新值,線程 B 也進入 parse 方法用到了 SimpleDateFormat 對象中的 calendar 對象,此時就會產(chǎn)生線程安全問題!
————————————————
版權(quán)聲明:本文為 CSDN 博主「撒歡嘞啦」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_38810239/java/article/details/79941964

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容