激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

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

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

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

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

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

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

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

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

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

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

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

  2、請說(shuō)出你所知道的線(xiàn)程同步的方法。

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

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

  InterruptedException異常。

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

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

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

  們競爭。

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

  表示該類(lèi)不能被繼承,是頂級類(lèi)。

  4、 Error與Exception有什么區別?

  Error表示系統級的錯誤和程序不必處理的異常,

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

  5、&和&&的區別。

  &是位運算符。&&是布爾邏輯運算符。

  6、Collection 和 Collections的區別。

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

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

  7、 HashMap和Hashtable的區別。

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

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

  Hashtable 類(lèi)似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。

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

  GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會(huì )自動(dòng)進(jìn)行管理。要請求垃圾收

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

  Runtime.getRuntime().gc()

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

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

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

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

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

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

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

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

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

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

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

  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有沒(méi)有g(shù)oto?

  Goto—java中的保留字,現在沒(méi)有在java中使用。

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

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

  這是因為在那個(gè)時(shí)刻,其它線(xiàn)程可能正在運行而且沒(méi)有被調度為放棄執行,除非(a)"醒來(lái)"的線(xiàn)程具有更

  高的優(yōu)先級 (b)正在運行的線(xiàn)程因為其它原因而阻塞。

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

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

  數組有沒(méi)有length()這個(gè)方法? String有沒(méi)有length()這個(gè)方法?

  在java里面數組沒(méi)有length()這個(gè)方法,有length的屬性。String有有length()這個(gè)方法。在c#數組和string只有length屬性,沒(méi)有方法.

  14、 error和exception有什么區別?

  1 Error表示系統級的錯誤和程序不必處理的異常,

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

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

  exception 表示一種設計或實(shí)現問(wèn)題。也就是說(shuō),它表示如果程序運行正常,從不會(huì )發(fā)生的情況。

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

  List,Set是 ,Map不是

  16、是否可以繼承String類(lèi)?

  String類(lèi)是final類(lèi)故不可以繼承。

  17、 構造器Constructor是否可被override?

  不能重寫(xiě) Overriding,但可以被重載Overloading。

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

  執行,在return前還是后?

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

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

  2 << 3

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

  區別如下:

  作用域當前類(lèi)同一package 子孫類(lèi) 其他package

  public √ √ √ √

  protected √ √ √ ×

  friendly √ √ × ×

  private √ × × ×

  不寫(xiě)時(shí)默認為friendly

  21、 abstract class和interface有什么區別?

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

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

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

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

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

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

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

  量。接口的實(shí)現與子類(lèi)相似,除了該實(shí)現類(lèi)不能從接口定義中繼承行為。當類(lèi)實(shí)現特殊接口時(shí),它定義(

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

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

  類(lèi)型或從接口類(lèi)型轉換,instanceof 運算符可以用來(lái)決定某對象的類(lèi)是否實(shí)現了接口

  22、ArrayList和Vector的區別,HashMap和Hashtable的區別

  答:就ArrayList與Vector主要從二方面來(lái)說(shuō).

  一.同步性:Vector是線(xiàn)程安全的,也就是說(shuō)是同步的,而ArrayList是線(xiàn)程序不安全的,不是同步的

  二.數據增長(cháng):當需要增長(cháng)時(shí),Vector默認增長(cháng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半

  就HashMap與HashTable主要從三方面來(lái)說(shuō)。

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

  現

  二.同步性:Hashtable是線(xiàn)程安全的,也就是說(shuō)是同步的,而HashMap是線(xiàn)程序不安全的,不是同步

  的

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

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

  是能夠定義成為一個(gè)中文的,因為java中以unicode編碼,一個(gè)char占16個(gè)字節,所以放一個(gè)中文是沒(méi)問(wèn)題的

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

  答:不正確。精度不準確,應該用強制類(lèi)型轉換,如下所示:float f=(float)3.4

  STRING與STRINGBUFFER的區別。

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

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

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

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

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

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

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

  錄本項的前后項即可,所以插入速度較快。

  繼承時(shí)候類(lèi)的執行順序問(wèn)題,以下代碼顯示什么結果。

  父類(lèi):public class FatherClass {

  public FatherClass() {

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

  }

  子類(lèi): 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(); }

  } //執行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認證試題(附答案)08-16

J2EE框架面試題庫11-03

2016年J2EE認證測試題及答案09-27

微軟面試題及答案06-07

java面試題及答案11-01

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频