大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java常見的相關(guān)基礎(chǔ)知識

Java常見的相關(guān)基礎(chǔ)知識

更新時間:2019-12-06 15:25:09 來源:動力節(jié)點 瀏覽2765次

 

27 拷貝.jpg

  一道類加載的問題,一個類,在類加載之后,如果對類的內(nèi)容進行修改,如何在不重新啟動虛擬機的情況下,加載已經(jīng)變化過的類

  你可以創(chuàng)建個新的class loader,然后用loadClass加載,再newInstance;原來加載的classloader是不能重新加載的;這算是一個典型的容器思路。

  《深入理解java虛擬機》

  對java“書寫一次,到處運行”(Write once, run anywhere)的理解?

  一次編譯、到處運行”說的是Java語言跨平臺的特性,Java的跨平臺特性與Java虛擬機的存在密不可分,可在不同的環(huán)境中運行。比如說Windows平臺和Linux平臺都有相應(yīng)的JDK,安裝好JDK后也就有了Java語言的運行環(huán)境。其實Java語言本身與其他的編程語言沒有特別大的差異,并不是說Java語言可以跨平臺,而是在不同的平臺都有可以讓Java語言運行的環(huán)境而已,所以才有了Java一次編譯,到處運行這樣的效果。

  嚴格的講,跨平臺的語言不止Java一種,但Java是較為成熟的一種。“一次編譯,到處運行”這種效果跟編譯器有關(guān)。編程語言的處理需要編譯器和解釋器。Java虛擬機和DOS類似,相當于一個供程序運行的平臺。

  程序從源代碼到運行的三個階段:編碼——編譯——運行——調(diào)試。Java在編譯階段則體現(xiàn)了跨平臺的特點。編譯過程大概是這樣的:首先是將Java源代碼轉(zhuǎn)化成.CLASS文件字節(jié)碼,這是第一次編譯。.class文件就是可以到處運行的文件。然后Java字節(jié)碼會被轉(zhuǎn)化為目標機器代碼,這是是由JVM來執(zhí)行的,即Java的第二次編譯。“到處運行”的關(guān)鍵和前提就是JVM。

  Java代碼的整個生命周期如圖:

