首頁 Java Java面試題 Java中高階面試題(附答案)

Java中高階面試題(附答案)

Nov 14, 2019 pm 04:51 PM
java 中級

Java中高階面試題(附答案)

1、redis如何跟本機資料同步?

程式實作mysql更新、新增、刪除就會同步操作redis

程式查詢redis,不存在就查詢mysql,自動儲存redis

2、redis幾種資料結構?

set、list、hash、string、zset

3、java記憶體溢位是如何造成的?

OutOfMemoryError:

(1)PerGern Space 程式中使用了大量的jar或class,使虛擬機器裝載類別空間不夠。

解決方案:調參XX:PermSize 和XX:MaxPermSize、減少jar包減少類別的重複載入 

(2)Java Heap

Space Java虛擬機建立太多對象。解決方法:調參Xms(初始化堆大小)Xmx(最大堆大小)、檢查死循環或不必要建立的重複物件。

(3)unable to create new native Thread

JVM佔用了太多記憶體空間,而在JVM中建立執行緒還要再作業系統中建立執行緒。解決方案:調整JVM中執行緒大小。

4、String s = “123”,這個語句有多少物件產生?

若字串池中沒有“123”,則產生一個,並且放入常數池中,若有“123”,則產生0個

5 、JDK8的新特性,舉例描述

(1)lambda表達式:函數式編程,方法的引用 

(2)Stream API 

#(3 )介面的預設方法

(4)日期時間API的改進,新增DateTimeFormatter方法

6、解決高並發與高負載

## (1)盡可能html靜態化,採用資訊輸入發布系統CMS實現資訊輸入自動產生靜態頁面,在前端快取不常改變的動態資料。

(2)CDN加速,把CSS/JS等資源分散在不同的伺服器上

(3)快取不常改變的資料(Redis、memcache)。

(4)圖片伺服器與應用程式伺服器分離。 

(5)群集

7、生產者與消費者模式得瑟作用是什麼?

(1)透過平衡生產能力和消費者的消費能力來提升整個系統的運作效率(2)解耦

8、Mybatis一級、二層級快取

(1)一級快取:基於PerpetualCache的HashMap本機緩存,其儲存作用域Session,當Session

flush或close之後,該Session中的所有Cache就將清空。

(2)二級快取與一級快取機制相同,預設也是採用PerpetualCache,HashMap存儲,不同在儲存作用域Mapper,並且可自訂儲存來源,如需開啟二級快取。在sql映射檔案中添加

9、描述一個服務從發佈到被消費的詳細過程

首先獲取zk的配置信息,然後獲取需要暴露的url,然後呼叫registry,register方法將url註冊到zookeeper上去

10、如何實現負載平衡,有哪些演算法可以實現?

隨機(random)、輪訓(round-robin)、一致雜湊(consistent-hash)和主備(master-slave)

11、如果要你實現Spring AOP,怎麼實現?

實作aop技術,主要分為兩大類:一採用動態代理技術,利用截取訊息的方式,對該訊息進行裝飾,以取代原有物件行為的執行

二是採用靜態織入的方式,引入特定語法創建“方面”,從而使得編譯器間織入有關“方面”的代碼

12、如何防止頁面重複提交?

叢集環境:採用token加redis(redis是單執行緒的,處理需要排隊)

處理流程:

1、資料提交前要向服務申請token,token放到redis內存,token有效時間

2、提交後後台校驗token,同時刪除token,生成新的token返回

13、什麼是微服務?

將工程依照不同的業務規則分割成微服務,部署在不同的機器上。服務間進行相互呼叫

14、什麼是web服務?

(1)web service就是一個應用程序,它向外界暴露出一個能夠透過web進行呼叫的API

(2)基於HTTP協定傳輸數據,這使得運行在不同機上的不同應用程序,無需借助附加的、專門的第三方軟體和硬件,就可以相互交換數據或集成

15、談一下你的項目選擇Struts2的理由?

①Action是POJO類,沒有依賴Servlet API,具有良好的可測試性;②強大的攔截器,簡化了開發的複雜度;

③支援多種表現層技術:JSP、Freemarker等;④靈活的驗證方式; ⑤國際化(I18N)支援⑥聲明式異常管理;

⑦透過JSON插件簡化Ajax; ⑧透過Spring插件跟Spring整合;

16、談一下攔截器和過濾器的差別?

攔截器和過濾器都可以用來實現橫切關注功能,其區別主要在於:①攔截器是基於JAVA反射機制的,而過濾器是基於函數回調的

②過濾器依賴Servlet容器,而攔截器不依賴Servlet容器

③攔截器只能對Action請求起作用(Action中的方法),而過濾器可以對幾乎所有的請求起作用(CSS JSP JS)

