1. 程式人生 > >關於面試的基礎要點總結(1)

關於面試的基礎要點總結(1)

java的三大特性:

1.封裝:所謂封裝,就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏 2.繼承:指子類獲得父類的屬性和方法 3.多型:只一個方法只有一個名稱,但可以有許多種形態。也就是程式中可以定義多個同名的方法用“一個介面,多個方法”來描述,可以通過方法的引數和型別引用

java的五大原則:

1.單一職責原則SRP 2.開放封閉原則OCP 3.替換原則LSP 4.依賴原則DIP 5.介面分離原則ISP

排序都有哪幾種方法:

插入排序(直接插入排序,希爾排序), 交換排序(氣泡排序,快速排序), 選擇排序(直接選擇排序,堆排序), 歸併排序, 分配排序(箱排序,基數排序)

String,StringBuffer,StringBuilder的區別:

1.String:長度不可變 2.StringBuffer:長度可變,經常修改字串中的內容那麼使用StringBuffer。如果最後需要String,那麼呼叫toString()方法;執行緒安全的 3.StringBuilder:支援所有相同的操作,不執行同步,速度快;執行緒不安全的

Overload和Override的區別。Overload的方法是否可以改變返回值型別:

方法的重寫(父子類)Override和過載(同一個類)Overload時Java多型性的不同表現。 Overload的方法是可以改變返回值型別的。

final,finally的區別:

final:修飾符;如果一個類被宣告為final,代表類不能被繼承;變數和方法宣告為final,可以保證它們在使用中不被改變;被final宣告的變數必須在宣告時給定初值,不可修改。 finally:在異常處理時提供finally塊來執行任何清除操作;如果丟擲異常那麼相匹配的catch子句就會執行,然後控制會進入finally塊(如果有的話)

常見的幾個異常:

java.long.NullPointerException(空指標異常) java.long.ClassNotFoundExceotion(指定的類不存在) java.long.ArrayIndexOutOfBuundsException(陣列下標越界異常) IOException(輸入輸出異常)

抽象類和介面的區別:

1.介面是抽象類的變體,裡面所有方法都是抽象方法。而抽象類是宣告方法的存在而不去實現他的類 2.介面可以多繼承,抽象類不行 3.介面定義方法,不能實現,而抽象類可以實現部分方法 4.介面中基本資料型別為static的 而抽象類不是的

collection樹形圖:

在這裡插入圖片描述

觸發器:

1.是對錶進行插入,更新或刪除操作時自動執行的儲存過程 2.觸發器通常用於強制業務規則 3.觸發器可以確保資料的完整性和一致性

事務:

1.使用者定義的一個操作序列,是一個不可分割的工作單位;如果某一事務成功,則該事務中進行的所有資料更改均會提交,成為資料庫中永久儲存的部分 2.如果事務遇到錯誤且必須取消或回滾,則所有資料更改皆被清除

鎖:

在多使用者環境中對資料訪問的限制封鎖;加鎖後事務就對該物件有了一定的控制,在事務釋放它的鎖之前,其他事務不能更新此資料物件

索引:

是一個數據庫物件,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單,然後根據指定的排序次序排列這些指標 優點:提高查詢執行的速度。 強制實施資料的唯一性。 提高表之間聯接的速度。 缺點:儲存索引要佔用磁碟空間。資料修改需要更長的時間,因為索引也要更新。

檢視:

1.是一種虛擬表 2.本質上講就是儲存在資料庫中的select查詢 3.檢視並不是資料庫中儲存的資料值的集合 4.對終端使用者的好處 ——限制資料檢索更容易——維護應用程式更方便 5.減少網路流通量 6.用來執行管理任務或應用複雜的業務規則

資料庫連線池的工作機制是什麼:

—J2EE— 伺服器啟動時會建立一定數量的池連線,並一直維持不少於此數目的池連線。客戶端程式需要連線時,池驅動程式會返回一個未使用的池連線並將其表記為忙。 如果當前沒有空閒連線,池驅動程式就新建一定數量的連線,新建連線的數量有配置引數決定。當使用的池連線呼叫完成後,池驅動程式將此連線表記為空閒,其他呼叫就可以使用這個連線。

Servlet的生命週期:

將Servlet類載入到TomCat容器中 Servlet通過呼叫init()方法進行初始化 Servlet通過呼叫service()方法處理客戶端的請求 Servlet通過呼叫destroy()方法終止(結束)

GC是什麼,為什麼要有GC:

GC是垃圾收集的意思,Java提供的GC功能可以自動檢測物件是否超過作用域從而達到自動回收記憶體的母的,Java語言沒有提供釋放已分配記憶體的顯示操作方法

JSP有哪些內建物件,作用分別是什麼:

request:使用者端請求 response:服務端迴應 session:與請求有關的會話期 pageContext:管理網頁屬性 appLication:servlet正在執行的內容 out:用來傳送回應的輸出 config:servlet的構架部件 page:jsp網頁本身 exception:針對網頁錯誤,未捕捉的例外 JSP的內建物件及方法: request表示HttpServletRequest物件。它包含了有關瀏覽器請求的資訊,並且提供了幾個用於獲取cookie, header, 和session資料的有用的方法,response表示HttpServletResponse物件,並提供了幾個用於設定送回 瀏覽器的響應的方法(如cookies,頭資訊等). out物件是javax.jsp.JspWriter的一個例項,並提供了幾個方法使你能用於向瀏覽器回送輸出結果。 pageContext表示一個javax.servlet.jsp.PageContext物件。它是用於方便存取各種範圍的名字空間、servlet相關的物件的API,並且包裝了通用的servlet相關功能的方法。 session表示一個請求的javax.servlet.http.HttpSession物件。Session可以存貯使用者的狀態資訊 applicaton 表示一個javax.servle.ServletContext物件。這有助於查詢有關servlet引擎和servlet環境的資訊 config表示一個javax.servlet.ServletConfig物件。該物件用於存取servlet例項的初始化引數。 page表示從該頁面產生的一個servlet例項。

XML有那些解析技術,區別是什麼:

DOM:處理大型檔案效能下降,會佔用較多記憶體,解析前要把整個文件裝入記憶體 SAX:事件驅動型解析方式,不需要一次裝載,只在觸發事件時進行解析

對MVC的理解:

MVC設計模式(應用觀察式的框架模式) M:Model,模型,操作資料的業務處理層,並獨立與表現層 V:View,檢視,通過客戶端資料型別顯示資料,並返回模型層的執行結果 C:Controter,控制器,檢視和模型之間的橋樑,控制資料的流向,接受檢視發出的事件並重繪檢視

  1. 優點: 1.檢視控制模型分離,提高程式碼複用 2.提高開發效率 3.便於後期維護,降低維護成本 4.方便多開發人員間的分工
  2. 缺點: 1.清晰的構架以程式碼的複雜性為代價,對小專案來說可能反而降低開發效率 2.執行效率相對較低