天天看點

Java面試技巧和重點分析 一.前言 二.重點 三.總結

一.前言

          雖然本人也是剛入行不久,但是之前也做過一些面試準備,剛好7--8月份,還有部分學生或者初入開發行業的潛在同行,正在找工作,是以把自己的感觸分享給大家,希望能夠幫助到大家,能夠順利的通過面試筆試,進入自己心儀的公司。

二.重點

        做為一名應屆生或者初入開發行業人員,應該注重基礎知識和一些架構工具的使用。

       2.1:基礎知識是系統原理和算法之類的,對這些原理了解的深度很重要,因為這是一種思維方式,所有的語言底層原理都差不多;一個人的技術上限是由他的基礎決定的,在面試官面前展現的基礎越紮實給面試官留下的印象更好。

       2.2:對架構工具的了解不說是所有的,但是針對目前主流的架構不說了解的很清楚,但是也應該知道一些,比如SSH、SpringBoot、SpringCloud這些架構你需要知道他們的使用和他們核心的實作原理。比如Spring,你要知道 ioc , aop 和他的工廠是怎麼實作的吧?這個東西你平時不去深究,你使用再久Spring可能都不知道原理。但是你不去了解先進技術的實作原理你怎麼可能研究出新的技術和架構?

     2.3:知識的了解不應該隻浮于表面,應該有深度和廣度。這點在我進入公司工作之前我沒有任何認知,但是在進入公司後和上司、同僚接觸後,深深的發現自己對知識積累點的單薄,可能有的人會說,這些基礎的東西這麼簡單,我早就學會了,平時一直都在寫,沒必要去專門再學。但是這樣的,請問,天天在用String的你,知道它的實作,能了解應用那些設計模式嗎?

      在面對面試官的時候,你永遠不會知道他的下一個問題是什麼,是以對知識點的儲存,深挖永遠都沒有錯,總結一下就是,打好基礎底子,千萬不要飄,深入學習,這樣你面對面試官的時候,才能有更多的可以聊的話題,從容面對面試官的話題,更快的融入公司。

三.總結

        以上我個人看法,并不一定是正确的。每個人的想法都不一樣,畢竟自己目前也還是一個菜鳥,希望和大家在學習的道路上共同進步,另外以下是總結的一些面試題目,有興趣可以看下,謝謝

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

答:面向對象的特征主要有以下幾個方面:

- 抽象:抽象是将一類對象的共同特征總結出來構造類的過程,包括資料抽象和行為抽象兩方面。抽象隻關注對象有哪些屬性和行為,并不關注這些行為的細節是什麼。

- 繼承:繼承是從已有類得到繼承資訊建立新類的過程。提供繼承資訊的類被稱為父類(超類、基類);得到繼承資訊的類被稱為子類(派生類)。繼承讓變化中的軟體系統有了一定的延續性,同時繼承也是封裝程式中可變因素的重要手段。

- 封裝:通常認為封裝是把資料和操作資料的方法綁定起來,對資料的通路隻能通過已定義的接口。面向對象的本質就是将現實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實作細節的一種封裝;我們編寫一個類就是對資料和資料操作的封裝。可以說,封裝就是隐藏一切可隐藏的東西,隻向外界提供最簡單的程式設計接口。

- 多态性:多态性是指允許不同子類型的對象對同一消息作出不同的響應。簡單的說就是用同樣的對象引用調用同樣的方法但是做了不同的事情。多态性分為編譯時的多态性和運作時的多态性。如果将對象的方法視為對象向外界提供的服務,那麼運作時的多态性可以解釋為:當A系統通路B系統提供的服務時,B系統有多種提供服務的方式,但一切對A系統來說都是透明的。方法重載(overload)實作的是編譯時的多态性(也稱為前綁定),而方法重寫(override)實作的是運作時的多态性(也稱為後綁定)。運作時的多态是面向對象最精髓的東西,要實作多态需要做兩件事:1). 方法重寫(子類繼承父類并重寫父類中已有的或抽象的方法);2). 對象造型(用父類型引用引用子類型對象,這樣同樣的引用調用同樣的方法就會根據子類對象的不同而表現出不同的行為)。

2、float f=3.4;是否正确?

答:不正确。3.4是雙精度數,将雙精度型(double)指派給浮點型(float)屬于下轉型(down-casting,也稱為窄化)會造成精度損失,是以需要強制類型轉換float f =(float)3.4; 或者寫成float f =3.4F;。

3、:成員變量與局部變量的差別?

   成員變量:有類成員變量(有static修飾)和執行個體成員變量(無static修飾)兩種

   局部變量:有代碼塊局部變量,形參,方法局部變量三種

   差別:作用範圍不同,成員變量對整個類有效,局部變量隻對該方法或代碼塊有用

定義成員變量是可以不初始化,局部變量除了形參之外,必須初始化

4、Equals與 == 的差別

   ==既可以比較基本類型,也可以比較引用類型,比較引用類型時,必須是父子關系

   equals隻能比較引用類型,比較是位址

5、接口與抽象類的差別

   差別:

相同點:

  1,都不能執行個體化

  2,都有抽象方法

不同點:

  1,接口隻能定義常量,抽象類既可以定義常量也可以定義變量

  2,接口裡沒有構造器和初始化塊,抽象類有構造器和初始化塊

  3,接口裡隻有抽象方法,抽象類裡有抽象方法和普通方法

  4,接口可以實作多個,抽象類的繼承隻能繼承一個

  5,接口隻能實作接口,不能實作其他類,抽象類即可實作接口,也可繼承其他類

  6,接口定義用interface,抽象類定義用extends