2020校招Java開發面試知識點解析(附最新筆面試題)

前言
6月馬上要到了,很多互聯網企業都開始了校招。
互聯網校招時間早,崗位多,並且每家的筆面試都不同。一份合適的筆面試資料,絕對能提高你的校招通過率!
Java 一些知識點
1.Java 基礎知識點
2.Java 常見集合
3.高併發編程(JUC 包)
4.JVM 內存管理
5.Java 8 知識點
6.網絡協議相關
7.數據庫相關
8.MVC 框架相關
9.大數據相關
10.Linux 命令相關
面試,是大家從學校走向社會的第一步。
互聯網公司的校園招聘,從形式上說,面試一般分爲 2-3 輪技術面試 +1 輪 HR 面試。
但是一些公司確實是沒有 HR 面試的,直接就是三輪技術面。
技術面試中,面試官一般會先就你所應聘的崗位進行相關知識的考察,也叫基礎知識和業務邏輯面試。
只要你回答的不是特別差,面試官通常會說:“咱們寫個代碼吧”,這個時候就開始了算法面試。
也就是說,一輪技術面試 = 基礎知識和業務邏輯面試 + 算法面試。
本文我們主要從技術面試聊起。 技術面試包括:業務邏輯和基礎知識面試。
首先是業務邏輯面試 ,也就是講項目。
面試官會對你簡歷上寫的若干個項目其中之一拿出來和你聊聊。在期間,會針對你所做的東西進行深度挖掘。
包括:爲什麼要這麼做?優缺點分析,假如重新讓你做一次,你打算怎麼做? 等等。這個環節主要考察我們對自己做過的項目(實習項目或者校內項目)是否有一個清晰的認識。
關於業務邏輯面試的準備,建議在平時多多思考總結,對項目的數據來源、整體運行框架都應該熟悉掌握。
比如說你在某公司實習過程中,就可以進行總結,而不必等到快離職的時候慌慌張張的去總結該項目。
Java 基礎知識

  1. 面向對象的特性有哪些?
    封裝、繼承和多態。
  2. Java 中覆蓋和重載是什麼意思?
    覆蓋(Override)是指子類對父類方法的一種重寫,只能比父類拋出更少的異常,訪問權限不能比父類的小。
    被覆蓋的方法不能是 private 的,否則只是在子類中重新定義了一個方法;重載(Overload)表示同一個類中可以有多個名稱相同的方法,但這些方法的參數列表各不相同。
    那麼構成重載的條件有哪些?
    參數類型不同、參數個數不同、參數順序不同。
    函數的返回值不同可以構成重載嗎?爲什麼?
    不可以,因爲 Java 中調用函數並不需要強制賦值。舉例如下:
    如下兩個方法:
     void f(){}    int f(){ return 1;}
    只要編譯器可以根據語境明確判斷出語義,比如在 int x = f();中,那麼的確可以據此區分重載方法。
    不過, 有時你並不關心方法的返回值,你想要的是方法調用的其他效果 (這常被稱爲 “爲了副作用而調用”),這時你可能會調用方法而忽略其返回值,所以如果像下面的調用:
    fun();
    此時 Java 如何才能判斷調用的是哪一個 f( ) 呢?別人如何理解這種代碼呢?所以,根據方法返回值來區分重載方法是行不通的。
  3. 抽象類和接口的區別有哪些?
    抽象類中可以沒有抽象方法;接口中的方法必須是抽象方法;
    抽象類中可以有普通的成員變量;接口中的變量必須是 static final 類型的,必須被初始化 , 接口中只有常量,沒有變量。
    抽象類只能單繼承,接口可以繼承多個父接口;
    Java8 中接口中會有 default 方法,即方法可以被實現。
    04.Java 和 C++ 的區別:
    解析:雖然我們不太懂 C++,但是就是會這麼問,尤其是三面(總監級別)面試中。
    都是面向對象的語言,都支持封裝、繼承和多態;
    指針:Java 不提供指針來直接訪問內存,程序更加安全;
    繼承: Java 的類是單繼承的,C++ 支持多重繼承; Java 通過一個類實現多個接口來實現 C++ 中的多重繼承; Java 中類不可以多繼承,但是!!!接口可以多繼承;
    內存: Java 有自動內存管理機制,不需要程序員手動釋放無用內存。
  4. JDK 中常用的包有哪些?
    java.lang、java.util、java.io、java.net、java.sql。
  5. JDK,JRE 和 JVM 的聯繫和區別:
    JDK 是 java 開發工具包,是 java 開發環境的核心組件,並提供編譯、調試和運行一個 java 程序所需要的所有工具,可執行文件和二進制文件,是一個平臺特定的軟件。
    JRE 是 java 運行時環境,是 JVM 的實施實現,提供了運行 java 程序的平臺。JRE 包含了 JVM,但是不包含 java 編譯器 / 調試器之類的開發工具。
    JVM 是 java 虛擬機,當我們運行一個程序時,JVM 負責將字節碼轉換爲特定機器代碼,JVM 提供了內存管理 / 垃圾回收和安全機制等。
    這種獨立於硬件和操作系統,正是 java 程序可以一次編寫多處執行的原因。
    區別:
    JDK 用於開發,JRE 用於運行 java 程序;
    JDK 和 JRE 中都包含 JVM;
    JVM 是 java 編程語言的核心並且具有平臺獨立性。
    篇幅原因,需要詳細答案的可以加Java校招資料QQ羣:967051845
    Java 中常見集合
    1.說說常見的集合有哪些吧?
    2.HashMap 和 Hashtable 的區別有哪些?(必問)
    3.HashMap 的底層實現你知道嗎?
    4.ConcurrentHashMap 和 Hashtable 的區別? (必問)
    5.HashMap 的長度爲什麼是 2 的冪次方?
    6.List 和 Set 的區別是啥?
    7.List、Set 和 Map 的初始容量和加載因子
    8.Comparable 接口和 Comparator 接口有什麼區別?
    9.Java 集合的快速失敗機制 “fail-fast”
    高併發編程
    在 Java 5.0 提供了 java.util.concurrent(簡稱 JUC )包,在此包中增加了在併發編程中很常用的實用工具類,用於定義類似於線程的自定義子系統,包括線程池、異步 IO 和輕量級任務框架。
    1.多線程和單線程的區別和聯繫:
    2.如何指定多個線程的執行順序?
    3.線程和進程的區別(必考)
    4.多線程產生死鎖的 4 個必要條件?
    5.sleep( ) 和 wait( n)、wait( ) 的區別:
    6.synchronized 關鍵字:
    7.volatile 關鍵字
    8.ThreadLocal(線程局部變量)關鍵字:
    9.Atomic 關鍵字:
    10.線程池有了解嗎?(必考)
    JVM 內存管理
    既然是 Java 開發面試,那麼對 JVM 的考察當然也是必須的,面試官一般會問你對 JVM 有了解嗎?
    我通常都會把我所瞭解的都說一遍,包括:JVM 內存劃分、JVM 垃圾回收的含義,有哪些 GC 算法,年輕代和老年代各自的特點統統闡述一遍。
    1.JVM 內存劃分:
    2.類似-Xms、-Xmn 這些參數的含義:
    3.垃圾回收算法有哪些?
    4.root 搜索算法中,哪些可以作爲 root?
    5.GC 什麼時候開始?
    6.內存泄漏和內存溢出
    Java 8 相關知識
    關於 Java8 中新知識點,面試官會讓你說說 Java8 你瞭解多少,下邊主要闡述我所瞭解,並且在面試中回答的 Java8 新增知識點。
    0.1 HashMap 的底層實現有變化
    1.JVM 內存管理方面,由元空間代替了永久代。
    2.Lambda 表達式
    3.函數式接口
    4.引入重複註解
    5.接口中可以實現方法 default 方法。
    6.註解的使用場景拓寬
    7.新的包 java.time 包
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章