17、Spring支援的事務管理類型?

編程式事務管理:程式設計的方式管理事物,極大的彈性,難以維護

聲明式交易管理:可以將業務程式碼和事物管理分開、只需要用註解和XML設定來管理事物

php中文網,大量的免費Java入門教學,歡迎線上學習! 

以上是Java中高階面試題(附答案)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

撰寫PHP評論的提示 撰寫PHP評論的提示 Jul 18, 2025 am 04:51 AM

寫好PHP註釋的關鍵在於明確目的與規範,註釋應解釋“為什麼”而非“做了什麼”,避免冗餘或過於簡單。 1.使用統一格式,如docblock(/*/)用於類、方法說明,提升可讀性與工具兼容性;2.強調邏輯背後的原因,如說明為何需手動輸出JS跳轉;3.在復雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標記待辦事項與問題,便於後續追踪與協作。好的註釋能降低溝通成本,提升代碼維護效率。

通過評論提高可讀性 通過評論提高可讀性 Jul 18, 2025 am 04:46 AM

寫好註釋的關鍵在於說明“為什麼”而非僅“做了什麼”,提升代碼可讀性。 1.註釋應解釋邏輯原因,例如值選擇或處理方式背後的考量;2.對複雜邏輯使用段落式註釋,概括函數或算法的整體思路;3.定期維護註釋確保與代碼一致,避免誤導,必要時刪除過時內容;4.在審查代碼時同步檢查註釋,並通過文檔記錄公共邏輯以減少代碼註釋負擔。

編寫有效的PHP評論 編寫有效的PHP評論 Jul 18, 2025 am 04:44 AM

註釋不能馬虎是因為它要解釋代碼存在的原因而非功能,例如兼容老接口或第三方限制,否則看代碼的人只能靠猜。必須加註釋的地方包括複雜的條件判斷、特殊的錯誤處理邏輯、臨時繞過的限制。寫註釋更實用的方法是根據場景選擇單行註釋或塊註釋,函數、類、文件開頭用文檔塊註釋說明參數與返回值,並保持註釋更新,對複雜邏輯可在前面加一行概括整體意圖,同時不要用註釋封存代碼而應使用版本控制工具。

PHP開發環境設置 PHP開發環境設置 Jul 18, 2025 am 04:55 AM

第一步選擇集成環境包XAMPP或MAMP搭建本地服務器;第二步根據項目需求選擇合適的PHP版本並配置多版本切換;第三步選用VSCode或PhpStorm作為編輯器並搭配Xdebug進行調試;此外還需安裝Composer、PHP_CodeSniffer、PHPUnit等工具輔助開發。

PHP評論語法 PHP評論語法 Jul 18, 2025 am 04:56 AM

PHP註釋有三種常用方式:單行註釋適合簡要說明代碼邏輯,如//或#用於當前行解釋;多行註釋/*...*/適合詳細描述函數或類的作用;文檔註釋DocBlock以/**開頭,為IDE提供提示信息。使用時應避免廢話、保持同步更新,並勿長期用註釋屏蔽代碼。

PHP比較操作員 PHP比較操作員 Jul 18, 2025 am 04:57 AM

PHP比較運算符需注意類型轉換問題。 1.使用==僅比較值,會進行類型轉換,如1=="1"為true;2.使用===需值與類型均相同,如1==="1"為false;3.大小比較可作用於數值和字符串,如"apple"

有效的PHP評論 有效的PHP評論 Jul 18, 2025 am 04:33 AM

寫好PHP註釋的關鍵在於清晰、有用且簡潔。 1.註釋應說明代碼背後的意圖而非僅描述代碼本身,如解釋複雜條件判斷的邏輯目的;2.在魔術值、舊代碼兼容、API接口等關鍵場景添加註釋以提升可讀性;3.避免重複代碼內容,保持簡潔具體,並使用標準格式如PHPDoc;4.註釋需與代碼同步更新,確保准確性。好的註釋應站在他人角度思考,降低理解成本,成為代碼的理解導航儀。

團隊的PHP評論 團隊的PHP評論 Jul 18, 2025 am 04:28 AM

寫好PHP註釋的關鍵在於解釋“為什麼”而非“做什麼”,統一團隊註釋風格,避免重複代碼式註釋,合理使用TODO和FIXME標記。 1.註釋應重點說明代碼背後的邏輯原因,如性能優化、算法選擇等;2.團隊需統一註釋規範,如單行註釋用//,函數類用docblock格式,並包含@author、@since等標籤;3.避免僅複述代碼內容的無意義註釋,應補充業務含義;4.使用TODO和FIXME標記待辦事項,並可配合工具追踪,確保註釋與代碼同步更新,提升項目可維護性。

See all articles