1. 程式人生 > >java面試題100道(81-100)

java面試題100道(81-100)

81.GC是什麼?為什麼要有GC?

答:GC是jvm中的垃圾回收機制。有了它可以及時回收記憶體資源,避免資源浪費

82.垃圾回收的優點和原理。並考慮2種回收機制?

答:優點是及時自動清理。

Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程式設計師最頭疼的記憶體管理的問題迎刃而解,它使得Java程式設計師在編寫程式的時候不再需要考慮記憶體管理。由於有個垃圾回收機制,Java中的物件不再有"作用域"的概念,只有物件的引用才有"作用域"。垃圾回收可以有效的防止記憶體洩露,有效的使用可以使用的記憶體。垃圾回收器通常是作為一個單獨的低級別的執行緒執行,不可預知的情況下對記憶體堆中已經死亡的或者長時間沒有使用的物件進行清除和回收,程式設計師不能實時的呼叫垃圾回收器對某個物件或所有物件進行垃圾回收。回收機制有分代複製垃圾回收和標記垃圾回收,增量垃圾回收。


84.什麼時候用assert?

答:assertion(斷言)在軟體開發中是一種常用的除錯方式,很多開發語言中都支援這種機制。在實現中,assertion就是在程式中的一條語句,它對一個boolean表示式進行檢查,一個正確程式必須保證這個boolean表示式的值為true;如果該值為false,說明程式已經處於不正確的狀態下,系統將給出警告或退出。一般來說,assertion用於保證程式最基本、關鍵的正確性。assertion檢查通常在開發和測試時開啟。為了提高效能,在軟體釋出後,assertion檢查通常是關閉的。

85.java中會存在記憶體洩漏麼?

答:

筆者對JAVA還沒有達到精通的地步,剛開始看到這個題目,自己的確也是認為應該不會有記憶體洩露問題吧,因為大家都知道JAVA有著自己的優點---垃圾回收器的機制,這個開發人員帶來了很大的方便,不用我們程式設計人員去控制記憶體回收等問題,有效的解決了記憶體洩露的問題,不至於導致系統因記憶體問題崩潰。

經過多方查詢筆者有了新的見解:

這就有必要去說明一下GC的工作機制了,為了精確的回收記憶體,釋放不用的物件,GC要實時的監控著每個物件的執行狀態--引用 被引用等,當發現一個物件不被任何引用的時候,GC會在適當的時機去回收它所佔的記憶體,達到記憶體管理,但是仍然存在一種記憶體洩露問題,當一個物件在邏輯上已經沒用了,但是在語法上還被某個變數所引用,那麼這個物件存在著引用,GC是不會回收它的,這就導致了記憶體洩露問題。所以題目的答案就已經出來了。。。

86.能不能自己寫個類,也叫String?

答:可以自己寫。但是在呼叫系統的String時,前面需要加java.lang.String。

87.&和&&的區別?

答:&兩邊都要計算。&&當左邊為false時右邊表示式不參與計算

88.給我一個你最長見到的runtime exception?

答:nullpointerexception。

89.解釋下面的關於J2EE的名詞:JNDI,JMS,JTA,JAF,RMI?

答:JNDI:(Java Naming & Directory Interface)JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程式在其上面留下自己的索引,從而滿足快速查詢和定位分散式應用程式的功能。 

JMS:(Java Message Service)JAVA訊息服務。主要實現各個應用程式之間的通訊。包括點對點和廣播。 

JTA:(Java Transaction API)JAVA事務服務。提供各種分散式事務服務。應用程式只需呼叫其提供的介面即可。 

JAF:(Java Action FrameWork)JAVA安全認證框架。提供一些安全控制方面的框架。讓開發者通過各種部署和自定義實現自己的個性安全控制策略。

RMI/IIOP:(Remote Method Invocation /internet物件請求中介協議)他們主要用於通過遠端呼叫服務。例如,遠端有一臺計算機上執行一個程式,它提供股票分析服務,我們可以在本地計算機上實現對其直接呼叫。當然這是要通過一定的規範才能在異構的系統之間進行通訊。RMI是JAVA特有的。

90.XML的解析方法?

答:XML在不同的語言裡解析方式都是一樣的,只不過實現的語法不同而已。基本的解析方式有兩種,一種叫SAX,另一種叫DOM。SAX是基於事件流的解析,DOM是基於XML文件樹結構的解析。

91.什麼是類於物件?

答:類是將一類事物共有的屬性抽取出來,在將一些操作方法封裝在一起構成的一個大類。物件使用它來例項化的一個具體個體。

92.什麼是屬性與方法?

答:屬性是物件的各類特徵值。而方法則可以進行不同的操作,對資料進行處理等。

93.什麼是OOP?什麼是類?請對比類和物件例項之間的關係?

答:oop-object orient programming ,面向物件程式設計。類是將一類事物共有的屬性抽取出來,在將一些操作方法封裝在一起構成的一個大類。物件使用它來例項化的一個具體個體。

94.String是最基本的資料型別麼?

答:不是。基本資料型別:整型:byte,short,int,long,浮點型:float,double,布林型:boolean,字元型:char

97.java中有幾種方法可以實現一個執行緒?用什麼關鍵字修飾同步方法?

答:兩種:繼承Thread類,實現runnable介面。修飾的關鍵字用synchronized。