久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      java經(jīng)典面試題集錦(二)

      java經(jīng)典面試題集錦(二)

      一、int和Integer的區(qū)別

      (相關(guān)教程推薦:java面試題)

      1、Integer是int的包裝類,int則是java的一種基本數(shù)據(jù)類型

      2、Integer變量必須實(shí)例化后才能使用,而int變量不需要

      3、Integer實(shí)際是對象的引用,當(dāng)new一個(gè)Integer時(shí),實(shí)際上是生成一個(gè)指針指向此對象;而int則是直接存儲數(shù)據(jù)值

      4、Integer的默認(rèn)值是null,int的默認(rèn)值是0

      二、什么是for each循環(huán),它可以循環(huán)那些數(shù)據(jù)類型?

      增強(qiáng)版的for循環(huán),寫法更簡潔,更加不容易出錯(cuò)(因?yàn)椴挥脫?dān)心數(shù)組越界),底層也是使用了迭代器獲取的,只不過獲取迭代器由jvm完成,不需要我們獲取迭代器而已,所以在使用foreach循環(huán)變量元素的過程中不準(zhǔn)使用集合對象對集合的元素個(gè)數(shù)進(jìn)行修改。

      寫法:

      for(String it : set){     System.out.println("集合的元素:" + it); }

      缺點(diǎn):

      在對數(shù)組索引進(jìn)行操作或者集合進(jìn)行增刪操作時(shí),可能會(huì)報(bào)錯(cuò)。

      (推薦學(xué)習(xí):java入門程序)

      三、重載與重寫有什么區(qū)別?

      1、方法重載

      是讓類以統(tǒng)一的方式處理不同類型數(shù)據(jù)的一種手段。多個(gè)同名函數(shù)同時(shí)存在,具有不同的參數(shù)個(gè)數(shù)/類型。重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。

      Java的方法重載,就是在類中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。

      調(diào)用方法時(shí)通過傳遞給它們的不同參數(shù)個(gè)數(shù)和參數(shù)類型來決定具體使用哪個(gè)方法, 這就是多態(tài)性。

      重載的時(shí)候,方法名要一樣,但是參數(shù)類型和個(gè)數(shù)不一樣,返回值類型可以相同也可以不相同。無法以返回值類型作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。

      2、方法重寫

      參數(shù)列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是重載。

      返回的類型必須一直與被重寫的方法的返回類型相同,否則不能稱其為重寫而是重載。

      訪問修飾符的限制一定要大于被重寫方法的訪問修飾符(public>protected>default>private)

      重寫方法一定不能拋出新的檢查異?;蛘弑缺恢貙懛椒ㄉ昝鞲訉挿旱臋z查型異常。例如:父類的一個(gè)方法申明了一個(gè)檢查異常IOException,在重寫這個(gè)方法是就不能拋出Exception,只能拋出IOException的子類異常,可以拋出非檢查異常。

      注意:構(gòu)造器不能被繼承,因此不能被重寫,但可以被重載。

      四、接口與抽象類的區(qū)別?

      1、抽象類和接口都不能直接實(shí)例化,如果要實(shí)例化,抽象類變量必須指向?qū)崿F(xiàn)所有抽象方法的子類對象,接口變量必須指向?qū)崿F(xiàn)所有接口方法的類對象。

      2、抽象類要被子類繼承,接口要被類實(shí)現(xiàn)。

      3、接口只能做方法申明,抽象類中可以做方法申明,也可以做方法實(shí)現(xiàn)

      4、接口里定義的變量只能是公共的靜態(tài)的常量,抽象類中的變量是普通變量。

      5、抽象類里的抽象方法必須全部被子類所實(shí)現(xiàn),如果子類不能全部實(shí)現(xiàn)父類抽象方法,那么該子類只能是抽象類。同樣,一個(gè)實(shí)現(xiàn)接口的時(shí)候,如不能全部實(shí)現(xiàn)接口方法,那么該類也只能為抽象類。

      6、抽象方法只能申明,不能實(shí)現(xiàn),接口是設(shè)計(jì)的結(jié)果 ,抽象類是重構(gòu)的結(jié)果

      7、抽象類里可以沒有抽象方法

      8、如果一個(gè)類里有抽象方法,那么這個(gè)類只能是抽象類

      9、抽象方法要被實(shí)現(xiàn),所以不能是靜態(tài)的,也不能是私有的。

      10、接口可繼承接口,并可多繼承接口,但類只能單根繼承。

      不允許類多重繼承的主要原因是,如果A同時(shí)繼承B和C,而b和c同時(shí)有一個(gè)D方法,A如何決定該繼承那一個(gè)呢?

      但接口不存在這樣的問題,接口全都是抽象方法繼承誰都無所謂,所以接口可以繼承多個(gè)接口。

      (視頻教程推薦:java視頻教程)

      五、final, finally, finalize 的區(qū)別

      final:java中的關(guān)鍵字,修飾符。

      A)、如果一個(gè)類被聲明為final,就意味著它不能再派生出新的子類,不能作為父類被繼承。因此,一個(gè)類不能同時(shí)被聲明為abstract抽象類的和final的類。

      B)、如果將變量或者方法聲明為final,可以保證它們在使用中不被改變。

      (1)被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。

      (2)被聲明final的方法只能使用,不能重載。

      finally:java的一種異常處理機(jī)制。

      finally是對Java異常處理模型的最佳補(bǔ)充。finally結(jié)構(gòu)使代碼總會(huì)執(zhí)行,而不管無異常發(fā)生。使用finally可以維護(hù)對象的內(nèi)部狀態(tài),并可以清理非內(nèi)存資源。特別是在關(guān)閉數(shù)據(jù)庫連接這方面,如果程序員把數(shù)據(jù)庫連接的close()方法放到finally中,就會(huì)大大降低程序出錯(cuò)的幾率。

      finalize,它是一個(gè)方法,屬于java.lang.Object類,它的定義如下:

      protected void finalize()throws Throwable{}

      眾所周知,finalize()方法是GC(garbagecollector運(yùn)行機(jī)制的一部分,在此我們只說說finalize()方法的作用是什么呢?

      finalize()方法是在GC清理它所從屬的對象時(shí)被調(diào)用的,如果執(zhí)行它的過程中拋出了無法捕獲的異常(uncaughtexception,GC將終止對改對象的清理,并且該異常會(huì)被忽略;直到下一次GC開始清理這個(gè)對象時(shí),它的finalize()會(huì)被再次調(diào)用。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號