面試題: 難點 !=!=未看
1、http和https區別
https協議需要到ca申請證書,一般免費證書很少,需要交費。
http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議
http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,後者是443。
http的連接很簡單,是無狀態的 ,當然現在http也可以 使用php+JS密碼加密實現http安全訪問。
HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議 要比http協議安全。
2、get和post區別
a、get表示獲取/查詢數據,地址欄會出現需要提交的字段名如:http://www.csdn.com/index.php?name=cxq&time=12334345&pw=wew4554565454,容易被緩存到客戶端,因此不太安全;而POST表示從服務器獲取/更新數據,地址欄會出現一大串的加密字符:http://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&tn=baidu&wd=post%E5%92%8Cget%E7%9A%84%E5%8C%BA%E5%88%AB&rsv_enter,因此相對比較安全。
b、get傳輸數據大小為2KB,post可以80K或者100KB。
c、Get 方式需要使用 Request.QueryString 來取得變量的值;而 Post 方式通過 Request.Form 來訪問提交的內容
d、Get是向服務器發索取數據的一種請求,而Post是向服務器提交數據的一種請求,在FORM(表單)中,Method默認為"GET",實質上,GET和POST只是發送機制不同,並不是一個取一個發!更多資料請看:淺談HTTP中GET和POST的區別
3、XML解析方式
DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結構所造成的,這種結構占用的內存較多,而且DOM必須在解析文件之前把整個文檔裝入內存,適合對XML的隨機訪問 SAX:不現於DOM,SAX是事件驅動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結束,或者標簽開頭與標簽結束時,它會觸發一個事件,用戶通過在其回調事件中寫入處理代碼。
詳細請看java解析XML的幾種方式
4、Html訪問全過程?
這個問題涉及面廣泛,考慮到網絡知識,緩存,DNS,路由,HTTP請求,渲染Html文檔,生成文檔樹,能夠解釋css,還要有個javascript引擎,這裏有一篇非常詳細精彩的文章值得閱讀:從輸入網址到顯示頁面全過程
5、數據庫事務隔離機制及特點是什麽?
- 隔離性:指的是在並發環境中,當不同的事務同時操縱相同的數據時,每個事務都有各自的完整數據空間。
數據庫事務的隔離級別有4個,由低到高依次為Read uncommitted、Read committed、Repeatable read、Serializable,這四個級別可以逐個解決臟讀、不可重復讀、幻讀這幾類問題。
√: 可能出現 ×: 不會出現
臟讀 | 不可重復讀 | 幻讀 | |
Read uncommitted | √ | √ | √ |
Read committed | × | √ | √ |
Repeatable read | × | × | √ |
Serializable | × | × | × |
具體請參考:數據庫事務隔離級別
5、jvm布局
1)程序計數器(Program Couter Register)
程序計數器是當前線程所執行的字節碼的行號指示器。
2)Java虛擬機棧(JVM Stack)
與程序計數器一樣,JVM棧也是線程私有的,它的生命周期與線程相同。虛擬機棧描述的是Java方法執行的內存模型:每個方法被執行的時候都會同時創建一個幀(Stack Frame)用於存儲局部變量表、操作數棧、動態鏈接、方法出口等信息。
3)Java堆(Java Heap)對於大多數應用來說,Java堆是JVM所管理的內存中最大的一塊。Java Heap是被所有線程共享的一塊內存區域,在JVM啟動時創建。此內存區域的唯一目的就是存放對象實例,幾乎所有的對象實例以及數組都在這裏分配內存。
4)方法區 Method Area
方法區與Heap一樣,是各個線程共享的內存區域,他用於存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯後的代碼等數據。
5)本地方法棧(Native Stack)
本地方法棧和JVM棧發揮的作用是非常相似的,其區別不過是虛擬機棧為虛擬機執行Java方法(字節碼)服務,而本地房發展則是為虛擬機使用到的Native方法服務。
7、數據庫連接池的原理
連接池用於創建和管理數據庫連接的緩沖池技術,緩沖池中的連接可以被任何需要他們的線程使用。當一個線程需要用JDBC對一個數據庫操作時,將從池中請求一個連接。當這個連接使用完畢後,將返回到連接池中,等待為其他的線程服務。
數據庫連接池的基本思想就是為數據庫連接 建立一個“緩沖池”。預先在緩沖池中放入一定數量的連接,當需要建立數據庫連接時,只需從“緩沖池”中取出一個,使用完畢之後再放回去。我們可以通過設定 連接池最大連接數來防止系統無盡的與數據庫連接。更為重要的是我們可以通過連接池的管理機制監視數據庫的連接的數量?使用情況,為系統開發?測試及性能調 整提供依據。
有關 數據連接池其他操作:數據持連接分配、釋放模型
面試題: 難點 !=!=未看