這篇文章主要講解了“ Java類加載器包括幾種以及它們之間的關(guān)系是怎樣的”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ Java類加載器包括幾種以及它們之間的關(guān)系是怎樣的”吧!
1. 為什么說Java是一門平臺無關(guān)語言?
平臺無關(guān)實際的含義是“一次編寫到處運行”。Java 能夠做到是因為它的字節(jié)碼(byte code)可以運行在任何操作系統(tǒng)上,與底層系統(tǒng)無關(guān)。
2. 為什么 Java 不是100%面向?qū)ο螅?/p>
Java 不是100%面向?qū)ο?,因為它包?個原始數(shù)據(jù)類型,例如 boolean、byte、char、int、float、double、long、short。它們不是對象。
3. 什么是 singleton class,如何創(chuàng)建一個 singleton class?
Singleton class 在任何時間同一個 JVM 中只有一個實例??梢园褬?gòu)造函數(shù)加 private 修飾符創(chuàng)建 singleton。
4. 什么是多態(tài)?
多態(tài)簡單地說“一個接口,多種實現(xiàn)”。多態(tài)的出現(xiàn)使得在不同的場合同一個接口能夠提供不同功能,具體地說可以讓變量、函數(shù)或者對象能夠提供多種功能。下面是多態(tài)的兩種類型:
編譯時多態(tài)
運行時多態(tài)
編譯時多態(tài)主要是對方法進行重載(overload),而運行時多態(tài)主要通過使用繼承或者實現(xiàn)接口。
什么是運行時多態(tài),也稱動態(tài)方法分配?
在 Java 中,運行時多態(tài)或動態(tài)方法分配是一種在運行過程中的方法重載。在這個過程中,通過調(diào)用父類的變量引用被重載的方法。下面是一個例子:
5. Java類加載器包括幾種?它們之間的關(guān)系是怎么樣的?
Java 類加載器有:
引導類加載器(bootstrap class loader):只加載 JVM 自身需要的類,包名為 java、javax、sun 等開頭。
擴展類加載器(extensions class loader):加載 JAVA_HOME/lib/ext 目錄下或者由系統(tǒng)變量 -Djava.ext.dir 指定位路徑中的類庫。
應用程序類加載器(application class loader):加載系統(tǒng)類路徑 java -classpath 或 -Djava.class.path 下的類庫。
自定義類加載器(java.lang.classloder):繼承 java.lang.ClassLoader 的自定義類加載器。
注意:-Djava.ext.dirs 會覆蓋 Java 本身的 ext 設(shè)置,造成 JDK 內(nèi)建功能無法使用??梢韵裣旅孢@樣指定參數(shù):
它們的關(guān)系如下:
啟動類加載器,C++實現(xiàn),沒有父類。
擴展類加載器(ExtClassLoader),Java 實現(xiàn),父類加載器為 null。
應用程序類加載器(AppClassLoader),Java 實現(xiàn),父類加載器為 ExtClassLoader 。
自定義類加載器,父類加載器為AppClassLoader。
Java學習交流圈:834962734 ,進群可免費獲取一份Java架構(gòu)進階技術(shù)精品視頻。(高并發(fā)+Spring源碼+JVM原理解析+分布式架構(gòu)+微服務架構(gòu)+多線程并發(fā)原理+BATJ面試寶典)
6. 什么是JDBC驅(qū)動?
JDBC Driver 是一種實現(xiàn) Java 應用與數(shù)據(jù)庫交互的軟件。JDBC 驅(qū)動有下面4種:
JDBC-ODBC bridge 驅(qū)動
Native-API 驅(qū)動(部分是 Java 驅(qū)動)
網(wǎng)絡(luò)協(xié)議驅(qū)動(全部是 Java 驅(qū)動)
Thin driver(全部是 Java 驅(qū)動)
7. 使用 Java 連接數(shù)據(jù)庫有哪幾步?
注冊驅(qū)動類
新建數(shù)據(jù)庫連接
新建語句(statement)
查詢
關(guān)閉連接
8. 列舉Spring配置中常用的重要注解。
下面是一些重要的注解:
@Required
@Autowired
@Qualifier
@Resource
@PostConstruct
@PreDestroy
9. Spring中的Bean是什么?列舉Spring Bean的不同作用域。
Bean 是 Spring 應用的骨架。它們由 Spring IoC 容器管理。換句話說,Bean 是一個由 Spring IoC 容器初始化、裝配和管理的對象。
下面是 Spring Bean 的5種作用域:
Singleton:每個容器只創(chuàng)建一個實例,也是 Spring Bean 的默認配置。由于非線程安全,因此確保使用時不要在 Bean 中共享實例變量,一面出現(xiàn)數(shù)據(jù)不一致。
Prototype:每次請求時創(chuàng)建一個新實例。
Request:與 prototype 相同,區(qū)別在于只針對 Web 應用。每次 HTTP 請求時創(chuàng)建一個新實例。
Session:每次收到 HTTP 會話請求時由容器創(chuàng)建一個新實例。
全局 Session:為每個門戶應用(Portlet App)創(chuàng)建一個全局 Session Bean。
感謝各位的閱讀,以上就是“ Java類加載器包括幾種以及它們之間的關(guān)系是怎樣的”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對 Java類加載器包括幾種以及它們之間的關(guān)系是怎樣的這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
分享名稱:Java類加載器包括幾種以及它們之間的關(guān)系是怎樣的-創(chuàng)新互聯(lián)
當前網(wǎng)址:http://jinyejixie.com/article34/hipse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、微信小程序、網(wǎng)頁設(shè)計公司、網(wǎng)站維護、品牌網(wǎng)站制作、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容