1. 程式人生 > >程式設計師面試的幾個常見的問題(1)

程式設計師面試的幾個常見的問題(1)

1.什麼是面向物件?

對於面向物件,它是java程式的一種程式設計思想。

那麼它有四種基本特徵:

抽象、封裝、繼承、多型

抽象:抽象可以分為抽象類和抽象方法;抽象類①使用abstract關鍵字來定義抽象類②抽象類能被繼承③抽象類不能例項化(即不能建立抽象類的例項,但是可以先例項化抽象類的子類,然後將子類物件賦值給抽象類的物件)抽象方法:①抽象方法沒有方法體②抽象方法必須定義在抽象類中,在其他類中不能定義抽象方法。

封裝:封裝就是有private訪問修飾符修飾的屬性或者是方法,不能直接被外部類的例項化物件訪問,這就是一個很好的封裝。

class Car{
  private String CarName;//屬性被封裝
//get set 方法可以訪問
}

繼承:一般是子類去繼承一個父類,那麼子類擁有父類一切非私有化的屬性和方法。使用繼承是為了減少程式碼的冗餘性,增強了程式碼的可擴充套件性。

它的特性:①傳遞性:子類可以呼叫父類以及父類以上所有父類的屬性和方法②單根性:一個子類不能同時繼承兩個或兩個以上的父類。

多型:同一種事物的不同種表現形式。java中實現多型的機制是重寫、過載、父類的宣告指向子類的物件。

2.談談你對介面的理解?

介面(interface)是一種規範,一種約束,而實現類必須去遵守這些規範編寫方法;介面本身不繼承Object;介面相比抽象類,介面更加純抽象;介面無法例項化被使用,但是可以被普通的類所實現;在我們程式設計的過程中,一個類可以通過implements關鍵字去實現一個介面,類如果實現了一個介面,就必須實現介面中所有的方法。優點:①介面為了讓設計與實現分離②使用介面為了能夠達到方便更換實現的目的,更好的開發時遮蔽不同實現。

3.什麼是IOC、AOP?

IOC和AOP都是spring輕量級框架的程式設計思想,IOC是spring的核心,是用來管理控制物件的生命週期和物件之間的關係,通過配置檔案進行注入,很好的實現了物件與物件之間解耦。IOC工作原理:IOC實現了工廠模式,通過讀取application.xml配置檔案中的<bean>標籤的類,注入到IOC容器中,通過構造器或set方法注入,產生BeanFactory,BeanFactory通過getBean方法獲取物件;AOP稱為面向切面程式設計,可以動態的將主線業務邏輯程式碼與實現功能程式碼分離,並且方便記錄日誌、異常的處理。層次清晰,方便後期的維護。

4.什麼是ORM?

ORM 是物件關係對映,類對應著表,屬性對應著表中的列,物件對應著表中的每一條資料,物件關係對映是為了解決面向物件與關係資料庫之間互不匹配現象的技術。優點:使我們程式設計的思想更加面向物件了,不用去考慮關係資料庫。

5.談談你對轉發和重定向的理解?

轉發:request.getRequestDispatcher(地址).forward(request,response)

轉發會把引數繼續傳遞到下一個被轉發的頁面,可以無限傳遞下去,直到產生一個新的請求;

轉發不會改變URL位址列,顯示的是被請求的路徑位置,不會顯示轉發後的路徑;

轉發只發出一次請求,得到一次響應,效率更高。

重定向:response.sendRedirect(地址)

重定向不會把上一次的請求的引數傳遞到下一個頁面中,但是重定向可以通過get方式,也就拼接URL的形式拼接引數傳遞;

重定向會改變位址列,顯示重定向後的頁面的路徑;

重定向多次請求,多次響應,效率低。