一、short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?javascript
對於short s1 = 1; s1 = s1 + 1; 因爲s1+1運算時會自動提高表達式的類型,因此結果是int型,再賦值給short類型s1時,編譯器將報告須要強制轉換類型的錯誤。java
對於short s1 = 1; s1 += 1;因爲 += 是java語言規定的運算符,java編譯器會對它進行特殊處理,所以能夠正確編譯。 web
二、int型在32位下的範圍。ajax
-2的32次方到2的32次方。數據庫
三、TCP的三次握手api
(1)客戶端向服務器端發送一個SYK表示主動打開。瀏覽器
(2)服務器向一個合法的SYK客戶端發送SYK/ACK。緩存
(3)客戶端向服務器發送ACK,並表示已鏈接。性能優化
四、hibernate和ibatis的分頁區別服務器
ibatis主要是經過SQL映射的方式來直接查詢數據庫。而hibernate是經過緩存來實現分頁的。
五、hibernate和ibatis的區別
相同點:屏蔽jdbc api的底層訪問細節,使用時咱們不用與jdbc api打交道,就能夠訪問數據庫。
hibernate是一個全自動的ORM映射工具,它能夠自動生成SQL語句。而ibatis須要咱們本身在XML裏寫SQL語句。
六、單例模式。
public class Singleton(){
private Singleton(){}
private Static Singleton sin=null;
public Static Singleton getInstance(){
if(sin==null){
sin=new Singleton();
}
return sin;
]}
}
七、java性能優化
a、不要在循環中使用Try/Catch語句,應把Try/Catch放在循環最外層。
b、經過StringBuffer的構造函數來設定他的初始化容量,能夠明顯提高性能。
c、不要在循環中調用synchronized(同步)方法
d、使用移位操做來代替'a / b'操做
e、使用移位操做代替'a * b'
f、若是隻是查找單個字符的話,用charat()代替startswith()
g、避免不須要的造型操做
八、hibernate的三種狀態
瞬態:new的對象稱爲瞬態。
持久態:處於該狀態的對象在數據庫中有一條對應的記錄,而且此對象有一個持久化標識。
脫管態:當與某持久對象的session關閉時,由持久態變成脫管態。
九、hibernate的事務管理
hibernate是對jdbc輕量級的封裝,自己並不具有事務管理。在事務管理層,hibernate將它委託給底層的jdbc或jta來實現事務的管理和調度。
十、struts2的流程
a、客戶端瀏覽器發出HTPP請求。
b、在web.xml中,請求被filterDispatcher接收。
c、在struts.xml中找到與請求對應的action類和方法。並經過IOC方式,將值注入到action中。
d、action調用業務邏輯組件處理業務邏輯。這一步包含表單驗證。
e、action執行完畢,根據struts.xml的配置找到對應的返回結果result,並跳到相應的頁面。
十一、ajax原理
經過XmlHttpRequest向服務器端發出異步請求,從服務器端得到數據,而後用javascript來操做DOM對象來更新頁面。