欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請(qǐng)碼778899分享:八股面試2(自用)

柚子快報(bào)邀請(qǐng)碼778899分享:八股面試2(自用)

http://yzkb.51969.com/

mysql存儲(chǔ)引擎

存儲(chǔ)引擎:定義數(shù)據(jù)的存儲(chǔ)方式,以及數(shù)據(jù)讀取的實(shí)現(xiàn)邏輯

在以前數(shù)據(jù)庫5.5默認(rèn)MyISAM引擎,之后默認(rèn)InnoDB引擎

MyISAM引擎的數(shù)據(jù)和索引是分開存儲(chǔ)的,InnoDb將索引和文件存儲(chǔ)在同一個(gè)文件。

MyISAM不支持事務(wù),InnoDB支持事務(wù)

MyISAM只支持表鎖,InnoDB支持表鎖,行鎖等

(補(bǔ)充:表鎖和行鎖)

表鎖:粒度更粗的鎖,鎖定整個(gè)數(shù)據(jù)表,其他事務(wù)不能對(duì)該表進(jìn)行任何讀寫操作。并發(fā)低不會(huì)死鎖

行鎖:粒度更細(xì)的鎖,鎖定數(shù)據(jù)表中的特定行,其他事務(wù)只能對(duì)該表的其他行進(jìn)行讀寫操作,并發(fā)高,會(huì)死鎖。

MyISAM不支持外鍵,InnoDB支持外鍵

如果大部分表操作是查詢-->選用MyISAM,反之若是需要支持事務(wù),使用InnoDB

ArrayList和LinkedList的區(qū)別

都是List接口下的兩個(gè)實(shí)現(xiàn)類

1.內(nèi)部實(shí)現(xiàn)

ArrayList使用的是數(shù)組的實(shí)現(xiàn),通過索引訪問元素,支持快速隨機(jī)訪問

LinkedList使用的是雙向鏈表,每個(gè)元素都包含指向前一個(gè)元素和后一個(gè)元素的引用,適合插入刪除操作

2.數(shù)據(jù)訪問的時(shí)間復(fù)雜度不同

ArrayList時(shí)間復(fù)雜度為O(1),LinkedList需要從頭部或者尾部開始遍歷鏈表直到找到元素,故為O(n)

3.空間占用

ArrayList基于數(shù)組實(shí)現(xiàn),占用空間是連續(xù)的,可能產(chǎn)生內(nèi)存碎片;LinkedList通過鏈表連接元素,每個(gè)元素都包含前后節(jié)點(diǎn)的引用,占用的空間比較大

線程安全的集合有哪些

1.Vector 相當(dāng)于 ArrayList 的翻版,是長度可變的數(shù)組,Vector的每個(gè)方法都加了 synchronized 修飾符,是線程安全的。

2.Hashtable是一個(gè)線程安全的集合,是單線程集合,它給幾乎所有public方法都加上了synchronized關(guān)鍵字

3.ConcurrentHashMap?采用了分段鎖(Segment),并非鎖住整個(gè)方法,而是通過原子操作和局部加鎖的方法保證了多線程的線程安全,且盡可能減少了性能損耗。

設(shè)計(jì)模式

單例模式

1.提供有且僅有一個(gè)單例的實(shí)例

2.私有化它的構(gòu)造方法,不讓外部通過構(gòu)造方法創(chuàng)建單例類的實(shí)例

3.提供一個(gè)公共方法給外界獲取這個(gè)實(shí)例

代理模式

工廠模式

1.工廠方法模式

抽象工廠實(shí)現(xiàn)類只生產(chǎn)單一產(chǎn)品

2.抽象工廠(超級(jí)工廠)

抽象工廠實(shí)現(xiàn)類可以生產(chǎn)某一類的產(chǎn)品

觀察者模式

可以理解為:我發(fā)朋友圈,其他人(觀察者)可以自動(dòng)立刻看到我發(fā)送的內(nèi)容。

使用場景

List 元素去重 ?

該問題可以分為去重是否考慮順序

去重不考慮順序:

1.使用循環(huán)去重,判斷集合中該元素是否存在,不存在才添加

2.使用循環(huán)去重,判斷集合中該元素是否有相等的,有的話則remove刪除

3.使用set去重(最簡單),先裝進(jìn)hashSet,再裝進(jìn)ArrayList集合

去重考慮順序:

1.使用LinkedHashSet

2.使用Stream流的distinct方法去重

判斷元素是否在List里面

可以使用contains()方法來檢查一個(gè)元素是否存在于一個(gè)List中

線程之間通信方式 ?

1.使用volatile和synchronized關(guān)鍵字

