java軟件開發技術面試2015---持續更新中。。。

一、http和https區別javascript

https協議須要到ca申請證書,通常免費證書不多,須要交費。 
http是超文本傳輸協議,信息是明文傳輸,https 則是具備安全性的ssl加密傳輸協議 
http和https使用的是徹底不一樣的鏈接方式用的端口也不同,前者是80,後者是443。 
http的鏈接很簡單,是無狀態的 ,固然如今http也能夠 使用php+JS密碼加密實現http安全訪問。
HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議 要比http協議安全。
php

二、get和post區別css

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,所以相對比較安全。
html

b、get傳輸數據大小爲2KB,post能夠80K或者100KB。java

c、Get 方式須要使用 Request.QueryString 來取得變量的值;而 Post 方式經過 Request.Form 來訪問提交的內容數據庫

d、Get是向服務器發索取數據的一種請求,而Post是向服務器提交數據的一種請求,在FORM(表單)中,Method默認爲"GET",實質上,GET和POST只是發送機制不一樣,並非一個取一個發!更多資料請看:淺談HTTP中GET和POST的區別   數組

三、XML解析方式緩存

DOM:處理大型文件時其性能降低的很是厲害。這個問題是由DOM的樹結構所形成的,這種結構佔用的內存較多,並且DOM必須在解析文件以前把整個文檔裝入內存,適合對XML的隨機訪問 SAX:不現於DOM,SAX是事件驅動型的XML解析方式。它順序讀取XML文件,不須要一次所有裝載整個文件。當遇到像文件開頭,文檔結束,或者標籤開頭與標籤結束時,它會觸發一個事件,用戶經過在其回調事件中寫入處理代碼。
詳細請看 java解析XML的幾種方式

四、Html訪問全過程?安全

這個問題涉及面普遍,考慮到網絡知識,緩存,DNS,路由,HTTP請求,渲染Html文檔,生成文檔樹,可以解釋css,還要有個javascript引擎,這裏有一篇很是詳細精彩的文章值得閱讀:從輸入網址到顯示頁面全過程服務器

五、數據庫事務隔離機制及特色是什麼?

  • 隔離性:指的是在併發環境中,當不一樣的事務同時操縱相同的數據時,每一個事務都有各自的完整數據空間。

數據庫事務的隔離級別有4個,由低到高依次爲Read uncommittedRead committedRepeatable readSerializable,這四個級別能夠逐個解決髒讀不可重複讀幻讀這幾類問題。

√: 可能出現    ×: 不會出現

髒讀 不可重複讀 幻讀
Read uncommitted
Read committed ×
Repeatable read × ×
Serializable × × ×

 具體請參考:數據庫事務隔離級別

五、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方法服務。


七、數據庫鏈接池的原理

 鏈接池用於建立和管理數據庫鏈接的緩衝池技術,緩衝池中的鏈接能夠被任何須要他們的線程使用。當一個線程須要用JDBC對一個數據庫操做時,將從池中請求一個鏈接。當這個鏈接使用完畢後,將返回到鏈接池中,等待爲其餘的線程服務。

數據庫鏈接池的基本思想就是爲數據庫鏈接 創建一個「緩衝池」。預先在緩衝池中放入必定數量的鏈接,當須要創建數據庫鏈接時,只需從「緩衝池」中取出一個,使用完畢以後再放回去。咱們能夠經過設定 鏈接池最大鏈接數來防止系統無盡的與數據庫鏈接。更爲重要的是咱們能夠經過鏈接池的管理機制監視數據庫的鏈接的數量?使用狀況,爲系統開發?測試及性能調 整提供依據。

有關 數據鏈接池其餘操做:數據持鏈接分配、釋放模型