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的方法稱為抽象的方法
抽象的類隻能被繼承,不能被執行個體化
抽象的類中,方法是抽象的,不寫方法體
抽象的方法必須定義在抽象類中
抽象類中的方法不一定都是抽象的方法(比如set get 方法)
抽象類的子類必須重寫父類的抽象方法,除非子類也是抽象類
如果子類也是抽象類,可以不去實作父類的抽象方法
final:
用final修飾的方法不能被子類重寫
用final修飾的屬性可以被繼承,不能被修改,稱為常量屬性
用final修飾的類不能被繼承,稱為常量類
不能被繼承的類:
String StringBuffer Scanner
static(用static修飾的方法和屬性是類的屬性和方法):
靜态方法隻能通路靜态資料成員;
在static方法中不能調用對象的屬性和方法(因為對象的屬性和方法在直接調用時還沒有初始化,但static修飾的屬性和方法不需要初始化)
對象的方法可以調用static修飾的屬性和方法
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 類型時, &表示按位與操作,