Java后台开发工程师秋招攻略2018Fall

这份攻略是6月份左右刚开始准备秋招时候用的,但是后来在执行的时候发现,这份网上总结而来的攻略并不符合实际情况。现在已找到工作,把6月-11月以来所闻所见所想记录于海外计算机系留学生2018秋招总结-已拿某AI独角兽offer

一、 算法和数据结构基础

1. 数据结构:数组,链表,哈希表,堆,队列,栈,二叉树,B树/B+树,红黑树,图(研发问图不多)
2. 常见的排序算法(冒泡,插入,快排,堆排,归并排序…)
3. 简单的动态规划问题(背包,上楼梯)
4. 各种时间空间复杂度分析

二、Java 基础

1. 最基本的语言基础:语法,关键字含义,面向对象….
2. 集合类(ArrayList, HashMap, ConcurrentHashmap…等等)
3. 多线程(锁,CAS,线程池,concurrent 包下的类)
4. 语言特性:反射,动态代理,泛型,Java 8 新特性
5. IO (装饰器模式,NIO)
6. JVM:内存模型,垃圾回收,类加载机制

三、 Java Web

1. Tomcat,Servlet,JSP,Cookie/Session 等基本概念
2. 框架使用和原理:Spring(AOP,IoC),MyBatis 等

四、数据库(主要是 MySQL)

1. 基本 SQL 语句,索引优化
2. 存储引擎(InnoDB,MyISAM),索引原理
3. 事务 ACID,隔离级别
4. 分库分表,主从复制,读写分离

五、计算机网络

1. OSI 7 层模型和 TCP 4 层模型
2. 传输层:TCP/IP 相关知识,和 UDP 比较
3. HTTP 协议:报文结构,POST/GET 方法
4. 网络编程 (socket, NIO, select 等)

六、操作系统

1. 基本 Linux 的操作指令
2. 进程/线程比较,进程间通信方式,P/V 操作
3. 磁盘调度,虚拟内存
4. 死锁,中断

七、书籍推荐

1. 《算法》(第四版)图以前章节
2. 《剑指 Offer》
3. 《Java 编程思想》
4. 《Java多线程编程核心技术》(高洪岩 著)
5. 《Java 并发编程实战》
6. 《深入理解 Java 虚拟机》
7. 《Java 8 实战》
8. 《鸟哥的 Linux 私房菜》
9. 《MySQL 必知必会》
10. 《Maven 实战》
11. 《图解 HTTP》
12. 《敏捷软件开发》
13. 《架构探险-从零开始写 Java Web 框架》
14. 《Spring 3.x 企业应用开发实战》
15. 《Head First 设计模式》
16. 《大型网站技术架构》(李智慧 著)
17. 《大型网站系统与 Java 中间件实践》