更新時(shí)間:2022-12-19 11:11:08 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1300次
對(duì)于剛剛畢業(yè)的同學(xué)來(lái)說(shuō),在面臨面試時(shí)最好是提前準(zhǔn)備一些題目提前做好準(zhǔn)備,因?yàn)槠髽I(yè)對(duì)于Java相關(guān)的崗位面試者,最看重的就是專業(yè)知識(shí)與技術(shù)水平,所以,程序員們?cè)跍?zhǔn)備去面試前提前做好準(zhǔn)備,準(zhǔn)是沒錯(cuò)的,針對(duì)不同崗位,相關(guān)的面試題難度也是不一樣的,今天小編針對(duì)中級(jí)工程師總結(jié)了一些常問(wèn)到的題目,希望可以幫助到大家:
1.一條 sql 執(zhí)行過(guò)長(zhǎng)的時(shí)間,你如何優(yōu)化,從哪些方面 ?
答:1、查看 sql 是否涉及多表的聯(lián)表或者子查詢,如果有,看是否能進(jìn)行業(yè)務(wù)拆分,相關(guān)字段元余或者合并成臨時(shí)表(業(yè)務(wù)和算法的優(yōu)化)
2、涉及鏈表的查詢,是否能進(jìn)行分表查詢,單表查詢之后的結(jié)果進(jìn)行字段整合
3、如果以上兩種都不能操作,非要鏈表查詢,那么考慮對(duì)相對(duì)應(yīng)的查詢條件做索引。加快查詢速度4、針對(duì)數(shù)量大的表進(jìn)行歷史表分離《如交易流水表)
5、數(shù)據(jù)庫(kù)主從分離,讀寫分離,降低讀寫針對(duì)同一表同時(shí)的壓力,至于主從同步,MySQL 有自帶的 binlog 實(shí)現(xiàn) 主從同步
2.HTTP 協(xié)議,GET和POST 的區(qū)別
答:1、GET 提交,請(qǐng)求的數(shù)據(jù)會(huì)附在 URL之后(就是把數(shù)據(jù)放置在 HTTP 協(xié)議頭中),以?分制 URL和傳輸數(shù)據(jù),多個(gè)參數(shù)用&連接。如果數(shù)據(jù)是英文字母/數(shù)字,原樣發(fā)送,如果是空格,轉(zhuǎn)換為+,如果是中文/其他字符,則直接把字符串用BASE64 加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的 XX為該符號(hào)以16 進(jìn)制表示的ASCIl。POST 提交:把提交的數(shù)據(jù)放置在是 HTTP 包的包體中。上文示例中紅色字體標(biāo)明的就是實(shí)際的傳輸數(shù)據(jù)。因此,GET 提交的數(shù)據(jù)會(huì)在地址欄中顯示出來(lái),而 POST 提交,地址欄不會(huì)改變。
2、傳輸數(shù)據(jù)的大小:首先聲明: HTTP 協(xié)議沒有對(duì)傳輸?shù)臄?shù)據(jù)大小進(jìn)行限制,HTTP 協(xié)議規(guī)范也沒有對(duì)URL 長(zhǎng)度進(jìn)行限制。
3.鎖機(jī)制有什么用?簡(jiǎn)述悲觀鎖和樂觀鎖機(jī)制
答:有些業(yè)務(wù)邏輯在執(zhí)行過(guò)程中要求對(duì)數(shù)據(jù)進(jìn)行排他性的訪問(wèn),于是需要通過(guò)一些機(jī)制保證在此過(guò)程中數(shù)據(jù)被鎖住不會(huì)被外界修改,這就是所謂的鎖機(jī)制。
悲觀鎖,顧名思義悲觀的認(rèn)為在數(shù)據(jù)處理過(guò)程中極有可能存在修改數(shù)據(jù)的并發(fā)事務(wù)(包括本系統(tǒng)的其他事務(wù)或來(lái)自外部系統(tǒng)的事務(wù)),于是將處理的數(shù)據(jù)設(shè)置為鎖定狀態(tài)。悲觀鎖必須依賴數(shù)據(jù)庫(kù)本身的銷機(jī)制才能真正保證數(shù)據(jù)訪問(wèn)的排他性。
樂觀鎖,顧名思義,對(duì)并發(fā)事務(wù)持樂觀態(tài)度(認(rèn)為對(duì)數(shù)據(jù)的并發(fā)操作不會(huì)經(jīng)常性的發(fā)生),通過(guò)更加寬松的銷機(jī)制來(lái)解決由于悲觀銷排他性的數(shù)據(jù)訪問(wèn)對(duì)系統(tǒng)性能造成的嚴(yán)重影響。最常見的樂觀鎖是通過(guò)數(shù)據(jù)版本標(biāo)識(shí)來(lái)實(shí)現(xiàn)的,讀取數(shù)據(jù)時(shí)獲得數(shù)據(jù)的版本號(hào)更新數(shù)據(jù)時(shí)將此版本號(hào)加 1,然后和數(shù)據(jù)庫(kù)表對(duì)應(yīng)記錄的當(dāng)前版本號(hào)進(jìn)行比較,如果提交的數(shù)據(jù)版本號(hào)大于數(shù)據(jù)庫(kù)中此記錄的當(dāng)前版本號(hào)則更新數(shù)據(jù),否則認(rèn)為是過(guò)期數(shù)據(jù)無(wú)法更新。
提示:使用樂觀鎖會(huì)增加了一個(gè)版本字段,很明顯這需要額外的空間來(lái)存儲(chǔ)這個(gè)版本字段,浪費(fèi)了空間,但是樂觀鎖會(huì)讓系統(tǒng)具有更好的并發(fā)性,這是對(duì)時(shí)間的節(jié)省。因此樂觀鎖也是典型的空間換時(shí)間的策略。
4.數(shù)據(jù)庫(kù)的事務(wù)處理是什么?有哪些特性?
預(yù)覽與源文檔一致.下載高清無(wú)水印答:事務(wù):是一系列的數(shù)據(jù)庫(kù)操作,是數(shù)據(jù)庫(kù)應(yīng)用的基本邏輯單位。
事務(wù)性質(zhì): 原子性、隔離性、一致性、持久性。
5.說(shuō)一下你對(duì)存儲(chǔ)過(guò)程的理解 ?
答:存儲(chǔ)過(guò)程:存儲(chǔ)過(guò)程就是編譯好了的一些 sl 語(yǔ)句。
1.存儲(chǔ)過(guò)程因?yàn)楫?dāng)(.語(yǔ)句已經(jīng)預(yù)編繹過(guò)了,因此運(yùn)行的速度比較快人
2.可保證數(shù)據(jù)的安全性和完整性。通過(guò)存儲(chǔ)過(guò)程可以使沒有權(quán)限的用戶在控制之下間接地存取數(shù)據(jù)庫(kù)從而保證數(shù)據(jù)的安全。通過(guò)存儲(chǔ)過(guò)程可以使相關(guān)的動(dòng)作在一起發(fā)生,從而可以維護(hù)數(shù)據(jù)庫(kù)的完整性。
3.可以降低網(wǎng)絡(luò)的通信量。存儲(chǔ)過(guò)程主要是在服務(wù)器上運(yùn)行,減少對(duì)客戶機(jī)的壓力。
4:存儲(chǔ)過(guò)程可以接受參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)結(jié)果集以及返回值。可以向程序返回錯(cuò)誤原原創(chuàng)力文欄N5:存儲(chǔ)過(guò)程可以包含程序流、邏以及對(duì)數(shù)據(jù)的查詢。同時(shí)可以實(shí)體封裝和隱藏了數(shù)據(jù)邏輯。
以上就是“Java中級(jí)工程師面試題必看題目”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743