面試必備 | Java常用基礎(chǔ)知識(一)

 

  談?wù)勀銓?Java 平臺的理解?“Java 是解釋執(zhí)行”,這句話正確嗎?

  Java 本身是一種面向?qū)ο蟮恼Z言,最顯著的特性有兩個方面,一是所謂的“書寫一次,到處運行”(Write once, run anywhere),能夠非常容易地獲得跨平臺能力;另外就是垃圾收集(GC, Garbage Collection),Java 通過垃圾收集器(Garbage Collector)回收分配內(nèi)存,大部分情況下,程序員不需要自己操心內(nèi)存的分配和回收。

  對于“Java 是解釋執(zhí)行”這句話,這個說法不太準確。我們開發(fā)的 Java 的源代碼,首先通過 Javac 編譯成為字節(jié)碼(bytecode),然后,在運行時,通過 Java 虛擬機(JVM)內(nèi)嵌的解釋器將字節(jié)碼轉(zhuǎn)換成為最終的機器碼。但是常見的 JVM,比如我們大多數(shù)情況使用的 Oracle JDK 提供的 Hotspot JVM,都提供了 JIT(Just-In-Time)編譯器,也就是通常所說的動態(tài)編譯器,JIT 能夠在運行時將熱點代碼編譯成機器碼,這種情況下部分熱點代碼就屬于編譯執(zhí)行,而不是解釋執(zhí)行了。

  請對比 Exception 和 Error,另外,運行時異常與一般異常有什么區(qū)別?

  Exception 和 Error 都是繼承了 Throwable 類,在 Java 中只有 Throwable 類型的實例才可以被拋出(throw)或者捕獲(catch),它是異常處理機制的基本組成類型。

  Exception 和 Error 體現(xiàn)了 Java 平臺設(shè)計者對不同異常情況的分類。Exception 是程序正常運行中,可以預料的意外情況,可能并且應(yīng)該被捕獲,進行相應(yīng)處理。

  Error 是指在正常情況下,不大可能出現(xiàn)的情況,絕大部分的 Error 都會導致程序(比如 JVM 自身)處于非正常的、不可恢復狀態(tài)。既然是非正常情況,所以不便于也不需要捕獲,常見的比如 OutOfMemoryError 之類,都是 Error 的子類。

  Exception 又分為可檢查(checked)異常和不檢查(unchecked)異常,可檢查異常在源代碼里必須顯式地進行捕獲處理,這是編譯期檢查的一部分。

  面試必備 | Java常用基礎(chǔ)知識(一)

  下面的代碼反映了異常處理中哪些不當之處?

      image.png

  第一,盡量不要捕獲類似 Exception 這樣的通用異常,而是應(yīng)該捕獲特定異常,在這里是 Thread.sleep() 拋出的 InterruptedException。

  第二,不要生吞(swallow)異常。

  從性能角度來審視一下 Java 的異常處理機制,這里有兩個可能會相對昂貴的地方:

  ①、try-catch 代碼段會產(chǎn)生額外的性能開銷,或者換個角度說,它往往會影響 JVM 對代碼進行優(yōu)化,所以建議僅捕獲有必要的代碼段,盡量不要一個大的 try 包住整段的代碼;

  ②、Java 每實例化一個 Exception,都會對當時的棧進行快照,這是一個相對比較重的操作。如果發(fā)生的非常頻繁,這個開銷可就不能被忽略了。

  ClassNotFoundException的產(chǎn)生原因?

  Java支持使用Class.forName方法來動態(tài)地加載類,任意一個類的類名如果被作為參數(shù)傳遞給這個方法都將導致該類被加載到JVM內(nèi)存中,如果這個類在類路徑中沒有被找到,那么此時就會在運行時拋出ClassNotFoundException異常。

  談?wù)?final、finally、 finalize 有什么不同?

  final 可以用來修飾類、方法、變量,分別有不同的意義,final 修飾的 class 代表不可以繼承擴展,final 的變量是不可以修改的,而 final 的方法也是不可以重寫的(override)。

  finally 則是 Java 保證重點代碼一定要被執(zhí)行的一種機制。我們可以使用 try-finally 或者 try-catch-finally 來進行類似關(guān)閉 JDBC 連接、保證 unlock 鎖等動作。

  finalize 是基礎(chǔ)類 java.lang.Object 的一個方法,它的設(shè)計目的是保證對象在被垃圾收集前完成特定資源的回收。finalize 機制現(xiàn)在已經(jīng)不推薦使用,并且在 JDK 9 開始被標記為 deprecated。

  強引用、軟引用、弱引用、幻象引用有什么區(qū)別?具體使用場景是什么?

  所謂強引用(“Strong” Reference),就是我們最常見的普通對象引用,只要還有強引用指向一個對象,就能表明對象還“活著”,垃圾收集器不會碰這種對象。對于一個普通的對象,如果沒有其他的引用關(guān)系,只要超過了引用的作用域或者顯式地將相應(yīng)(強)引用賦值為 null,就是可以被垃圾收集的了,當然具體回收時機還是要看垃圾收集策略。

  軟引用(SoftReference),通過SoftReference類實現(xiàn)。是一種相對強引用弱化一些的引用,可以讓對象豁免一些垃圾收集,只有當 JVM 認為內(nèi)存不足時,才會去試圖回收軟引用指向的對象。JVM 會確保在拋出 OutOfMemoryError 之前,清理軟引用指向的對象。軟引用通常用來實現(xiàn)內(nèi)存敏感的緩存,如果還有空閑內(nèi)存,就可以暫時保留緩存,當內(nèi)存不足時清理掉,這樣就保證了使用緩存的同時,不會耗盡內(nèi)存。

  弱引用(WeakReference)通過WeakReference類實現(xiàn)。。并不能使對象豁免垃圾收集,在垃圾回收器線程掃描它所管轄的內(nèi)存區(qū)域的過程中,一旦發(fā)現(xiàn)了具有弱引用的對象,不管當前內(nèi)存空間足夠與否,都會回收它的內(nèi)存。由于垃圾回收器是一個優(yōu)先級很低的線程,因此不一定會很快回收弱引用的對象。

  虛引用也叫幻象引用,通過PhantomReference類來實現(xiàn)。無法通過虛引用訪問對象的任何屬性或函數(shù)。幻象引用僅僅是提供了一種確保對象被 finalize 以后,做某些事情的機制。如果一個對象僅持有虛引用,那么它就和沒有任何引用一樣,在任何時候都可能被垃圾回收器回收。虛引用必須和引用隊列 (ReferenceQueue)聯(lián)合使用。

        以上就是動力節(jié)點Java培訓機構(gòu)小編介紹的“Java常見的相關(guān)基礎(chǔ)知識”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美精品亚洲二区 | 免费观看黄色a一级录像 | 国产在线综合网 | 伊人伊人影院 | 国产精品欧美亚洲韩国日本99 | www.青草| 欧美大屁股精品毛片视频 | 中文字幕在线观看一区二区三区 | 欧美日韩中文国产一区二区三区 | 波多野结衣视频一区二区 | 日本不卡1 | 夜夜躁日日躁狠狠 | 欧美福利影院 | 日本中文字幕在线播放 | 日韩成人小视频 | 成 人 黄 色 大 片全部 | 天天操精品 | 在线观看中文字幕国产 | 国内特级毛片 | 男人的网站在线观看 | 就草草在线观看视频 | 欧美日本另类xxx乱大交 | 亚洲男人天堂久久 | 九九影院韩国理伦片 | 桃色视频在线观看 | 久久天天躁狠狠躁夜夜躁综合 | 二区三区 | 在线观看国产亚洲 | 免费看欧美一级特黄a大片 免费看欧美一级特黄a大片一 | 综合久| 久久久久久亚洲精品不卡 | 久久精品国产精品亚洲毛片 | 成人免费性视频 | 99久久综合狠狠综合久久 | 久久精品国产免费看久久精品 | 2021福利视频| 久久久久香蕉视频 | 无遮挡又黄又爽又色的视频免费 | 国产成人亚洲综合 | 国产尤物福利视频一区二区 | 久久中文网中文字幕 |