1. 程式人生 > >Java面試通關要點

Java面試通關要點

基礎篇

基本功

  • 面向物件的特徵

    面向物件三大特徵:

(1)封裝(Encapsulation)

所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。封裝是面向物件的特徵之一,是物件和類概念的主要特性。簡單的說,一個類就是一個封裝了資料以及操作這些資料的程式碼的邏輯實體。在一個物件內部,某些程式碼或某些資料可以是私有的,不能被外界訪問。通過這種方式,物件對內部資料提供了不同級別的保護,以防止程式中無關的部分意外的改變或錯誤的使用了物件的私有部分。

(2)繼承(Inheritance)

繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。

通過繼承建立的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”。繼承的過程,就是從一般到特殊的過程。要實現繼承,可以通過“繼承”(Inheritance)和“組合”(Composition)來實現。繼承概念的實現方式有二類:實現繼承與介面繼承。實現繼承是指直接使用基類的屬性和方法而無需額外編碼的能力;介面繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;

(3)多型(Polymorphism)

所謂多型就是指一個類例項的相同方法在不同情形有不同表現形式。多型機制使具有不同內部結構的物件可以共享相同的外部介面。這意味著,雖然針對不同物件的具體操作不同,但通過一個公共的類,它們(那些操作)可以通過相同的方式予以呼叫。

最常見的多型就是將子類傳入父類引數中,執行時呼叫父類方法時通過傳入的子類決定具體的內部結構或行為。

面向物件五大原則:

單一職責原則:一個類只做它該做的事情。

單一職責原則想表達的就是”高內聚”,寫程式碼最終極的原則只有六個字”高內聚、低耦合”

開閉原則:軟體實體應當對擴充套件開放,對修改關閉。

在理想的狀態下,當我們需要為一個軟體系統增加新功能時,只需要從原來的系統派生出一些新類就可以,不需要修改原來的任何一行程式碼。

依賴倒轉原則:面向介面程式設計。

該原則說得直白和具體一些就是宣告方法的引數型別、方法的返回型別、變數的引用型別時,儘可能使用抽象型別而不用具體型別,因為抽象型別可以被它的任何一個子型別所替代,請參考下面的里氏替換原則。

里氏替換原則:任何時候都可以用子型別替換掉父型別。

需要注意的是:子類一定是增加父類的能力而不是減少父類的能力,因為子類比父類的能力更多,把能力多的物件當成能力少的物件來用當然沒有任何問題。

介面隔離原則:介面要小而專,絕不能大而全。

合成聚合複用原則:優先使用聚合或合成關係複用程式碼。

迪米特法則:迪米特法則又叫最少知識原則,一個物件應當對其他物件有儘可能少的瞭解。

  • final,finally, finalize 的區別

final用於宣告屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承.

finally是異常處理語句結構的一部分,表示總是執行.

finalizeObject類的一個方法,在垃圾收集器執行的時候會呼叫被回收物件的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉檔案等.JVM不保證此方法總被呼叫.

intInteger有什麼區別

Integer類在物件中包裝了一個基本型別int的值。Integer型別的物件包含一個int型別的欄位。

此外,該類提供了多個方法,能在int型別和String型別之間互相轉換,還提供了處理int型別時非常有用的其他一些常量和方法。

  • 過載和重寫的區別

    方法的重寫(Overriding)和過載(Overloading)java多型性的不同表現,重寫是父類與子類之間多型性的一種表現,過載可以理解成多型的具體表現形式。

  • (1)方法過載是一個類中定義了多個方法名相同,而他們的引數的數量不同或數量相同而型別和次序不同,則稱為方法的過載(Overloading)

  • (2)方法重寫是在子類存在方法與父類的方法的名字相同,而且引數的個數與型別一樣,返回值也一樣的方法,就稱為重寫(Overriding)

  • (3)方法過載是一個類的多型性表現,而方法重寫是子類與父類的一種多型性表現。

  • 抽象類和介面有什麼區別

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

2.抽象類中可以有普通成員變數,介面中沒有普通成員變數

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

4.抽象類中的抽象方法的訪問型別可以是publicprotected和(預設型別,雖然eclipse下不報錯,但應該也不行),但介面中的抽象方法只能是public型別的,並且預設即為publicabstract型別。

