国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

J2EE經(jīng)典面試試題及答案

時(shí)間:2024-09-04 11:46:27 J2EE培訓(xùn) 我要投稿

J2EE經(jīng)典面試試題及答案

  1、垃圾回收的優(yōu)點(diǎn)和原理。

J2EE經(jīng)典面試試題及答案

  Java語言中一個(gè)顯著的特點(diǎn)就是引入了垃圾回收機(jī)制,使c++程序員最頭疼的內(nèi)存管理的問題迎刃

  而解,它使得Java程序員在編寫程序的時(shí)候不再需要考慮內(nèi)存管理。由于有個(gè)垃圾回收機(jī)制,Java中的對

  象不再有“作用域”的概念,只有對象的引用才有“作用域”。垃圾回收可以有效的防止內(nèi)存泄露,有效

  的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個(gè)單獨(dú)的低級別的線程運(yùn)行,不可預(yù)知的情況下對內(nèi)存

  堆中已經(jīng)死亡的或者長時(shí)間沒有使用的對象進(jìn)行清楚和回收,程序員不能實(shí)時(shí)的調(diào)用垃圾回收器對某個(gè)對

  象或所有對象進(jìn)行垃圾回收。

  2、請說出你所知道的線程同步的方法。

  wait():使一個(gè)線程處于等待狀態(tài),并且釋放所持有的對象的lock。

  sleep():使一個(gè)正在運(yùn)行的線程處于睡眠狀態(tài),是一個(gè)靜態(tài)方法,調(diào)用此方法要捕捉

  InterruptedException異常。

  notify():喚醒一個(gè)處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時(shí)候,并不能確切的喚醒某一

  個(gè)等待狀態(tài)的線程,而是由JVM確定喚醒哪個(gè)線程,而且不是按優(yōu)先級。

  Allnotity():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個(gè)對象的鎖,而是讓它

  們競爭。

  3、在java中一個(gè)類被聲明為final類型,表示了什么意思?

  表示該類不能被繼承,是頂級類。

  4、 Error與Exception有什么區(qū)別?

  Error表示系統(tǒng)級的錯(cuò)誤和程序不必處理的異常,

  Exception表示需要捕捉或者需要程序進(jìn)行處理的異常。

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

  &是位運(yùn)算符。&&是布爾邏輯運(yùn)算符。

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

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

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

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

  都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。

  HashMap 類沒有分類或者排序。它允許一個(gè) null 鍵和多個(gè) null 值。

  Hashtable 類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因?yàn)樗峭降摹?/p>

  8、GC是什么? 為什么要有GC? .

  GC是垃圾收集器。Java 程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理。要請求垃圾收

  集,可以調(diào)用下面的方法之一:System.gc()

  Runtime.getRuntime().gc()

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

  final—修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作

  為父類被繼承。因此一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為

  final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用

  中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。

  finally—再異常處理時(shí)提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配

  的 catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入 finally 塊(如果有的話)。

  finalize—方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對象從內(nèi)存中清除出去

  之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒有被引用時(shí)對這個(gè)對象調(diào)用的。它是

  在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行

  其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個(gè)對象調(diào)用的。

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

  兩個(gè)對象,一個(gè)是"xyz",一個(gè)是指向"xyz"的引用對象s。

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

  Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

  12、Java有沒有g(shù)oto?

  Goto—java中的保留字,現(xiàn)在沒有在java中使用。

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

  sleep()方法是使線程停止一段時(shí)間的方法。在sleep 時(shí)間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。

  這是因?yàn)樵谀莻(gè)時(shí)刻,其它線程可能正在運(yùn)行而且沒有被調(diào)度為放棄執(zhí)行,除非(a)"醒來"的線程具有更

  高的優(yōu)先級 (b)正在運(yùn)行的線程因?yàn)槠渌蚨枞?/p>

  wait()是線程交互時(shí),如果線程對一個(gè)同步對象x 發(fā)出一個(gè)wait()調(diào)用,該線程會(huì)暫停執(zhí)行,被調(diào)對

  象進(jìn)入等待狀態(tài),直到被喚醒或等待時(shí)間到。

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

  在java里面數(shù)組沒有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。String有有l(wèi)ength()這個(gè)方法。在c#數(shù)組和string只有l(wèi)ength屬性,沒有方法.

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

  1 Error表示系統(tǒng)級的錯(cuò)誤和程序不必處理的異常,

  Exception表示需要捕捉或者需要程序進(jìn)行處理的異常。

  2 error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況。

  exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。

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

  List,Set是 ,Map不是

  16、是否可以繼承String類?

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

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

  不能重寫 Overriding,但可以被重載Overloading。

  18、 try {}里有一個(gè)return語句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被

  執(zhí)行,在return前還是后?

  會(huì)執(zhí)行,在return前執(zhí)行。

  19、用最有效率的方法算出2乘以8等於幾?

  2 << 3

  20、作用域public,private,protected,以及不寫時(shí)的區(qū)別

  區(qū)別如下:

  作用域當(dāng)前類同一package 子孫類 其他package

  public √ √ √ √

  protected √ √ √ ×

  friendly √ √ × ×

  private √ × × ×

  不寫時(shí)默認(rèn)為friendly

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

  聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行

  為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實(shí)例。然而可以

  創(chuàng)建一個(gè)變量,其類型是一個(gè)抽象類,并讓它指向具體子類的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)

  方法。Abstract 類的子類為它們父類中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類為。取而代之,

  在子類中實(shí)現(xiàn)該方法。知道其行為的其它類可以在類中實(shí)現(xiàn)這些方法。

  接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實(shí)現(xiàn)這樣

  的接口而獲得。接口中的所有方法都是抽象的,沒有一個(gè)有程序體。接口只可以定義static final成員變

  量。接口的實(shí)現(xiàn)與子類相似,除了該實(shí)現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實(shí)現(xiàn)特殊接口時(shí),它定義(

  即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法

  。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口

  類型或從接口類型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來決定某對象的類是否實(shí)現(xiàn)了接口

  22、ArrayList和Vector的區(qū)別,HashMap和Hashtable的區(qū)別

  答:就ArrayList與Vector主要從二方面來說.

  一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的

  二.數(shù)據(jù)增長:當(dāng)需要增長時(shí),Vector默認(rèn)增長為原來一培,而ArrayList卻是原來的一半

  就HashMap與HashTable主要從三方面來說。

  一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)

  現(xiàn)

  二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步

  的

  三.值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value

  23、 char型變量中能不能存貯一個(gè)中文漢字?為什么?

  是能夠定義成為一個(gè)中文的,因?yàn)閖ava中以unicode編碼,一個(gè)char占16個(gè)字節(jié),所以放一個(gè)中文是沒問題的

  24、 float型float f=3.4是否正確?

  答:不正確。精度不準(zhǔn)確,應(yīng)該用強(qiáng)制類型轉(zhuǎn)換,如下所示:float f=(float)3.4

  STRING與STRINGBUFFER的區(qū)別。

  答:STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字符串中的內(nèi)容經(jīng)常進(jìn)行操

  作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法.

  25、 說出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性

  ArrayList和Vector都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插

  入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)

  快而插入數(shù)據(jù)慢, Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而

  LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記

  錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。

  繼承時(shí)候類的執(zhí)行順序問題,以下代碼顯示什么結(jié)果。

  父類:public class FatherClass {

  public FatherClass() {

  System.out.println("FatherClass Create"); }

  }

  子類: import FatherClass;

  public class ChildClass extends FatherClass {

  public ChildClass() {

  System.out.println("ChildClass Create"); }

  public static void main(String[] args) {

  FatherClass fc = new FatherClass();

  ChildClass cc = new ChildClass(); }

  } //執(zhí)行java ChildClass

【J2EE經(jīng)典面試試題及答案】相關(guān)文章:

J2EE經(jīng)典面試題及答案08-08

J2EE面試題及答案「精選」09-20

2016年J2EE面試題及答案「精選」06-04

關(guān)于J2EE MVC方面的面試題及答案07-08

J2EE筆試題目及答案10-23

2016年J2EE認(rèn)證試題(附答案)08-16

J2EE框架面試題庫11-03

2016年J2EE認(rèn)證測試題及答案09-27

微軟面試題及答案06-07

java面試題及答案11-01