天天看點

Java必備知識(一)

一、接口與抽象類的差別?

1. 抽象類可以有構造方法,接口中不能有構造方法。

2. 抽象類中可以有普通成員變量,接口中沒有普通成員變量

3. 抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。

4. 抽象類中的抽象方法的通路類型可以是public,protected和預設類型,但接口中的抽象方法隻能是public類型的,并且預設即為public abstract類型。

5. 抽象類中可以包含靜态方法,接口中不能包含靜态方法

6. 抽象類和接口中都可以包含靜态成員變量,抽象類中的靜态成員變量的通路類型可以任意,但接口中定義的變量隻能是public static final類型,并且預設即為public static final類型。

7. 一個類可以實作多個接口,但隻能繼承一個抽象類。

二、get和post請求的差別?

1、get請求用來從伺服器上獲得資源,而post是用來向伺服器送出資料;

2、get将表單中資料按照name=value的形式,添加到action 所指向的URL 後面,并且兩者使用"?"連接配接,而各個變量之間使用"&"連接配接;post是将表單中的資料放在HTTP協定的請求頭或消息體中,傳遞到action所指向URL;

3、get傳輸的資料要受到URL長度限制(1024位元組);而post可以傳輸大量的資料,上傳檔案通常要使用post方式;

4、使用get時參數會顯示在位址欄上,如果這些資料不是敏感資料,那麼可以使用get;對于敏感資料還是應用使用post;

5、get使用MIME類型application/x-www-form-urlencoded的URL編碼(也叫百分号編碼)文本的格式傳遞參數,保證被傳送的參數由遵循規範的文本組成,例如一個空格的編碼是"%20"。

三、&和&&的差別。

&和&&都可以用作邏輯與的運算符,&&為短路與,&不是短路與。

另外&可以做為整數的位運算符

例1:對于if(str !=null&& !str.equals(“”))表達式,當str為null時,後面的表達式不會執行,是以不會出現NullPointerException如果将&&改為&,則會抛出NullPointerException異常。

例2:If(x==33&++y>0) y會增長,if(x==33 && ++y>0)不會增長

備注:這道題先說兩者的共同點,再說出&&和&的特殊之處,并列舉一些經典的例子來表明自己了解透徹深入、實際經驗豐富。

四、"=="和equals方法的差別?

他們的差別主要存在在引用資料類型上

==為比較兩側的對象是否同一對象,是用記憶體位址來比較的

equals是方法,預設是用記憶體位址比較,重寫後,主要是用來比較兩側的對象的值是否相同,和equals方法中的實作有關

==可以兩側都為null,但equals左側的引用指向的對象不能空,不然有NullPointerException除非需要比較兩個引用指向的對象是同一對象,一般都使用equals方法進行比較。尤其是String之類的值對象,另外,常量盡量放在比較的左側。

五、Integer與int的差別

int是java提供的8種原始資料類型之一,意思整型,占用4位元組。

Integer是java為int提供的封裝類,是引用資料類型。

int的預設值為0,而Integer的預設值為null,即Integer可以區分出未指派和值為0的差別,int則無法表達出未指派的情況。

例如,要想表達出沒有參加考試和考試成績為0的差別,則隻能使用Integer

在JSP開發中,Integer的預設為null,是以用el表達式在文本框中顯示時,值為空白字元串,而int預設的預設值為0,是以用el表達式在文本框中顯示時,結果為0,是以,int不适合作為web層的表單資料的類型。

在Hibernate中,如果将OID定義為Integer類型,那麼Hibernate就可以根據其值是否為null而判斷一個對象是否是臨時的,如果将OID定義為了int類型,還需要在hbm映射檔案中設定其unsaved-value屬性為0。

另外,Integer提供了多個與整數相關的操作方法,例如,将一個字元串轉換成整數,Integer中還定義了表示整數的最大值和最小值的常量。

六、面向對象的特征有哪些方面

1. 封裝,隐藏内部實作,隻暴露公共行為

2. 繼承,提高代碼的重用性

3. 多态,展現現實生活中相似對象的差異性

4. 抽象,抽取現實世界中相似對象的共同點

七、linux中的指令:

1  ctrl + alt 切換系統

2 開機 power on  關機 power off

3 指令:跳目錄 cd  / 根目錄 cd.. 上一級目錄

4 ls 插卡目錄   mkdir 建檔案夾  touch 建檔案  cat 看檔案内容 vi 編輯檔案(insert模式,按esc 鍵退出:wq 儲存并退出)

5 rm -rf 删除檔案 su root 切換使用者

ps -ef | grep:檢視程序資訊

vi:檔案編輯指令

more:分頁檢視指令

top:常用的性能分析工具,能夠實時顯示系統中各個程序的資源占用狀況

ifconfig:顯示或配置網絡裝置的指令

ping:它通常用來測試與目标主機的連通性

rsync、scp:檔案同步指令