您好,登錄后才能下訂單哦!
這篇文章主要介紹了java高級面試題的難點有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
本教程操作環境:windows7系統、java10版,DELL G3電腦。
1.jsonp的原理是什么
JavaScript 是一種在 Web 開發中經常使用的前端動態腳本技術。在 JavaScript 中,有一個很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。這一策略對于 JavaScript 代碼能夠訪問的頁面內容做了很重要的限制,即 JavaScript 只能訪問與包含它的文檔在同一域下的內容。
jsonp的最基本的原理是:動態添加一個<script>標簽,使用 script 標簽的 src 屬性沒有跨域的限制的特點實現跨域。首先在客戶端注冊一個 callback, 然后把 callback 的名字傳給服務器。此時,服務器先生成 json 數據。然后以 javascript 語法的方式,生成一個 function , function 名字就是傳遞上來的參數 jsonp。最后將json 數據直接以入參的方式,放置到 function 中,這樣就生成了一段 js 語法的文檔,返回給客戶端。客戶端瀏覽器,解析 script 標簽,并執行返回的 javascript 文檔,此時數據作為參數,傳入到了客戶端預先定義好的 callback 函數里。
2.Thread 類中的 start 和 run 方法有什么區別
start方法被用來啟動新創建的線程,而run一般是線程對應的業務邏輯。
另一方面start方法內部調用了run方法,這和直接調用run方法的效果不一樣。當你調用run方法的時候,只會是在原來的線程中調用,沒有新的線程啟動,start方法才會啟動新線程。
3.jvm的類加載機制
jvm的類加載過程一共有以下幾個步驟:
①加載:將二進制.class文件加載進jvm虛擬機
②驗證:驗證字節碼文件是否符合Jvm規范,不會對jvm造成損害
③準備:為類變量分配內存,設置類變量的初始值
④解析:將常量池中的符號引用替換為直接引用
⑤初始化:調用類的構造器,將類初始化
⑥使用:完成相應調用
⑦卸載:被垃圾回收器回收
其中,②~④三個步驟統稱為連接.
jvm的類加載器采用雙親委派模型,在類加載時不會先直接調用自己的類加載器,而是去嘗試調用其父類加載器,父類加載器處理不了會向上傳遞,直到頂層的bootstrap類加載器也完成不了時,才會使用該類的類加載器,這樣可以保證安全,避免我們哪天自己定義了一個叫Object的類,被jvm混淆。
4.請求轉發和重定向的區別?
(1)請求轉發是一個請求一次響應,而重定向會是兩次請求兩次響應。
(2)請求轉發地址欄不變化,而重定向會顯示后一個請求的地址。
(3)請求轉發只能轉發到本地項目其他servlet,而重定向不只能重定向到本項目其他servlet,還能定向到其他項目。
(4)請求轉發是服務器端行為,只需要給出轉發的servlet路徑,而重定向需要給出request URI,即包含項目名。
(5)請求轉發帶值,重定向不帶值。
5.jdk1.7-1.11新特性以及lambda表達式使用
jdk1.7新特性:
①新增了G1GC
②新增了try with resouce 不用try catch finally來關閉資源,會自動關閉.
③新增switch支持String類型
jdk1.8新特性:
①新增lambda表達式,匿名內部類的簡寫和stream的各種功能要會用.
②改變了原有HashMap,ConcurrentHashMap結構.
③新增日期類API,如LocalDate
jdk1.9
引入了var 可以像寫前端js那樣 直接聲明一個變量var而不需要定義它的類型,比如 var x = new ArrayList<Integer>();
jdk11
引入了ZGC,垃圾回收暫停時間比G1GC更短。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java高級面試題的難點有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。