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,當Sessionflush或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中文網其他相關文章!