溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java高級(jí)面試題的難點(diǎn)有哪些

發(fā)布時(shí)間:2021-05-09 11:05:01 來(lái)源:億速云 閱讀:193 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了java高級(jí)面試題的難點(diǎn)有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Java可以用來(lái)干什么

Java主要應(yīng)用于:1. web開(kāi)發(fā);2. Android開(kāi)發(fā);3. 客戶端開(kāi)發(fā);4. 網(wǎng)頁(yè)開(kāi)發(fā);5. 企業(yè)級(jí)應(yīng)用開(kāi)發(fā);6. Java大數(shù)據(jù)開(kāi)發(fā);7.游戲開(kāi)發(fā)等。

本教程操作環(huán)境:windows7系統(tǒng)、java10版,DELL G3電腦。

1.jsonp的原理是什么

JavaScript 是一種在 Web 開(kāi)發(fā)中經(jīng)常使用的前端動(dòng)態(tài)腳本技術(shù)。在 JavaScript 中,有一個(gè)很重要的安全性限制,被稱為“Same-Origin Policy”(同源策略)。這一策略對(duì)于 JavaScript 代碼能夠訪問(wèn)的頁(yè)面內(nèi)容做了很重要的限制,即 JavaScript 只能訪問(wèn)與包含它的文檔在同一域下的內(nèi)容。

jsonp的最基本的原理是:動(dòng)態(tài)添加一個(gè)<script>標(biāo)簽,使用 script 標(biāo)簽的 src 屬性沒(méi)有跨域的限制的特點(diǎn)實(shí)現(xiàn)跨域。首先在客戶端注冊(cè)一個(gè) callback, 然后把 callback 的名字傳給服務(wù)器。此時(shí),服務(wù)器先生成 json 數(shù)據(jù)。然后以 javascript 語(yǔ)法的方式,生成一個(gè) function , function 名字就是傳遞上來(lái)的參數(shù) jsonp。最后將json 數(shù)據(jù)直接以入?yún)⒌姆绞?,放置?function 中,這樣就生成了一段 js 語(yǔ)法的文檔,返回給客戶端??蛻舳藶g覽器,解析 script 標(biāo)簽,并執(zhí)行返回的 javascript 文檔,此時(shí)數(shù)據(jù)作為參數(shù),傳入到了客戶端預(yù)先定義好的 callback 函數(shù)里。

2.Thread 類中的 start 和 run 方法有什么區(qū)別

start方法被用來(lái)啟動(dòng)新創(chuàng)建的線程,而run一般是線程對(duì)應(yīng)的業(yè)務(wù)邏輯。

另一方面start方法內(nèi)部調(diào)用了run方法,這和直接調(diào)用run方法的效果不一樣。當(dāng)你調(diào)用run方法的時(shí)候,只會(huì)是在原來(lái)的線程中調(diào)用,沒(méi)有新的線程啟動(dòng),start方法才會(huì)啟動(dòng)新線程。

3.jvm的類加載機(jī)制

jvm的類加載過(guò)程一共有以下幾個(gè)步驟:

①加載:將二進(jìn)制.class文件加載進(jìn)jvm虛擬機(jī)

②驗(yàn)證:驗(yàn)證字節(jié)碼文件是否符合Jvm規(guī)范,不會(huì)對(duì)jvm造成損害

③準(zhǔn)備:為類變量分配內(nèi)存,設(shè)置類變量的初始值

④解析:將常量池中的符號(hào)引用替換為直接引用

⑤初始化:調(diào)用類的構(gòu)造器,將類初始化

⑥使用:完成相應(yīng)調(diào)用

⑦卸載:被垃圾回收器回收

其中,②~④三個(gè)步驟統(tǒng)稱為連接.

jvm的類加載器采用雙親委派模型,在類加載時(shí)不會(huì)先直接調(diào)用自己的類加載器,而是去嘗試調(diào)用其父類加載器,父類加載器處理不了會(huì)向上傳遞,直到頂層的bootstrap類加載器也完成不了時(shí),才會(huì)使用該類的類加載器,這樣可以保證安全,避免我們哪天自己定義了一個(gè)叫Object的類,被jvm混淆。

4.請(qǐng)求轉(zhuǎn)發(fā)和重定向的區(qū)別?

(1)請(qǐng)求轉(zhuǎn)發(fā)是一個(gè)請(qǐng)求一次響應(yīng),而重定向會(huì)是兩次請(qǐng)求兩次響應(yīng)。

(2)請(qǐng)求轉(zhuǎn)發(fā)地址欄不變化,而重定向會(huì)顯示后一個(gè)請(qǐng)求的地址。

(3)請(qǐng)求轉(zhuǎn)發(fā)只能轉(zhuǎn)發(fā)到本地項(xiàng)目其他servlet,而重定向不只能重定向到本項(xiàng)目其他servlet,還能定向到其他項(xiàng)目。

(4)請(qǐng)求轉(zhuǎn)發(fā)是服務(wù)器端行為,只需要給出轉(zhuǎn)發(fā)的servlet路徑,而重定向需要給出request URI,即包含項(xiàng)目名。

(5)請(qǐng)求轉(zhuǎn)發(fā)帶值,重定向不帶值。

5.jdk1.7-1.11新特性以及l(fā)ambda表達(dá)式使用

jdk1.7新特性:

①新增了G1GC

②新增了try with resouce 不用try catch finally來(lái)關(guān)閉資源,會(huì)自動(dòng)關(guān)閉.

③新增switch支持String類型

jdk1.8新特性:

①新增lambda表達(dá)式,匿名內(nèi)部類的簡(jiǎn)寫和stream的各種功能要會(huì)用.

②改變了原有HashMap,ConcurrentHashMap結(jié)構(gòu).

③新增日期類API,如LocalDate

jdk1.9

引入了var  可以像寫前端js那樣 直接聲明一個(gè)變量var而不需要定義它的類型,比如 var x = new ArrayList<Integer>();

jdk11

引入了ZGC,垃圾回收暫停時(shí)間比G1GC更短。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“java高級(jí)面試題的難點(diǎn)有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI