標籤:執行個體 idt this key 封裝 tco sql語句 單線程 一個
1.你最常上的兩個技術站和最常使用的兩個app分別進什嗎?主要解決你什麼需求?
2.請簡述http協議中get請求和post請求的區別.
操作方式 |
資料位元置 |
明文密文 |
資料安全 |
長度限制 |
應用情境 |
GET |
HTTP包頭 |
明文 |
不安全 |
長度較小 |
查詢資料 |
POST |
HTTP本文 |
可明可密 |
安全 |
支援較大資料轉送 |
修改資料 |
3.請簡述session和cookie的區別.
- cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
- cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session。
- session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用COOKIE。
- 單個cookie儲存的資料不能超過4K,很多瀏覽器都限制一個網站最多儲存20個cookie。
- 所以個人建議: 將登陸資訊等重要訊息存放為SESSION,其他資訊如果需要保留,可以放在COOKIE中
4.簡述Servlet與JSP的關係,
JSP就是servlet jsp繼承了servlet
5.JSP內建對象有哪些,各自起到的作用
request對象:
用戶端的請求資訊被封裝在request對象中,通過它才能瞭解到客戶的需求,然後做出響應。它是HttpServletRequest類的執行個體
response對象:
包含了響應客戶請求的有關資訊,但在JSP中很少直接用到它。它是HttpServletResponse類的執行個體。
session對象:
指的是用戶端與伺服器的一次會話,從用戶端連到伺服器的一個WebApplication開始,直到用戶端與伺服器中斷連線為止。它是HttpSession類的執行個體
out對象:
是JspWriter類的執行個體,是向用戶端輸出內容常用的對象
page對象:
指向當前JSP頁面本身,有點象類中的this指標,它是java.lang.Object類的執行個體
application對象:
application對象實現了使用者間資料的共用,可存放全域變數。它開始於伺服器的啟動,直到伺服器的關閉,在此期間,此對象將一直存在;這樣在使用者的前後串連或不同使用者之間的串連中,
可以對此對象的同一屬性進行操作;
在任何地方對此對象屬性的操作,都將影響到其他使用者對此的訪問。伺服器的啟動和關閉決定了application對象的生命。它是ServletContext類的執行個體
6.簡述你所理解的JAVA封裝、繼承、多態。
7.寫出2個常用的設計模式(虛擬碼),並簡述應用情境。
8.HashMap和HashTable區別。
HashMap讀寫速度快,但不安全
HashMap幾乎可以等價於Hashtable,除了HashMap是非synchronized的,並可以接受null(HashMap可以接受為null的索引值(key)和值(value),而Hashtable則不行)。 HashMap是非synchronized,而Hashtable是synchronized,這意味著Hashtable是安全執行緒的,多個線程可以共用一個Hashtable;而如果沒有正確的同步的話,多個線程是不能共用HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的擴充性更好。 另一個區別是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以當有其它線程改變了HashMap的結構(增加或者移除元素),將會拋出ConcurrentModificationException,但迭代器本身的remove()方法移除元素則不會拋出ConcurrentModificationException異常。但這並不是一個一定發生的行為,要看JVM。這條同樣也是Enumeration和Iterator的區別。 由於Hashtable是安全執行緒的也是synchronized,所以在單線程環境下它比HashMap要慢。如果你不需要同步,只需要單一線程,那麼使用HashMap效能要好過Hashtable。 HashMap不能保證隨著時間的推移Map中的元素次序是不變的。
9.HashSet和TreeSet的區別。
10.ArrayList和LinkedList的區別。
- 1.ArrayList是實現了基於動態數組的資料結構,LinkedList基於鏈表的資料結構。
- 2.對於隨機訪問get和set,ArrayList覺得優於LinkedList,因為LinkedList要移動指標。
- 3.對於新增和刪除操作add和remove,LinedList比較佔優勢,因為ArrayList要移動資料
11.==與equals的區別。
12.簡述泛型、反射、註解應用情境及各自解決了哪些問題。
13.Thread類的方法有哪些,如何多種方式實現線程同步。
14進程與線程的區別,JAVA中有哪些方式可以建立線程。
15.現有一學生表結構(student-id,class-id,name),請寫出統計每班有多少學生的SQL語句。
16.假如你正在開發一個系統的登入程式,請簡述你是如何?記住使用者名稱和密碼這個操作的,並如何??
17.在視圖層不支援儲存cookie,服務端不支援session的情境下如何保持使用者登陸狀態。
18.設計一套CMS系統或者部落格系統的表結構(畫出大概的UML圖即可)。
Java基礎面試題