volatile:告訴程序,任何對(duì)于該變量的訪問都需要從共享內(nèi)存中獲取,并且它們的改變必須同步刷新到共享內(nèi)存里面,即可保證所有線程對(duì)該變量訪問的可見性

synchronized:同步方法或代碼塊,確保同一時(shí)間只有一個(gè)線程可以執(zhí)行某個(gè)特定區(qū)域的代碼。

2.等待/通知機(jī)制

等待通知機(jī)制

一個(gè)線程修改對(duì)應(yīng)的一個(gè)值,另外一個(gè)線程可以感知到變化,進(jìn)行相應(yīng)的操作

線程是搶占式執(zhí)行的,無法預(yù)知線程之間的執(zhí)行順序。但有時(shí)程序員也希望能合理協(xié)調(diào)多個(gè)線程的執(zhí)行順序。因此,在 Java 中使用了等待(wait)和通知(notify)機(jī)制,用于在應(yīng)用層面上干預(yù)多個(gè)線程的執(zhí)行順序。

3.管道pipe輸入/輸出流

和文件/網(wǎng)絡(luò) 輸入/輸出流的區(qū)別在于,主要用于線程之間的數(shù)據(jù)傳輸,傳輸?shù)拿浇槭莾?nèi)存

4.Thread.join

用于讓一個(gè)線程A等待另一個(gè)線程B執(zhí)行完。

5.ThreadLocal

可以通過set方法設(shè)置值,也能通過get方法獲得set的值

Mybatis一級(jí)緩存和二級(jí)緩存 ?

一級(jí)緩存:是sqlSession級(jí)別的緩存,也叫本地緩存,每個(gè)用戶執(zhí)行查詢時(shí),都需要使用sqlSession來執(zhí)行,為了避免每一次都去查詢數(shù)據(jù)庫,mybatis把查詢出來的數(shù)據(jù)緩存到sqlSession的本地緩存里面,后續(xù)sql如果命中緩存,就可以直接從本地緩存中讀取數(shù)據(jù)。

二級(jí)緩存:當(dāng)多個(gè)用戶在查詢數(shù)據(jù)時(shí),只要有任何一個(gè)sqlSession拿到了數(shù)據(jù)就會(huì)放入到二級(jí)緩存里面,其他的sqlSession就可以直接從二級(jí)緩存里面去加載數(shù)據(jù)。

每個(gè)sqlSession都有自己的一級(jí)緩存,不共享

二級(jí)緩存是由每個(gè)sqlSession放入組成的,共享

MyBatis的一級(jí)緩存是基于SqlSession的,也就是說,在一個(gè)SqlSession內(nèi)部,如果多次查詢相同的數(shù)據(jù),MyBatis會(huì)首先從一級(jí)緩存中查找。如果一級(jí)緩存中有數(shù)據(jù),則直接返回結(jié)果;如果沒有,則查詢數(shù)據(jù)庫,并將結(jié)果放入一級(jí)緩存。

然而,如果有多個(gè)SqlSession都需要查詢相同的數(shù)據(jù),那么一級(jí)緩存就無法滿足需求了,因?yàn)槊總€(gè)SqlSession都有自己的一級(jí)緩存,它們之間不共享數(shù)據(jù)。為了解決這個(gè)問題,MyBatis引入了二級(jí)緩存。二級(jí)緩存是基于mapper的namespace的,這意味著多個(gè)SqlSession可以共享同一個(gè)mapper的二級(jí)緩存。當(dāng)多個(gè)SqlSession都需要查詢相同的數(shù)據(jù)時(shí),MyBatis會(huì)先檢查二級(jí)緩存,如果有數(shù)據(jù),則直接返回;如果沒有,則查詢數(shù)據(jù)庫,并將結(jié)果放入二級(jí)緩存。

Redis為什么是單線程 ?

Redis最大的兩個(gè)特點(diǎn):基于內(nèi)存,單線程模型

這個(gè)問題要先明白,redis的單線程指代的是什么

單線程指的是,如圖,接收命令1,返回結(jié)果1,執(zhí)行命令,接受命令2,返回結(jié)果2,這些所有的步驟,都是由1個(gè)線程來完成的。

為什么要設(shè)計(jì)成單線程:

1.單線程簡化設(shè)計(jì),避免了多線程常見問題,如鎖,并發(fā)控制,單線程不存在這些問題。

2.避免鎖的開銷,多線程環(huán)境為了保證數(shù)據(jù)的一致性,需要使用鎖來同步不同線程的操作,但是對(duì)于鎖會(huì)產(chǎn)生額外的開銷,如獲取鎖,釋放鎖,死鎖

3.降低cpu的消耗,避免上下文切換

柚子快報(bào)邀請(qǐng)碼778899分享:八股面試2(自用)

http://yzkb.51969.com/

相關(guān)文章

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19725539.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