1. 程式人生 > >Java 校招面試 Google 面試官親授

Java 校招面試 Google 面試官親授

第1章 課程引言
校招主要考察的是基礎知識和程式設計能力,介紹校招總體大致錄取率。詳細介紹本課程的學習目標,課程安排,最後演示谷歌線上筆試。

1-1 _導學
1-2 校招錄取率和線上筆試
1-3 從一道谷歌線上筆試開始
第2章 作業系統
本章從作業系統最常見的問題,程序vs執行緒入手,講解其記憶體結構。講解儲存的層次結構和虛擬記憶體的概念,以及如何在虛擬記憶體中進行定址。

2-1 作業系統_概述
2-2 程序和執行緒
2-3 儲存和定址
2-4 程序間通訊
2-5 作業系統問題
2-6 作業系統_例題
第3章 網 絡
本章首先介紹網路多層架構背後的思想方法和其各自解決的問題。然後詳細介紹TCP協議中的核心:滑動視窗協議及其背後動機。最後通過對一個HTTP請求的抓包進行實戰分析,展示滑動視窗協議真實的工作過程,並且涉及包括DNS,TCP三次握手及HTTP協議。...

3-1 網路基礎
3-2 滑動視窗問題
3-3 網路抓包演示
3-4 TCP問題
3-5 TCP連結建立與斷開
3-6 網路例題
第4章 資料庫
本章著重介紹使用最為廣泛的關係型資料庫。採用阿里雲資料庫進行展示。這裡先從一些簡單的SQL語句開始,重點演示JOIN,GROUP BY,子查詢等面試SQL時必考的知識點。隨後講解事務的ACID屬性,現場演示各事務的隔離級別下資料的讀寫行為。最後通過實際例子引出並且演示樂觀鎖的概念及實現。...

4-1 資料庫_概述
4-2 JOIN和GROUP BY
4-3 事務和樂觀鎖
4-4 資料庫問題
4-5 索引的建立和驗證
4-6 索引的實現
4-7 資料庫連線池
4-8 資料庫例題
第5章 程式設計語言基礎
本章首先從型別檢查,執行方式,程式設計正規化入手對程式設計語言進行分類和對比,隨後重點介紹符號整數及其補碼實現的方法和動機。最後對面向物件語言如Java的裝箱拆箱進行演示,為後續的面向物件思想打下基礎。

5-1 程式設計語言基礎_歸類
5-2 程式語言問題
5-3 資料型別、整數和補碼
5-4 浮點數和定點數簡述
5-5 Java資料型別、拆箱和裝箱
5-6 資料型別問題
第6章 編碼技巧
編碼技巧是軟體工程師面試中最重要的環節。本章從數學歸納法理論入手,講解如何將其思想運用至遞迴和迴圈中,並演示瞭如何系統性的確定初始值和特殊值。在回顧資料結構之後對樹的遍歷及其相關問題進行了詳細的展開。涉及的編碼技巧例題包括連結串列操作、遞迴與非遞迴、二分查詢、樹的遍歷及其轉換等經典題型。...

6-1 編碼技巧_概述
6-2 在白板上寫程式
6-3 數學歸納法是編碼的依據
6-4 編碼技巧_遞迴書寫方法
6-5 遞迴控制_例題連結串列建立_
6-6 遞迴控制_例題連結串列反轉_
6-7 遞迴控制_例題列出所有組合
6-8 遞迴開銷
6-9 編碼技巧_迴圈書寫方法
6-10 迴圈控制_例題連結串列反轉非遞迴
6-11 迴圈控制_例題連結串列刪除結點
6-12 邊界控制_二分查詢
6-13 二分查詢_設計測試用例和隱藏10年的bug
6-14 資料結構回顧
6-15 Java集合型別常見問題
6-16 樹的遍歷
6-17 樹的遍歷_構造後序
6-18 中序遍歷下一個結點_分析
6-19 中序遍歷下一個結點_程式碼
6-20 樹的遍歷_例題
6-21 演算法複雜度
6-22 編碼技巧_總結
第7章 面向物件
本章講解如何解耦和構造大型系統。先從類與物件講起,再引入介面與抽象類並對其進行比較,尋求其背後的設計動機,演示如何實現Java系統介面來支援for each語法。介紹繼承與封裝,及其封裝的可見性。而不可變物件,泛型和C++虛擬函式表是面向物件中相當重要和常用,面試必考,但書本上卻缺乏強調的典型知識點,因此課程中對其...

7-1 面向物件_概述
7-2 面向物件_類與物件
7-3 物件的特殊函式(上)
7-4 物件的特殊函式(下)
7-5 介面與抽象類
7-6 實現Iterable介面
7-7 繼承
7-8 封裝
7-9 面向物件_例題
7-10 面向物件_不可變性
7-11 泛型(上)
7-12 泛型(下)
7-13 虛擬函式表
7-14 面向物件_小結
7-15 面向物件問題
第8章 設計模式
本章從一個客觀的角度引入設計模式,並且講解大家所熟知的Singleton模式的優缺點及其實現。隨後著重從如何化繼承為組合,以及如何建立物件的角度來引出數個常用以及常被問及的設計模式。

8-1 設計模式簡介
8-2 State模式
8-3 _Decorator模式
8-4 建立物件
第9章 高階知識點
本章講解同學接觸機會不多但是工作中非常重要,面試也常出現的一些知識點。包括平行計算,多執行緒問題,以及系統的資源管理,Java記憶體模型和垃圾回收,非同步IO,架構演進等

9-1 高階知識點
9-2 外部排序分析
9-3 死鎖分析
9-4 執行緒池介紹
9-5 執行緒池_Java Excutor Framework演示(上)
9-6 執行緒池_Java Excutor Framework演示(下)
9-7 伺服器Socket程式設計
9-8 執行緒池實現伺服器
9-9 NIO伺服器
9-10 select模型的缺點
9-11 go語言實現非同步伺服器
9-12 資源管理
9-13 Java進階知識點介紹
9-14 Java垃圾回收(上)
9-15 Java垃圾回收(下)
9-16 Java記憶體模型1
9-17 Java記憶體模型2
9-18 異常處理
9-19 架構演進
第10章 谷歌線上筆試題解
本章將回顧在第一章中所出現的典型試題,並分別給出簡單的和高效的兩個不同的解決方案,對應其不同分值。在解題過程中同學將綜合運用本課程學到的許多知識點。

10-1 解小資料集
10-2 估算演算法時間
10-3 解大資料集(上)
10-4 解大資料集(下)
10-5 運氣和異常
第11章 面試的軟技巧和總結
有了知識儲備和程式設計能力,如何才能將這些能力在面試中展示出來,如何和麵試官有效的進行交流?講師以面試中實際碰到的各類同學的表現為例,從面試官的角度來分析在面試中所需要具備的軟實力。最後總結課程

11-1 面試過程和注意點
11-2 總結

下載地址:Java 校招面試 Google 面試官親授