一:OSI七層模型以及各部分功能:
實體層,主要作用:二進制與電信号互相轉換
資料鍊路層:主要作用:下層信号封裝為資料報,工作物件交換機
網絡層:主要作用:下層信号封裝為資料包,工作物件路由器
傳輸層:主要作用:建立連結傳輸,主要内容:TCP、UDP協定于此層工作
會話層:主要作用:發起回話和接受請求(通過MAC位址或者IP來認識)
表示層:主要作用:對接收的資料進行加密、解密,壓縮與解壓縮等。
應用層:主要作用:終端應用,人們所看到的的具體應用,如QQ,浏覽器等
二:棧與堆的差別(java)
1.從線程共有私有上來講,堆是線程共有,而棧,雖然分為本地方法棧和虛拟機棧,但是都是線程私有的。
2.從進出順序來講,堆同于隊列,先進先出,後進後出,棧先進後出,後進先出
3.從存儲資料類型來講,棧存儲的是對象的引用和基本類型變量(變量指向堆記憶體中的變量),而堆存儲的是New出來的真實對象和數組
三:Mybatis中一級緩存與二級緩存的差別?如何清除一級緩存?
1.一級緩存是SqlSession級别的緩存。在操作資料庫時需要構造sqlSession對象,在對象中有一個資料結構(HashMap)用于存儲緩存資料。不同的sqlSession之間的緩存資料區域(HashMap)是互相不影響的。
2.二級緩存是mapper級别的緩存,多個SqlSession去操作同一個Mapper的sql語句,多個SqlSession可以共用二級緩存,二級緩存是跨SqlSession的
3.清除一級緩存:更新即可清除,使用(update語句執行commit送出)。
四:HashMap能嵌套嗎?最多嵌套幾層?
能嵌套,理論可以無限嵌套,上圖如下:

五:String為什麼不可變?能被繼承嗎?
因為底層由final修飾,無法被修改,也因為底層由final修飾,無法被繼承。
(補充:final修飾方法,可以被繼承,但是繼承之後無法被重寫)