中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

每周10道Java面試題:面向?qū)ο? 類加載器, JDBC, Spring 基礎(chǔ)概念

2018-12-21    來源:importnew

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

每周10道?Java?面試題由 ImportNew 整理編譯自網(wǎng)絡(luò)。
面試題答案討論請移步:https://github.com/jobbole/java-interview/issues/1
Java面試題投遞交流請移步:https://github.com/jobbole/java-interview/issues/2

1. 為什么說Java是一門平臺無關(guān)語言?

平臺無關(guān)實際的含義是“一次編寫到處運行”。Java 能夠做到是因為它的字節(jié)碼(byte code)可以運行在任何操作系統(tǒng)上,與底層系統(tǒng)無關(guān)。

2. 為什么 Java 不是100%面向?qū)ο螅?/h3>

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)的兩種類型:

  1. 編譯時多態(tài)
  2. 運行時多態(tài)

編譯時多態(tài)主要是對方法進行重載(overload),而運行時多態(tài)主要通過使用繼承或者實現(xiàn)接口。

什么是運行時多態(tài),也稱動態(tài)方法分配?

在 Java 中,運行時多態(tài)或動態(tài)方法分配是一種在運行過程中的方法重載。在這個過程中,通過調(diào)用父類的變量引用被重載的方法。下面是一個例子:

class Car {
	void run()
	{
		System.out.println(“car is running”); 
	}
}
class Audi extends Car {
	void run()
	{
		System.out.prinltn(“Audi is running safely with 100km”);
	}
	public static void main(String args[])
	{
		Car b= new Audi();    //向上轉(zhuǎn)型
		b.run();
	}
}

5. Java類加載器包括幾種?它們之間的關(guān)系是怎么樣的?

Java 類加載器有:

  • 引導(dǎo)類加載器(bootstrap class loader):只加載 JVM 自身需要的類,包名為 java、javax、sun 等開頭。
  • 擴展類加載器(extensions class loader):加載 JAVA_HOME/lib/ext 目錄下或者由系統(tǒng)變量 -Djava.ext.dir 指定位路徑中的類庫。
  • 應(yīng)用程序類加載器(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ù):

-Djava.ext.dirs=./plugin:$JAVA_HOME/jre/lib/ext。

它們的關(guān)系如下:

  • 啟動類加載器,C++實現(xiàn),沒有父類。
  • 擴展類加載器(ExtClassLoader),Java 實現(xiàn),父類加載器為 null。
  • 應(yīng)用程序類加載器(AppClassLoader),Java 實現(xiàn),父類加載器為 ExtClassLoader 。
  • 自定義類加載器,父類加載器為AppClassLoader。

7. 什么是JDBC驅(qū)動?

JDBC Driver 是一種實現(xiàn) Java 應(yīng)用與數(shù)據(jù)庫交互的軟件。JDBC 驅(qū)動有下面4種:

  1. JDBC-ODBC bridge 驅(qū)動
  2. Native-API 驅(qū)動(部分是 Java 驅(qū)動)
  3. 網(wǎng)絡(luò)協(xié)議驅(qū)動(全部是 Java 驅(qū)動)
  4. Thin driver(全部是 Java 驅(qū)動)

8. 使用 Java 連接數(shù)據(jù)庫有哪幾步?

  • 注冊驅(qū)動類
  • 新建數(shù)據(jù)庫連接
  • 新建語句(statement)
  • 查詢
  • 關(guān)閉連接

9. 列舉Spring配置中常用的重要注解。

下面是一些重要的注解:

  • @Required
  • @Autowired
  • @Qualifier
  • @Resource
  • @PostConstruct
  • @PreDestroy

10. Spring中的Bean是什么?列舉Spring Bean的不同作用域。

Bean 是 Spring 應(yīng)用的骨架。它們由 Spring IoC 容器管理。換句話說,Bean 是一個由?Spring IoC 容器初始化、裝配和管理的對象。

下面是 Spring Bean 的5種作用域:

  • Singleton:每個容器只創(chuàng)建一個實例,也是 Spring Bean 的默認(rèn)配置。由于非線程安全,因此確保使用時不要在 Bean 中共享實例變量,一面出現(xiàn)數(shù)據(jù)不一致。
  • Prototype:每次請求時創(chuàng)建一個新實例。
  • Request:與 prototype 相同,區(qū)別在于只針對 Web 應(yīng)用。每次 HTTP 請求時創(chuàng)建一個新實例。
  • Session:每次收到 HTTP 會話請求時由容器創(chuàng)建一個新實例。
  • 全局 Session:為每個門戶應(yīng)用(Portlet App)創(chuàng)建一個全局 Session Bean。

關(guān)于作者: 唐尤華

唐尤華

我喜歡程序員,他們單純、固執(zhí)、容易體會到成就感;面對壓力,能夠挑燈夜戰(zhàn)不眠不休;面對困難,能夠迎難而上挑戰(zhàn)自我。他們也會感到困惑與傍徨,但每個程序員的心中都有一個比爾蓋茨或是喬布斯的夢想“用智慧開創(chuàng)屬于自己的事業(yè)”。我想說的是,其實我是一個程序員。(新浪微博:@唐尤華

查看唐尤華的更多文章 >>

標(biāo)簽: ssl 安全 數(shù)據(jù)庫 網(wǎng)絡(luò) 轉(zhuǎn)型

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:從零開始用好Maven:從HelloWorld到日常使用

下一篇:Java中的構(gòu)造函數(shù)引用和方法引用