當前位置:學問君>人在職場>綜合指導>

軟件工程師面試題小練,帶參考答案

學問君 人氣:6.92K

142面試題小練

軟件工程師面試題小練,帶參考答案

一、JAVA編程基礎部分 1. "=="和equals方法究竟有什麼區別?

答:==操作符專門用來比較兩個變量的值是否相等,也就是用於比較變量所對應的內存中所存儲的數值是否相同,要比較兩個基本類型的數據或兩個引用變量是否相等,只能用==操作符。

Equals()方法是用於比較兩個獨立對象的內容是否相同,就好比去比較兩個人的長相是否相同,它比較的兩個對象是獨立的。 2. 作用域(訪問修飾符)public,private,protected,以及不寫時的區別?

答:如果在修飾的元素上面沒有寫任何訪問修飾符,則表示friendly。(C#中是internal) 訪問修飾符

public

protected

friendly

private 當前類 √ √ √ √ 同一個包 √ √ √ × 子孫類 √ √ × × 其他包 √ × × ×

3. 請簡述面向對象有哪四個方面的特徵?

答:

1).封裝:即將對象封裝成一個高度自治和相對封閉的個體,對象狀態(屬性)由這個對象自己的行爲(方法)來讀取和改變;

2).抽象:抽象就是找出一些事物的相似和共性之處,然後將這些事物歸爲一個類,這個類只考慮這些事物的相似和共性之處

3). 繼承:繼承是子類自動共享父類數據和方法的機制,這是類之間的一種關係,提高了軟件的可重用性和可擴展性。

4).多態: 多態性增強了軟件的靈活性和擴展性。

4. 請簡述abstract class和interface的區別。

答:含有abstract修飾符的class即爲抽象類,接口(interface)可以說成是抽象類的一種特例,接口中的所有方法都必須是抽象的。

兩者的語法區別:

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

2).抽象類中可以包含非抽象的.普通方法,接口不能。

3). 抽象類中可以包含靜態方法,接口中不能

4). 一個類可以實現多個接口,但只能繼承一個抽象類。

兩者的應用上的區別:

1).接口更多在系統框架設計方法發揮作用。

2).抽象類在代碼實現方面發揮作用,實現代碼的重用。

5.下面代碼有錯嗎?有何錯誤呢?

①. abstract class Name {

private String name;

public abstract boolean isStupidName(String name) {}

}

答:大俠們,這有何錯誤?

答案: 錯。abstract method(抽象方法)必須以分號結尾,且不帶花括號。(沒有方法體)

②. abstract class Something {private abstract String doSomething (); }

答:這好像沒什麼錯吧?

答案: 錯。abstract的methods(方法)不能以private修飾。abstract的methods(方法)就是讓子類implement(實現)具體細節的,怎麼可以用private把abstract私有化呢

③. class Something {int i;public void doSomething() {tln("i = " + i);}}

答:有什麼錯呢? 看不出來啊。

答案: 正確。輸出的是"i = 0"。int i屬於instant variable (實例變量,或叫成員變量)。instant variable有默認值。int的默認值是0。

二、SQL Server部分 1. 可以用什麼來確保表格裏的字段只接受特定範圍裏的值?

答:這個問題可以用多種方式來回答,但是隻有一個答案是“好”答案:Check約束,它在數據庫表格裏被定義,用來限制輸入該列的值。觸發器也可以被用來限制數據庫表格裏的字段能夠接受的值,但是這種辦法要求觸發器在表格裏被定義,這可能會在某些情況下影響到性能。因此,微軟建議使用Check限制而不是其他的方式來限制域的完整性。 2.什麼是主鍵?什麼是外鍵?

答:主鍵是表格裏的(一個或多個)字段,只用來定義表格裏的行;主鍵裏的值總是唯一的。外鍵是一個用來建立兩個表格之間關係的約束。這種關係一般都涉及一個表格裏的主鍵字段與另外一個表格(儘管可能是同一個表格)裏的一系列相連的字段。那麼這些相連的字段就是外鍵。

3.什麼是事務?有哪四個屬性(原則)?

答:事務是作爲一個邏輯單元執行的一系列操作,要麼全都執行,要麼全都不執行。一個邏輯工作單元必須有四個屬性,稱爲 ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能成爲一個事務。

附:

原子性:事務必須是原子工作單元;對於其數據修改,

一致性:事務在完成時,必須使所有的數據都保持一致狀態。

隔離性:由併發事務所作的修改必須與任何其它併發事務所作的修改隔離。

持久性:事務完成之後,它對於系統的影響是永久性的。

4.觸發器和存儲過程有何區別?(講解時回顧觸發器和存儲過程分別是什麼)

答:只有一個區別:存儲過程,你調用的時候纔會執行

觸發器就是你設定了數據庫裏比如刪除,修改,插入時,就會自動觸發執行