還記得程式設計師的我們面試時,背的Java葵花寶典麼?
Q51如何限制一個類不被繼承?
Ans:使用關鍵字Final。
在下面的例子中,Stone類就不能被繼承了。
Q52訪問說明符的訪問範圍是什麼?
Ans:
Q53棧和佇列之間有什麼區別?
Ans:棧和佇列之間的主要區別在於,棧基於“後進先出(LIFO)”原則,而佇列基於FIFO(先進先出)原則。
Q54在Java中,我們如何禁止序列化變數?
Ans:想要某些變數不被序列化,那麼可以在宣告時使用關鍵字transient。例如,下面的變數trans_var是一個臨時變數,不能被序列化:
小編也是一名從事了6年java開發的全棧工程師,花了近一個月整理了一份較適合18年學習的java乾貨,送給每一位學習java小夥伴,加java學習qq群領取:818464711
Q55我們如何使用原始資料型別作為物件?
Ans:Java提倡“一切皆為物件”,引用資料型別可以例項化為物件,基本資料型別卻無法變為物件,針對這一不足,JAVA中設定了包裝類,例如,Integer是原始資料型別int的包裝類。
Q56編譯時會遇到哪些型別的異常?
Ans:程式編譯時可以捕獲被檢查的異常,為了成功編譯程式碼,異常會通過try...catch來處理。
Q57請描述一下執行緒的不同狀態。
Ans:Java中的執行緒往往是處於下面的某一種狀態
NEW:通過New關鍵字建立了Thread類(或其子類)的物件
RUNNABLE:這種情況指的是Thread類的物件呼叫了start()方法,執行緒處於就緒狀態。
RUNNING:執行緒獲得了CPU,處於執行狀態。
DEAD:處於RUNNING狀態的執行緒,在執行完run方法之後,就變成了DEAD狀態了。
BLOCKED:這種狀態指的是處於RUNNING狀態的執行緒,出於某種原因,比如呼叫了sleep方法、等待使用者輸入等而讓出當前的CPU給其他的執行緒。
Q58定義了類的顯式建構函式之後,還可以使用預設建構函式嗎?
Ans:如果沒有定義顯式建構函式,那麼Java將提供一個預設的無引數建構函式,但是如果定義了顯式建構函式之後,就不能再呼叫預設建構函式。
Q59可以有兩個方法,它們方法名和引數都相同,但返回值型別不同?
Ans:相同的方法指的是方法名、引數以及返回型別都相同,因此返回型別不同的兩個方法是可以並存的。
Q60以下程式碼的輸出是什麼?
Ans:輸出為4
Q61在沒有執行main()的情況下,成功編譯了一個Java類,這一說法正確嗎?
Ans:正確,雖然Java編譯器規定程式的入口點為staticmain,但是沒有main()還是能夠編譯,只是不能執行。
Q62我們可以在靜態方法中呼叫非靜態方法?
Ans:非靜態方法歸類的物件所有,且具有物件的級別範圍,所以如果想要在靜態方法中呼叫非靜態方法,首先要建立類的物件,然後使用物件引用,呼叫這些方法。
Q63為了執行Java程式,必須設定兩個環境變數是什麼?
Ans:PATH變數和CLASSPATH變數。
Q64 Java中變數沒有初始化可以使用嗎?
Ans:Java不會給變數分配預設值,因此變數沒有初始化的情況下,程式會編譯失敗並給出錯誤提示。
Q65 Java中的類可以繼承多個類嗎?
Ans:Java不支援多重繼承。
Q66 Java中,建構函式可以與類名不同嗎?
Ans:不可以,Java的建構函式必須與類名相同,如果不同,它將被視作普通函式。
Q67 Round(3.7)和Ceil(3.7)的輸出分別是什麼?
Ans:它們的輸出都是4。Round()遵循四捨五入,Ceil()遵循向上舍入。
Q68 Java中可以使用goto來轉到特定行嗎?
Ans:不可以,Java中沒有goto關鍵字。
Q69已經死亡的執行緒可以再次啟動嗎?
Ans:不可以。
Q70以下類的宣告是否正確?
Ans:不正確,抽象類不能被宣告為Final。
Q71每個機器都需要JDK來執行Java程式?
Ans:JDK是Java的開發工具包,不是必需的,JRE才是必需的。
Q72 Equals()和==有什麼區別?
Ans:Java中,==操作比較的是兩個變數的值是否相等,對於引用型變數表示的是兩個變數在堆中儲存的地址是否相同,即棧中的內容是否相同。equals操作表示的兩個變數是否是對同一個物件的引用,即堆中的內容是否相同
下例中,equals()返回true,而==操作符則返回false:
Q73 Java類中定義方法,可否使用其他語言程式碼實現,如C語言?
Ans:可以,在基於原生開發的情況下,我們可以在Java類中定義公共靜態方法,但是不執行,然後用另外一種語言(如C)實現。
Q74如何在Java中定義解構函式?
Ans:Java類中沒必要定義解構函式,它有自己的垃圾回收機制,當不再引用物件時,會自動執行。
Q75 Java中變數可以既是區域性變數又是靜態變數嗎?
Ans:不能,將區域性變數定義為靜態變數會導致編譯錯誤。
Q76 Interface中可以有靜態方法嗎?
Ans:Interface中的靜態方法是沒有意義的,靜態方法在類中不能被覆蓋,而Interface中的方法預設都是抽象的,所以只能在實現Interface的類中實現。
Q77在實現介面的類中,我們可以更改介面中定義的變數的值嗎?
Ans:不能,介面中定義的變數大多都預設是public、static和final等不可更改的常量。
Q78 Java中的垃圾回收機制能夠確保程式永遠不會超出記憶體?
Ans:即使Java提供自動垃圾回收,也不能確保程式不會超出記憶體,因為與垃圾回收相比,Java物件的建立速度更快。
Q79 main()能否有除void之外的返回型別?
Ans:不可以,main()必須返回值為void,程式才能成功執行。
Q80垃圾回收之後,還能否重新觸發並使用該物件?
Ans:不能,一旦物件被回收之後,就不再存在於堆疊上,也就不能再次訪問和引用了。
Q81在Java執行緒程式設計中,哪個方法是所有執行緒必須實現的?
Ans:Run()是一個Runnable介面的方法,必須由所有執行緒實現。
Q82如何在程式中控制資料庫連線,且每次只有一個執行緒可以進行資料庫連線?
Ans:應用同步的概念來實現,將資料庫相關程式碼hs synchronized關鍵字的方法中,以便一次只有一個執行緒可以訪問它。
Q83程式設計師手動丟擲異常怎麼辦?
Ans:為了處理手動丟擲的異常,我們可以使用throw關鍵字,並在catch中捕獲和處理異常。
Q84如何實現一個類不允許其他類(甚至派生類)建立其物件?
Ans:將該類的建構函式宣告為private,那麼它就不會被其他類訪問。
Q85物件如何儲存在Java中?
Ans:每個物件在建立時都會從堆疊中獲取記憶體空間,被垃圾回收器銷燬之後,其空間將被釋放重新分配給其它物件。
Q86如何確定堆疊上物件的實際大小?
Ans:Java中,沒辦法確定物件的確切大小。
Q87以下哪個類將分配更多的記憶體?
A類:三種方法,四個變數,無物件
B類:五個方法,三個變數,無物件
Ans:在建立物件之前,不會分配記憶體,所以這兩個類都沒有分配記憶體。
Q88如果程式中沒有處理異常,會發生什麼?
Ans:如果沒有異常處理,那麼程式將中止,且不會執行異常丟擲之後的語句。
Q89如果定義了一個類定義了多個建構函式,那麼是否可以在一個建構函式中呼叫另一個建構函式?
Ans:如果一個類有多個建構函式,那麼可以使用this()在一個建構函式中呼叫另一個建構函式。
Q90什麼是匿名類?
Ans:匿名類是不能有名字的類,它們不能被引用,只能在建立時用New語句來宣告它們。
下例中,我們定義了一個匿名類:
Q91陣列宣告之後是否還可以改變其大小?
Ans:陣列是靜態的,一旦指定了大小,就不能改變。
Q92應用程式中有多個類,但只有一個main()可以嗎?
Ans:可以,main()方法是Java應用程式的入口方法,程式碼總是從特定類的main方法開始。
Q93如果我想要保留物件的資料以供以後使用,最好的做法是什麼?
Ans:使用序列化。
Q94什麼是區域性類?
Ans:如果我們在Java的特定塊中定義一個新類,那麼這個類就被稱為區域性類,它在區域性範圍內可用,在其定義的塊之外不可用。
Q95 String和StringBuffer都表示String物件,這兩個物件之間可以互相比較嗎?
Ans:不可以。
Q96 Java提供了哪些API用於集合類的操作?
Ans:Java提供了Collection API,可應用於一組物件的,Collection API支援的重要類包括
ArrayList,HashMap,TreeSet和TreeMap。
Q97 Java的型別轉換可以將所有其他類轉換為布林型別嗎?
Ans:不可以,其它原始型別不能轉換為布林型別,布林型別也不能轉換為其它原始資料型別。
Q98方法的重寫允許返回型別不同嗎?
Ans:方法的重寫要求子類的方法的名稱及引數必須和所覆蓋的方法相同,返回型別可以不同但必須是所覆蓋方法的子類。
Q99所有異常類的基類是什麼?
Ans:Java.Lang.throwable。
Q100建構函式在繼承中的呼叫順序是什麼?
Ans:在繼承的情況下,建立派生類的新物件時,首先呼叫父類的建構函式,然後呼叫派生類的建構函式。
相關文章
- 【JAVA面試資料】程式設計師面試之葵花寶典2Java面試程式設計師
- 【JAVA面試資料】程式設計師面試之葵花寶典1Java面試程式設計師
- Java初中級程式設計師面試題寶典Java程式設計師面試題
- 好程式設計師Java教程之Java面試寶典Java IO篇程式設計師Java面試
- 好程式設計師java分享Java面試寶典:類的載入過程程式設計師Java面試
- 新書出版 |《Oracle程式設計師面試筆試寶典》新書Oracle程式設計師面試筆試
- Java程式設計師面試時應注意的三個經典問題!Java程式設計師面試
- 新書出版 |《資料庫程式設計師面試筆試寶典》新書資料庫程式設計師面試筆試
- JAVA葵花寶典(基礎版)Java
- 【程式設計師面試金典】20180801程式設計師面試
- 【程式設計師面試金典】洪水程式設計師面試
- @程式設計師,你還記得當年高考時的樣子嗎?程式設計師
- Java 面試寶典Java面試
- Spring葵花寶典Spring
- IT技術跳槽的葵花寶典
- 智力題(程式設計師面試經典)程式設計師面試
- 【程式設計師面試寶典】確定兩串亂序同構程式設計師面試
- 淘寶面試回來,想對程式設計師們談談面試程式設計師
- 好程式設計師Java教程分享經典Java main方法面試題程式設計師JavaAI面試題
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試
- Java面試寶典-2017Java面試
- 程式設計師面試金典Chapter1程式設計師面試APT
- 程式設計師們,覺得自己最興奮是什麼時候?程式設計師
- 前端自動化測試之葵花寶典前端
- Node.js 葵花寶典Node.js
- 高併發葵花寶典
- 程式設計師寶典:常用的免費好物API程式設計師API
- 好程式設計師大資料培訓分享大資料面試寶典三程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典四程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典六程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典一程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典二程式設計師大資料面試
- 好程式設計師Python培訓分享Python面試寶典之基礎篇-03程式設計師Python面試
- 2024年程式設計師金九銀十面試寶典(持續更新中................)程式設計師面試
- Java程式設計師修煉之路(一)我們為什麼選擇JavaJava程式設計師
- 程式設計師50+Java面試題程式設計師Java面試題
- Java程式設計師面試題及解答Java程式設計師面試題
- JAVA程式設計師面試題庫分享Java程式設計師面試題