天天看點

Java開發校招面試考點彙總

1、jsp有哪些内置對象?作用分别是什麼?

答:JSP共有以下9種基本内置元件(可與ASP的6種内部元件相對應):

request 使用者端請求,此請求會包含來自GET/POST請求的參數

response 網頁傳回使用者端的回應

pageContext 網頁的屬性是在這裡管理

session 與請求有關的會話期

application servlet 正在執行的内容

out 用來傳送回應的輸出

config servlet的構架部件

page JSP網頁本身

exception 針對錯誤網頁,未捕捉的例外

2.Servlet的生命周期

1.建立Servlet對象,通過伺服器反射機制建立Servlet對象,第一次請

求時才會建立。(預設)

2,調用Servlet對象的init()方法,初始化Servlet的資訊,init()方法隻會在建立後被調用一次;

3,響應請求,調用service()或者是doGet(),doPost()方法來處理請求,這些方法是運作的在多線程狀态下的。

4,  在長時間沒有被調用或者是伺服器關閉時,會調用destroy()方法來銷毀Servlet對象。

Struts2和springmvc的差別

     1.springmvc入口是一個servlet前端控制器(DispatcherServlet),struts2入口是一filter過濾器(StrutsPrepareAndExecuteFilter).

        2.struts2通過在action類中定義成員變量接收參數,(屬性驅動和模型驅動),它隻能使用多例模式管理action.

 springmvc通過在coontroller方法中定義形參接收參數,springmvc可以使用單例模式管理controller.      

        3.springmvc是基于方法開發的,注解開發中使用requestMapping将url和方法進行 映射,如果根據url找到controller類的方法生成一個handler處理器對象(隻包括一個method).

struts2是基于類開發的,每個請求過來建立一個action執行個體,執行個體對象中有若幹個方法.

開發中建議使用springmvc,springmvc方法更類似service業務方法.

        4.struts2采用值棧存儲請求和相應的資料,通過OGNL存取資料,springmvc通過參數綁定期将request請求内容解析,并給方法形參指派.

        5.struts2和springmvc的速度是相當的,由于struts2的漏洞較多,跟多企業使用springmvc

1.== 比較的是什麼?

對于對象引用類型:“==”比較的是對象的記憶體位址。

public static void main(String[] args){

    String a = new String("aw");

    String b = new String("aw");

    String c= "aa";

    String d= "aa";

    System.out.println(a==b);//false

    System.out.println(c==d);//true

}

2.Java支援的資料類型有哪些?什麼是拆裝箱?

Java中有八種基本資料類型以及引用類型

基本資料類型:

byte(1位元組),short(2位元組),int(4位元組),long(8位元組),char(2位元組),boolean(不确定,取值是true/false),float(4位元組),double(8位元組)        一個位元組8位

引用資料類型:

包括string、數組,集合,字元串,接口以及類等       

自動裝箱/自動拆箱

就是指基本資料類型可以和其對應包裝類之間自動轉換

3. 值傳遞與引用傳遞

值傳遞:方法調用時,實際參數把它的值的副本傳遞給對應的形式參數。特點:此時記憶體中存在兩個相等的基本類型,即實際參數和形式參數,後面方法中的操作都是對形參這個值的修改,不影響實際參數的值。

引用傳遞:方法調用時,實際參數的引用(位址,而不是參數的值)被傳遞給方法中相對應的形式參數,函數接收的是原始值的記憶體位址;特點:在方法執行中,形參和實參内容相同,指向同一塊記憶體位址,方法執行中對引用的操作将會影響到實際對象。 

4.String是基本的資料類型嗎?

String不是基本的資料類型,是final修飾的java類,是引用資料類型。

5.Java中的abstract(抽象的方法和類),final ,不能被繼承的類,static修飾的方法和屬性

用abstract修飾的類稱為抽象類:

  加abstract的方法稱為抽象的方法

  抽象的類隻能被繼承,不能被執行個體化

Java開發校招面試考點彙總

  抽象的類中,方法是抽象的,不寫方法體

Java開發校招面試考點彙總

       抽象的方法必須定義在抽象類中

  抽象類中的方法不一定都是抽象的方法(比如set get 方法)

  抽象類的子類必須重寫父類的抽象方法,除非子類也是抽象類

  如果子類也是抽象類,可以不去實作父類的抽象方法

final:

  用final修飾的方法不能被子類重寫

  用final修飾的屬性可以被繼承,不能被修改,稱為常量屬性

  用final修飾的類不能被繼承,稱為常量類

不能被繼承的類:

  String StringBuffer  Scanner

static(用static修飾的方法和屬性是類的屬性和方法):

       靜态方法隻能通路靜态資料成員; 

  在static方法中不能調用對象的屬性和方法(因為對象的屬性和方法在直接調用時還沒有初始化,但static修飾的屬性和方法不需要初始化)

Java開發校招面試考點彙總

  對象的方法可以調用static修飾的屬性和方法

Java開發校招面試考點彙總

6.

public static void main(String[] args) {

    int i=1;

    System.out.println(i++);   //i=1,i++,i=2

    System.out.println(++i);   //i=3

}

7.我們在 web 應用開發過程中經常遇到輸出某種編碼的字 符, 如 iso8859-1 等, 如何輸出一個某種編碼的字元串?

public String translate (String str) {        

        String tempStr = ""; 

        try {

            tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");

            tempStr = tempStr.trim();

        }catch (Exception e) {

            System.err.println(e.getMessage());

        }

        return tempStr;

        }

8.Java中&和&&的差別

這兩者都是表示邏輯與,隻有當兩邊都是true時,傳回true,隻要有一個false則結果傳回false。 

&&還具有短路的功能,即如果第一個表達式為 false,則不再計算第二個表達式,

&還可以用作位運算符,當&操作符兩邊的表達式不是 boolean 類型時, &表示按位與操作,

上一篇: JDK-面試考點
下一篇: GC-面試考點

繼續閱讀