筆試錯題記錄3
阿新 • • 發佈:2018-12-11
####選擇題 1.servlet生命週期
- init() 方法進行初始化。只調用一次。後續每次使用者請求時不再呼叫。像Applet 的init()一樣。
- service()方法執行實際任務的方法,用來處理客戶端的請求,並把格式化的響應寫回給客戶端。每次伺服器接受一個servlet請求,伺服器會產生一個新的執行緒,並呼叫服務。
- **destroy()**方法終止結束。最後servlet是由JVM垃圾回收器進行垃圾回收。
2.HTTP狀態碼
- 200 請求成功
- 301 所請求的頁面已經轉移個新的URL
- 302 所請求的頁面臨時轉移到一個新的URL
- 403 禁止訪問所請求的頁面
- 404 伺服器無法找到所請求的頁面
- 504 閘道器超時
3.HashMap 和 TreeMap 和 LinkedHashMap
- HashMap 根據鍵的HashCode值儲存資料,具有很快的訪問速度。遍歷時,取得資料的順序是完全隨機的。不支援執行緒同步。如果需要同步,使用Collection的synchronizedMap使HashMap具有同步功能。遍歷速度和容量有關。
- LinkedHashMap儲存記錄的插入順序,在用iterator遍歷LinkedHashMap時,先得到的記錄肯定是先插入的。遍歷時會比HashMap慢。LinkedHashMap 遍歷速度只和實際資料有關,和容量無關。
- TreeMap 實現了SortMap介面,能夠把它儲存的記錄根據鍵排序。預設是按照鍵值的升序排序。
4.Applet類的直接父類是Panel類。
5.swing 和 awt 的區別於聯絡
- awt(Abstract Window Toolkit):抽象視窗工具包,早期編寫圖形介面應用程式的包。awt構建圖形使用者介面時,實際上是利用作業系統的圖形庫。不同作業系統的圖形庫可能不同。awt是基於本地的C和C++程式,所以其執行時間夠快。
- swing:為了解決awt的存在的問題而新開發的圖形介面包。由於Swing是純粹用Java程式碼來實現的,因此Swing的控制元件在各平臺通用。Swing是基於Java程式碼的,所以其執行速度較慢。
6.static修飾符 靜態程式碼塊。靜態程式碼塊在類載入到JVM時執行,只被執行一次,也就是說靜態程式碼塊不需要例項類就能夠被呼叫,並且程式碼是主動執行的。一般情況下,有些程式碼需要在專案啟動的時候執行,就需要使用靜態程式碼塊。static塊可以放在類的任何地方,類中可以有多個static塊
程式碼的執行順序:主調類的靜態程式碼塊 -> 物件父類的靜態程式碼塊 -> 物件的靜態程式碼塊 -> 物件父類的非靜態程式碼塊 -> 物件父類的建構函式 -> 物件的非靜態程式碼塊 -> 物件的建構函式。
class Book{
public Book(String msg) {
System.out.println(msg);
}
}
public class Person {
Book book1 = new Book("book1成員變數初始化");
static Book book2;
static {
book2 = new Book("static成員book2成員變數初始化");
book4 = new Book("static成員book4成員變數初始化");
}
public Person(String msg) {
System.out.println(msg);
}
Book book3 = new Book("book3成員變數初始化");
static Book book4;
public static void funStatic() {
System.out.println("static修飾的funStatic方法");
}
public static void main(String[] args) {
Person.funStatic();
System.out.println("****************");
Person p1 = new Person("p1初始化");
}
}
/*
輸出結果:
static成員book2成員變數初始化
static成員book4成員變數初始化
static修飾的funStatic方法
***************
book1成員變數初始化
book3成員變數初始化
p1初始化
*/