Google面试官教你升级Java面试
Google面试官亲授 升级Java面试 校招的核心究竟是什么?一是基础知识掌握是否扎实,二是编程能力是否过硬。如何从这两大方面证明自己,如何打赢校招这场人才争夺大战?本门课程从基础知识和编程技巧两方面入手, 让你顺利通关面试并拿到高薪offer,乃至受益整个工程师生涯! 第1章 课程引言 校招主要考察的是基础知识和编程能力,介绍校招总体大致录取率。详细介绍本课程的学习目标,课程安排,最后演示谷歌在线笔试。 第2章 操作系统 本章从操作系统最常见的问题,进程vs线程入手,讲解其内存结构。讲解存储的层次结构和虚拟内存的概念,以及如何在虚拟内存中进行寻址。 第3章 网 络 本章首先介绍网络多层架构背后的思想方法和其各自解决的问题。然后详细介绍TCP协议中的核心:滑动窗口协议及其背后动机。最后通过对一个HTTP请求的抓包进行实战分析,展示滑动窗口协议真实的工作过程,并且涉及包括DNS,TCP三次握手及HTTP协议。… 第4章 数据库 本章着重介绍使用最为广泛的关系型数据库。采用阿里云数据库进行展示。这里先从一些简单的SQL语句开始,重点演示JOIN,GROUP BY,子查询等面试SQL时必考的知识点。随后讲解事务的ACID属性,现场演示各事务的隔离级别下数据的读写行为。最后通过实际例子引出并且演示乐观锁的概念及实现。… 第5章 程序设计语言基础 本章首先从类型检查,运行方式,编程范式入手对程序设计语言进行分类和对比,随后重点介绍符号整数及其补码实现的方法和动机。最后对面向对象语言如Java的装箱拆箱进行演示,为后续的面向对象思想打下基础。 第6章 编码技巧 编码技巧是软件工程师面试中最重要的环节。本章从数学归纳法理论入手,讲解如何将其思想运用至递归和循环中,并演示了如何系统性的确定初始值和特殊值。在回顾数据结构之后对树的遍历及其相关问题进行了详细的展开。涉及的编码技巧例题包括链表操作、递归与非递归、二分查找、树的遍历及其转换等经典题型。… 第7章 面向对象 本章讲解如何解耦和构造大型系统。先从类与对象讲起,再引入接口与抽象类并对其进行比较,寻求其背后的设计动机,演示如何实现Java系统接口来支持for each语法。介绍继承与封装,及其封装的可见性。而不可变对象,泛型和C++虚函数表是面向对象中相当重要和常用,面试必考,但书本上却缺乏强调的典型知识点,因此课程中对其… 第8章 设计模式 本章从一个客观的角度引入设计模式,并且讲解大家所熟知的Singleton模式的优缺点及其实现。随后着重从如何化继承为组合,以及如何创建对象的角度来引出数个常用以及常被问及的设计模式。 第9章 高级知识点 本章讲解同学接触机会不多但是工作中非常重要,面试也常出现的一些知识点。包括并行计算,多线程问题,以及系统的资源管理,Java内存模型和垃圾回收,异步IO,架构演进等 第10章 谷歌在线笔试题解 本章将回顾在第一章中所出现的典型试题,并分别给出简单的和高效的两个不同的解决方案,对应其不同分值。在解题过程中同学将综合运用本课程学到的许多知识点。 第11章 面试的软技巧和总结 有了知识储备和编程能力,如何才能将这些能力在面试中展示出来,如何和面试官有效的进行交流?讲师以面试中实际碰到的各类同学的表现为例,从面试官的角度来分析在面试中所需要具备的软实力。最后总结课程