• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場 > 面試題 > 2017中軟java面試題及參考答案

    2017中軟java面試題及參考答案

    時(shí)間: 如英753 分享

    2017中軟java面試題及參考答案

      回答面試題是中軟java求職者在求職路上邁出的第一步,以下是學(xué)習(xí)啦小編為大家收集到的2017中軟java面試題,希望對大家有幫助!

      2017中軟java面試題(一)

      1、談?wù)刦inal, finally, finalize的區(qū)別。

      final:修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。

      finally:在異常處理時(shí)提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進(jìn)入 finally 塊(如果有的話)。

      finalize:方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒有被引用時(shí)對這個(gè)對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個(gè)對象調(diào)用的。

      2、Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?

      匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能繼承其它類,但一個(gè)內(nèi)部類可以作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(xiàn)。

      3、Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。

      Static nested class(嵌套類)是將內(nèi)部類聲明為static。普通內(nèi)部類對象隱式地保存了一個(gè)引用,指向創(chuàng)建它的外圍類對象,不能有static數(shù)據(jù)和static字段。嵌套類意味著:1> 要?jiǎng)?chuàng)建嵌套類的對象,并不需要其外圍類的對象;2>不能從嵌套類的對象中訪問非靜態(tài)的外圍類的對象。

      4、&和&&的區(qū)別。

      & 是兩個(gè)數(shù)相與,是位運(yùn)算符

      &&是布爾邏輯運(yùn)算符,連接兩個(gè)條件表達(dá)式的,兩個(gè)條件表達(dá)式都為真時(shí),整個(gè)才為真

      5、HashMap和Hashtable的區(qū)別。

      都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。HashMap 類沒有分類或者排序。它允許一個(gè) null 鍵和多個(gè) null 值。Hashtable 類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因?yàn)樗峭降模蔷€程安全的。

      6、Collection 和 Collections的區(qū)別。

      Collections是個(gè)java.util下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。

      Collection是個(gè)java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。

      7、List, Set, Map是否繼承自Collection接口?

      List,Set是 Map不是

      8、ArrayList和Vector的區(qū)別。

      1>同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的 2>數(shù)據(jù)增長:當(dāng)需要增長時(shí),Vector默認(rèn)增長為原來一培,而ArrayList卻是原來的一半

      9、什么時(shí)候用assert。

      assertion(斷言)在軟件開發(fā)中是一種常用的調(diào)試方式,很多開發(fā)語言中都支持這種機(jī)制。在實(shí)現(xiàn)中,assertion就是在程序中的一條語句,它對一個(gè)boolean表達(dá)式進(jìn)行檢查,一個(gè)正確程序必須保證這個(gè)boolean表達(dá)式的值為true;如果該值為false,說明程序已經(jīng)處于不正確的狀態(tài)下,系統(tǒng)將給出警告或退出。一般來說,assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通常在開發(fā)和測試時(shí)開啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的。

      10、GC是什么? 為什么要有GC?

      GC是垃圾收集器。Java 程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿詣?dòng)進(jìn)行管理。要請求垃圾收集,可以調(diào)用下面的方法之一:

      2017中軟java面試題(二)

      11、String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?

      兩個(gè)對象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對象s

      12、.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

      Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;因?yàn)榉祷刈罱咏鼌?shù)的 long。通過加上 1/2 將該結(jié)果舍入為整數(shù),取結(jié)果的基數(shù)并將其強(qiáng)制轉(zhuǎn)換為 long 類型。換句話說,結(jié)果等于以下表達(dá)式的值: (long)Math.floor(a + 0.5d)

      13、short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?

      short s1 = 1; s1 = s1 + 1;錯(cuò), short s1 = 1; s1 += 1;對。對于short s1 = 1; s1 = s1 + 1;由于s1+1運(yùn)算時(shí)會自動(dòng)提升表達(dá)式的類型,所以結(jié)果是int型,再賦值給short類型s1時(shí),編譯器將報(bào)告需要強(qiáng)制轉(zhuǎn)換類型的錯(cuò)誤。對于short s1 = 1; s1 += 1;由于 += 是java語言規(guī)定的運(yùn)算符,java編譯器會對它進(jìn)行特殊處理,因此可以正確編譯。

      14、sleep() 和 wait() 有什么區(qū)別?

      sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會自動(dòng)恢復(fù)。調(diào)用sleep不會釋放對象鎖。wait是Object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進(jìn)入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對象鎖定池準(zhǔn)備獲得對象鎖進(jìn)入運(yùn)行狀態(tài)。

      15、數(shù)組有沒有l(wèi)ength()這個(gè)方法? String有沒有l(wèi)ength()這個(gè)方法?

      數(shù)組沒有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。String有有l(wèi)ength()這個(gè)方法。

      16、是否可以繼承String類?

      String類是final類故不可以繼承。

      17、Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?

      overload一般翻譯為重載,表示多個(gè)函數(shù)共用同一個(gè)函數(shù)名,為了保證調(diào)用這些同名函數(shù)時(shí)能正確區(qū)分究竟應(yīng)該調(diào)用的是其中的哪一個(gè),重載的各個(gè)函數(shù)的參數(shù)表(不考慮形參名)必須彼此不同,通常簡略地說成“不同參數(shù)表”。它對返回值的類型沒有任何要求,所以你可以隨意為每一個(gè)重載的函數(shù)設(shè)置返回類型,相同也行,不同也行。

      override一般翻譯為覆蓋,表示子類對從父類繼承來的虛函數(shù)重新定義,它要求參數(shù)表必須跟父類中被覆蓋的那個(gè)函數(shù)的參數(shù)表完全相同,返回值類型原則上也要求相同,但如果返回類型是父類的指針或者父類的引用,覆蓋時(shí)返回類型允許是子類的指針或者子類的引用。

      18、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?

      Set是Collection容器的一個(gè)子接口,它不允許出現(xiàn)重復(fù)元素,當(dāng)然也只允許有一個(gè)null對象。 equals()區(qū)分更合適。為什么用equals()而不用==來區(qū)分? 應(yīng)該從它倆的區(qū)別談起,==是用來判斷兩者是否是同一對象(同一事物),而equals是用來判斷是否引用同一個(gè)對象。再看一下Set里面存的是對象,還是對象的引用。根據(jù)java的存儲機(jī)制可知,set里面存放的是對象的引用,所以當(dāng)兩個(gè)元素只要滿足了equals()時(shí)就已經(jīng)指向同一個(gè)對象,也就出現(xiàn)了重復(fù)元素。所以應(yīng)該用equals()來判斷。

      19、給我一個(gè)你最常見到的runtime exception。

      20、error和exception有什么區(qū)別?

      Error(錯(cuò)誤)表示系統(tǒng)級的錯(cuò)誤和程序不必處理的異常,是java運(yùn)行環(huán)境中的內(nèi)部錯(cuò)誤或者硬件問題,比如,內(nèi)存資源不足等,對于這種錯(cuò)誤,程序基本無能為力,除了退出運(yùn)行外別無選擇。

      Exception(違例)表示需要捕捉或者需要程序進(jìn)行處理的異常,它處理的是因?yàn)槌绦蛟O(shè)計(jì)的瑕疵而引起的問題或者在外的輸入等引起的一般性問題,是程序必須處理的。

      2017中軟java面試題(三)

      21、abstract class和interface有什么區(qū)別?

      1> 相同點(diǎn)

      A. 兩者都是抽象類,都不能實(shí)例化。

      B. interface實(shí)現(xiàn)類及abstrct class的子類都必須要實(shí)現(xiàn)已經(jīng)聲明的抽象方法。

      2> 不同點(diǎn)

      A. interface需要實(shí)現(xiàn),要用implements,而abstract class需要繼承,要用extends。

      B. 一個(gè)類可以實(shí)現(xiàn)多個(gè)interface,但一個(gè)類只能繼承一個(gè)abstract class。

      C. interface強(qiáng)調(diào)特定功能的實(shí)現(xiàn),而abstract class強(qiáng)調(diào)所屬關(guān)系。

      D. 盡管interface實(shí)現(xiàn)類及abstrct class的子類都必須要實(shí)現(xiàn)相應(yīng)的抽象方法,但實(shí)現(xiàn)的形式不同。interface中的每一個(gè)方法都是抽象方法,都只是聲明的(declaration, 沒有方法體),實(shí)現(xiàn)類必須要實(shí)現(xiàn)。而abstract class的子類可以有選擇地實(shí)現(xiàn)。

      這個(gè)選擇有兩點(diǎn)含義:

      一是Abastract class中并非所有的方法都是抽象的,只有那些冠有abstract的方法才是抽象的,子類必須實(shí)現(xiàn)。那些沒有abstract的方法,在Abstrct class中必須定義方法體。

      二是abstract class的子類在繼承它時(shí),對非抽象方法既可以直接繼承,也可以覆蓋;而對抽象方法,可以選擇實(shí)現(xiàn),也可以通過再次聲明其方法為抽象的方式,無需實(shí)現(xiàn),留給其子類來實(shí)現(xiàn),但此類必須也聲明為抽象類。既是抽象類,當(dāng)然也不能實(shí)例化。

      E. abstract class是interface與Class的中介。

      interface是完全抽象的,只能聲明方法,而且只能聲明pulic的方法,不能聲明private及protected的方法,不能定義方法體,也不能聲明實(shí)例變量。然而,interface卻可以聲明常量變量,并且在JDK中不難找出這種例子。但將常量變量放在interface中違背了其作為接口的作用而存在的宗旨,也混淆了interface與類的不同價(jià)值。如果的確需要,可以將其放在相應(yīng)的abstract class或Class中。

      abstract class在interface及Class中起到了承上啟下的作用。一方面,abstract class是抽象的,可以聲明抽象方法,以規(guī)范子類必須實(shí)現(xiàn)的功能;另一方面,它又可以定義缺省的方法體,供子類直接使用或覆蓋。另外,它還可以定義自己的實(shí)例變量,以供子類通過繼承來使用。

      3> interface的應(yīng)用場合

      A. 類與類之前需要特定的接口進(jìn)行協(xié)調(diào),而不在乎其如何實(shí)現(xiàn)。

      B. 作為能夠?qū)崿F(xiàn)特定功能的標(biāo)識存在,也可以是什么接口方法都沒有的純粹標(biāo)識。

      C. 需要將一組類視為單一的類,而調(diào)用者只通過接口來與這組類發(fā)生聯(lián)系。

      D. 需要實(shí)現(xiàn)特定的多項(xiàng)功能,而這些功能之間可能完全沒有任何聯(lián)系。

      4> abstract class的應(yīng)用場合

      一句話,在既需要統(tǒng)一的接口,又需要實(shí)例變量或缺省的方法的情況下,就可以使用它。最常見的有:

      A. 定義了一組接口,但又不想強(qiáng)迫每個(gè)實(shí)現(xiàn)類都必須實(shí)現(xiàn)所有的接口。可以用abstract class定義一組方法體,甚至可以是空方法體,然后由子類選擇自己所感興趣的方法來覆蓋。

      B. 某些場合下,只靠純粹的接口不能滿足類與類之間的協(xié)調(diào),還必需類中表示狀態(tài)的變量來區(qū)別不同的關(guān)系。abstract的中介作用可以很好地滿足這一點(diǎn)。

      C. 規(guī)范了一組相互協(xié)調(diào)的方法,其中一些方法是共同的,與狀態(tài)無關(guān)的,可以共享的,無需子類分別實(shí)現(xiàn);而另一些方法卻需要各個(gè)子類根據(jù)自己特定的狀態(tài)來實(shí)現(xiàn)特定的功能

      22、接口是否可繼承接口? 抽象類是否可實(shí)現(xiàn)(implements)接口? 抽象類是否可繼承實(shí)體類(concrete class)?

      接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)接口。抽象類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù)。

      23、構(gòu)造器Constructor是否可被override?

      構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。

      24、.當(dāng)一個(gè)線程進(jìn)入一個(gè)對象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對象的其它方法?

      不能,一個(gè)對象的一個(gè)synchronized方法只能由一個(gè)線程訪問。

    看了“2017中軟java面試題及參考答案”的人還看了:

    1.2017有關(guān)中軟國際Java的面試題

    2.2017java面試題及參考答案

    3.2017web前端面試題及參考答案

    4.中軟java面試題及參考答案

    5.中軟國際java面試題及參考答案

    1700717 主站蜘蛛池模板: 农村老熟妇乱子伦视频| 久久精品视频91| 伊人久久大香线蕉观看| 亚洲综合激情视频| 久久天天躁狠狠躁夜夜| 91情国产l精品国产亚洲区| 韩国三级中文字幕hd久久精品| 麻豆果冻国产91在线极品| 精品久久无码中文字幕| 欧美孕妇xxxx做受欧美| 小小视频最新免费观看在线| 国产成人精品视频一区二区不卡| 人夫的堕落变装| 中文字幕久精品免费视频| 巨胸喷奶水www永久免费| 玩弄放荡人妻少妇系列视频| 日本不卡一二三| 国产精品亚洲一区二区三区| 人人爽人人爽人人片av| 99久久无色码中文字幕人妻| 美女内射无套日韩免费播放| 日韩精品在线观看视频| 国产综合久久久久久鬼色| 午夜一级黄色片| 久久久无码人妻精品无码| 视频二区调教中字知名国产| 波多野结衣大战黑鬼101| 小sao货赵欢欢的大学生活txt| 免费无码国产V片在线观看| 中文字幕第一页在线| 黄色小视频app下载| 日本三级香港三级久久99| 周妍希美乳三点尽露四季图片| 久久伊人精品一区二区三区| 国产xxxxx| 欧美国产成人精品一区二区三区| 天天做.天天爱.天天综合网| 午夜在线观看免费影院| 中文字幕在线网站| 美女把屁股扒开让男人桶视频| 无码成人精品区在线观看|