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