声明:本网站所有内容均为资源介绍学习参考,如有侵权请联系后删除
第1章 课程引言
校招主要考察的是基础知识和编程能力,介绍校招总体大致录取率。详细介绍本课程的学习目标,课程安排,最后演示谷歌在线笔试。
1-1 _导学
1-2 校招录取率和在线笔试
1-3 从一道谷歌在线笔试开始
第2章 操作系统
本章从操作系统最常见的问题,进程vs线程入手,讲解其内存结构。讲解存储的层次结构和虚拟内存的概念,以及如何在虚拟内存中进行寻址。
3-1 操作系统_概述
3-2 进程和线程
3-3 存储和寻址
3-4 进程间通信
3-5 操作系统问题
3-6 操作系统_例题
第3章 网 络
本章首先介绍网络多层架构背后的思想方法和其各自解决的问题。然后详细介绍TCP协议中的核心:滑动窗口协议及其背后动机。最后通过对一个HTTP请求的抓包进行实战分析,展示滑动窗口协议真实的工作过程,并且涉及包括DNS,TCP三次握手及HTTP协议。...
4-1 网络基础
4-2 滑动窗口问题
4-3 网络抓包演示
4-4 TCP问题
4-5 TCP链接建立与断开
4-6 网络例题
第4章 数据库
本章着重介绍使用最为广泛的关系型数据库。采用阿里云数据库进行展示。这里先从一些简单的SQL语句开始,重点演示JOIN,GROUP BY,子查询等面试SQL时必考的知识点。随后讲解事务的ACID属性,现场演示各事务的隔离级别下数据的读写行为。最后通过实际例子引出并且演示乐观锁的概念及实现。...
5-1 数据库_概述
5-2 JOIN和GROUP BY
5-3 事务和乐观锁
5-4 数据库问题
5-5 索引的创建和验证
5-6 索引的实现
5-7 数据库连接池
5-8 数据库例题
第5章 程序设计语言基础
本章首先从类型检查,运行方式,编程范式入手对程序设计语言进行分类和对比,随后重点介绍符号整数及其补码实现的方法和动机。最后对面向对象语言如Java的装箱拆箱进行演示,为后续的面向对象思想打下基础。
6-1 程序设计语言基础_归类
6-2 程序语言问题
6-3 数据类型、整数和补码
6-4 浮点数和定点数简述
6-5 Java数据类型、拆箱和装箱
6-6 数据类型问题
第6章 编码技巧
编码技巧是软件工程师面试中最重要的环节。本章从数学归纳法理论入手,讲解如何将其思想运用至递归和循环中,并演示了如何系统性的确定初始值和特殊值。在回顾数据结构之后对树的遍历及其相关问题进行了详细的展开。涉及的编码技巧例题包括链表操作、递归与非递归、二分查找、树的遍历及其转换等经典题型。...
7-1 编码技巧_概述
7-2 在白板上写程序
7-3 数学归纳法是编码的依据
7-4 编码技巧_递归书写方法
7-5 递归控制_例题链表创建_
7-6 递归控制_例题链表反转_
7-7 递归控制_例题列出所有组合
7-8 递归开销
7-9 编码技巧_循环书写方法
7-10 循环控制_例题链表反转非递归
7-11 循环控制_例题链表删除结点
7-12 边界控制_二分查找
7-13 二分查找_设计测试用例和隐藏10年的bug
7-14 数据结构回顾
7-15 Java集合类型常见问题
7-16 树的遍历
7-17 树的遍历_构造后序
7-18 中序遍历下一个结点_分析
7-19 中序遍历下一个结点_代码
7-20 树的遍历_例题
7-21 算法复杂度
7-22 编码技巧_总结
第7章 面向对象
本章讲解如何解耦和构造大型系统。先从类与对象讲起,再引入接口与抽象类并对其进行比较,寻求其背后的设计动机,演示如何实现Java系统接口来支持for each语法。介绍继承与封装,及其封装的可见性。而不可变对象,泛型和C++虚函数表是面向对象中相当重要和常用,面试必考,但书本上却缺乏强调的典型知识点,因此课程中对其...
8-1 面向对象_概述
8-2 面向对象_类与对象
8-3 对象的特殊函数(上)
8-4 对象的特殊函数(下)
8-5 接口与抽象类
8-6 实现Iterable接口
8-7 继承
8-8 封装
8-9 面向对象_例题
8-10 面向对象_不可变性
8-11 泛型(上)
8-12 泛型(下)
8-13 虚函数表
8-14 面向对象_小结
8-15 面向对象问题
第8章 设计模式
本章从一个客观的角度引入设计模式,并且讲解大家所熟知的Singleton模式的优缺点及其实现。随后着重从如何化继承为组合,以及如何创建对象的角度来引出数个常用以及常被问及的设计模式。
9-1 设计模式简介
9-2 State模式
9-3 _Decorator模式
9-4 创建对象
第9章 高级知识点
本章讲解同学接触机会不多但是工作中非常重要,面试也常出现的一些知识点。包括并行计算,多线程问题,以及系统的资源管理,Java内存模型和垃圾回收,异步IO,架构演进等
10-1 高级知识点
10-2 外部排序分析
10-3 死锁分析
10-4 线程池介绍
10-5 线程池_Java Excutor Framework演示(上)
10-6 线程池_Java Excutor Framework演示(下)
10-7 服务器Socket编程
10-8 线程池实现服务器
10-9 NIO服务器
10-10 select模型的缺点
10-11 go语言实现异步服务器
10-12 资源管理
10-13 Java进阶知识点介绍
10-14 Java垃圾回收(上)
10-15 Java垃圾回收(下)
10-16 Java内存模型1
10-17 Java内存模型2
10-18 异常处理
10-19 架构演进
第10章 谷歌在线笔试题解
本章将回顾在第一章中所出现的典型试题,并分别给出简单的和高效的两个不同的解决方案,对应其不同分值。在解题过程中同学将综合运用本课程学到的许多知识点。
11-1 解小数据集
11-2 估算算法时间
11-3 解大数据集(上)
11-4 解大数据集(下)
11-5 运气和异常
第11章 面试的软技巧和总结
有了知识储备和编程能力,如何才能将这些能力在面试中展示出来,如何和面试官有效的进行交流?讲师以面试中实际碰到的各类同学的表现为例,从面试官的角度来分析在面试中所需要具备的软实力。最后总结课程
12-1 面试过程和注意点
12-2 总结
本课程已完结