5.抽象類中可以包含靜態方法,介面中不能包含靜態方法

6.抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問型別可以任意,但介面中定義的變數只能是publicstatic final型別,並且預設即為publicstatic final型別。

  • 說說反射的用途及實現

    JAVA反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法和屬性;這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為java語言的反射機制.

主要作用有三:

  1. 執行時取得類的方法和欄位的相關資訊。

  2. 建立某個類的新例項(.newInstance())

  3. 取得欄位引用直接獲取和設定物件欄位,無論訪問修飾符是什麼。

用處如下:

  1. 觀察或操作應用程式的執行時行為。

  2. 除錯或測試程式,因為可以直接訪問方法、建構函式和成員欄位。

  3. 通過名字呼叫不知道的方法並使用該資訊來建立物件和呼叫方法。

  • 說說自定義註解的場景及實現

  • HTTP請求的GETPOST方式的區別

    在客戶機和伺服器之間進行請求-響應時,兩種最常被用到的方法是:GETPOST

  • GET-從指定的資源請求資料。

  • POST-向指定的資源提交要被處理的資料

  • sessioncookie區別

    1session在伺服器端,cookie在客戶端(瀏覽器)
    2
    session預設被存在在伺服器的一個檔案裡(不是記憶體)
    3
    session的執行依賴sessionid,而sessionid 是存在cookie中的,也就是說,如果瀏覽器禁用了cookie,同時session也會失效(但是可以通過其它方式實現,比如在url中傳遞session_id
    4
    session可以放在檔案、資料庫、或記憶體中都可以。
    5
    ,使用者驗證這種場合一般會用session

因此,維持一個會話的核心就是客戶端的唯一標識,即sessionid

cookiesession的區別:

1cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。

2cookie

相關推薦

金三銀四Java面試通關要點匯總集(大牛歸納)

Java 面試 Java面試通關要點匯總集(部分解答)說明如果你有幸能看到的話, 1、本文整體框架來自@阿裏.梁桂釗的博文,總結的非常不錯。值得我們學習,它的博客部分做了解答。2、由於自己能力有限,沒能實現心中那個想法,就是第一遍自己寫,第二遍書本查詢3、文章會放到GitHub,用Git控制。可能是一

Java面試通關要點匯總集

安全 mysq cap 鏈式調用 工作 countdown 自定義 ping 詳細 這裏,筆者結合自己過往的面試經驗,整理了一些核心的知識清單,幫助讀者更好地回顧與復習 Java 服務端核心技術。本文會以引出問題為主,後面有時間的話,筆者陸續會抽些重要的知識點進行詳

[經驗]老梁 Java 面試通關要點匯總集

用戶 finalize 解決 hashset 開發 註意事項 xca 功能 內部 https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247484960&idx=1&sn=3d00e1c148

Java面試通關要點【問題彙總篇】

基礎篇 基本功: 面向物件的特徵 final, finally, finalize 的區別 int 和 Integer 有什麼區別 過載和重寫的區別 抽象類和介面有什麼區別 說說反射的用途及實現 說說自定義註解的場景及實現 HTTP 請求的 GET 與 POST 方式的區

Java面試通關要點

基礎篇基本功面向物件的特徵面向物件三大特徵:(1)封裝(Encapsulation)所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏

JAVA必背面試題和專案面試通關要點(帶答案)

一 資料庫  1.常問資料庫查詢、修改(SQL查詢包含篩選查詢、聚合查詢和連結查詢和優化問題,手寫SQL語句,例如四個球隊比賽,用SQL顯示所有比賽組合;舉例2:選擇重複項,然後去掉重複項;) 資料庫裡的密碼如何加密(md5); (1)資料庫的密碼加密:單向加密,insert into u

【面試題】2018年最全Java面試通關秘籍第五套!

XA 中文分詞 coo div rop 為什麽 3.2 自旋 FQ 【面試題】2018年最全Java面試通關秘籍第五套! 原創 2018-04-26 徐劉根 Java後端技術 第一套:《2018年最全Java面試通關秘籍第一套!》 第二套:《2018年最全Java面試通

JAVA面試通關知識點必備(持續更新中)

1.JAVA基本資料型別包括哪些? 基本資料型別包括byte,short,int,long,float,double,boolean,char. 2.String能被繼承嗎?為什麼? java.lang.String類是final型別的,因為不可以繼承這個類,不能修改

面試通關要點彙總集一

基礎篇 面向物件的特徵 1、封裝:封裝隱藏了類的內部機制,可以在不影響使用的情況下改版類的內部結構,同時也保護了資料。對外界而言它的內部細節是隱藏的,暴露給外界的只是它的訪問方法。 2、繼承:繼承給物件提供了從基類獲取欄位和方法的能力。繼承提供了程式碼的重用行,也可以在不修改類的情況下給

Java面試通關祕籍(一)

1. 基礎篇 1.1 Java基礎 面向物件的特徵:繼承、封裝和多型 1.繼承: 多個類中存在相同屬性和行為時,將這些內容抽取到單獨一個類中,那麼多個類無需再定義這些屬性和行為,只要繼承那個類即可。 好處:提高了程式碼的複用性。讓類與類之間產生了

【 專欄 】- Java面試通關手冊

Java面試通關手冊 主要分享Java方向面試寶典以及Java知識,旨在為Java初學者提供學習方向,為即將面試的準程式設計師提供面試方面的幫助,為Java老手提供知識點的溫習。 以及各種Java相關優質學習資源和其他語言優質學習

2018年最全Java面試通關祕籍彙總集!

一、基礎篇1.1、Java基礎 面向物件的特徵:繼承、封裝和多型final, finally, finalize 的區別Exception、Error、執行時異常與一般異常有何異同請寫出5種常見到的runtime exceptionint 和 Integer 有什麼區別,In

第三套:《2018年最全Java面試通關祕籍第三套!》

注:本文是從眾多面試者的面試經驗中整理而來,其中不少是本人出的一些題目,網路資源眾多,如有雷同,純屬巧合!禁止一切形式的碰瓷行為!未經允許禁止一切形式的轉載和複製,如有違反則追究其法律責任!不要問我為什麼沒答案了,原因還是以前那句話,單純的背面試題是解決不了任何問題的,只有深

Java面試通關手冊

1. JCSprout(Java核心知識庫) Github地址: [連結] star: 12k 介紹: 處於萌芽階段的 Java 核心知識庫。 2. Java-Guide (Java學習指南) Github地址: [連結] star: 3.1k 介紹: 一份涵蓋大部分Java程式設計師所需...

第一套:《2018年最全Java面試通關祕籍第一套!》

前幾天在交流群裡有些小夥伴問面試相關的試題,當時給出了一些問題,苦於打字太累就沒寫下去了,但覺得這是一個很不負責任的表現,於是下來整理了一下近幾年的私藏,特分享給大家!此套面試題適用於Java開發的各個階段面試,不過更偏向初級和中級開發人員!由於每一個問題的答案不唯一且都可以

JAVA面試要點011---java中一個數的n次方怎麼寫

    JAVA技術交流QQ群:170933152   第一步我們首先檢視一下Math數學函式的API,可以看到pow()方法返回第一個引數的第二個引數次方,格式為Math.pow(m,n),代表m的n次方,如下圖所示: 

Java面試官推薦的開發面試要點

本文轉自:http://www.cnblogs.com/JavaArchitect/p/10011253.html     在上週,我密集面試了若干位Java後端的候選人,工作經驗在3到5年間。我的標準其實不復雜:第一能幹活,第二Java基礎要好,第三最好熟悉些分散式框架,我

Java面試--Spring技術要點--Spring AOP(面向切面程式設計)

33  Spring AOP的概念 面向切面的程式設計,是一種程式設計技術,是OOP(面向物件程式設計)的補充和完善。OOP的執行是一種從上往下的流程,並沒有從左到右的關係。因此在OOP程式設計中,會

java面試要點005---git和svn的區別

最近開始學Git,跟以前常用的SVN來做個對比,以便對雙方的優缺點了解更多些。 其實Git和SVN還是挺像的,都有提交,合併等操作,看來這是原始碼管理工具的基本操作。 1. Git是分散式的,SVN是集中式的,好處是跟其他同事不會有太多的衝突,自己寫的程式碼放在自己