1. 程式人生 > 其它 >java常見的面試題

java常見的面試題

第一章 Java基礎知識

1、如何在main()方法之前輸出“hello world”?

答:在java語言中,由於靜態程式碼塊在類載入時就會被呼叫,故可以利用靜態程式碼塊實現該功能。

//在main()方法之前輸出Hello world ,靜態程式碼不論順序在哪裡都在main()方法執行之前執行,故以下兩種方法的結果時一樣的;
public class Test01 {
    //靜態程式碼塊在main()方法之前
    static {
        System.out.println("hello world1");
    }
    public static void main(String[] args) {
        System.out.println(
"hello world2"); } } public class Test02 { //靜態程式碼塊在main()方法後 public static void main(String[] args) { System.out.println("hello world2"); } static { System.out.println("hello world1"); } }

2、Java中的作用域:

作用域對比
作用域和可見性 當前類 同一個包 子類 其他包
public
protected
private
default

3、一個Java檔案是否可以定義多個類?

答:一個java檔案可以定義多個類,但是隻有一個類被public修飾,而且這個類與檔名相同,若這個檔案中沒有public類,則檔名時隨便一個類的名字即可。

4、什麼是建構函式?

答:建構函式是一類特殊的函式,用來在物件例項化時初始物件的成員變數。

特點:1、建構函式的名字與類名相同,且沒有返回值。

2、每個類可以有多個建構函式,若開發人員沒有提供建構函式,系統則會預設建立一個,如是開發人員提供了,系統就不會預設建立一個,如是系統預設建立的建構函式是無參的,且不會執行任何程式碼。

3、建構函式的主要作用是完成物件的初始化,且引數可以是0個,1個或者多個。

4、建構函式時在物件例項化的時候就自動呼叫了,且執行一次。

5、淺複製和深複製有什麼作用?

答:淺複製::對基本資料型別進行值傳遞,對引用資料型別進行引用傳遞般的拷貝,此為淺複製。

深複製:對基本資料型別進行值傳遞,對引用資料型別,建立一個新的物件,並複製其內容,此為深複製。

6、面向物件的特徵(抽象、封裝、繼承、多型)

答:1、封裝:將客觀事物抽象成類,每個類對自身的資料和方法實行保護。類可以把自己的資料和方法只讓可信的類或物件操作,對 不可信的進行資訊隱藏。

2、繼承:繼承是一種層次模型,新類(子類)會繼承基類(父類)的方法和變數,並且子類還可以修改或增加新的方法,更容易滿足特殊的需求。

3、多型:是指允許不同類的物件,對同一個訊息做出相應,可以解決應用程式函式同名的問題。