校招准备
目标职位: java 工程师、大数据开发方向
1. 招聘信息
招聘信息的来源主要是学校的群和牛客网。
2018年秋季招聘信息:
公司 | 招聘类型 | 起止时间 | 备注 |
---|---|---|---|
提前批 | 7.8 -- * | 百度SER 线下面试 | |
阿里巴巴 | 内推/网申 | 7.16 - 8.17 | 招聘官网 |
网易游戏 | 内推 | 招聘官网 | |
京东 | 网申 | 技术岗java | |
网易 | 内推/网申 | ||
唯品会 | 网申 | 招聘官网 7月18已投简历 | |
拼多多 | 内推/网申 | 招聘官网 |
|
蚂蚁金服 | 招聘官网 | ||
百度智能云技术三部 | 内推 | ||
Thoutworks | 内推 | 内推链接 | |
百度深研(深圳) | 提前批 | zhaorongcun@baidu.com |
|
京东 | 内推 | 786020019@qq.com (7.19日收到内推短信) | |
顺丰科技 | 网申 | 即日 -- 9.23日 | 招聘官网 7月20日投了内推 |
多益网络 | 内推 | 招聘官网 7月20日投了内推 |
|
好未来 | 提前批 | 8.19日截止 | 招聘官网 |
华为 | 网申 | 招聘官网 | |
腾讯 | 提前批/网申 | 招聘官网 | |
抖音、头条 | 内推 | 8.1 - 12.31 | 招聘官网 |
携程 | 内推 | 招聘官网 | |
老虎证券 | 内推 | ||
贝壳网 | 内推 | 招聘官网 |
|
美团 | 内推/网申 | 面试时间:9.6-9.14 |
2. 面试记录
- 2017.7.8, 百度SRE面试
面了108分钟,手机都快没电了,主要问的是项目,然后根据我的专业技能问了一些基础的东西。
(1) du 和 df 的区别
du 和 df的命令都被用于获得文件系统大小的信息;
du, disk usage, 通过搜索文件来计算每个文件的大小,然后累加,du能看到的文件只是一些当前存在的,没有被删除的。
df, disk free, 通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
当文件系统也确定删除了该文件后,这时候du与df就一致了。
(2) kafka 组件
(3) HDFS读写文件等
- 2017.7.27,百度深研院
(1) kafka 什么时候 rebalance, consumer 的 session.timeout.ms的配置项是干嘛的?
(2) java String StringBuffer StringBuilder 的区别?
(3) linux 如何查看线程、端口占用情况?
(4) java 如何实现线程安全?
(5) jvm 内存分配策略,GC 触发条件, 收集器?
(6) TCP 四次挥手的过程?time_out的缺点?
(7) mysql 的 group by 和 partition by?
答:group by 用来做聚合操作,partition by 用于对某个字段分区,然后做某些操作。
普通的聚合函数用group by分组,每个分组返回一个统计值,而分析函数采用partition by分组,并且每组每行都可以返回一个统计值。 分析函数的形式:分析函数带有一个开窗函数over(),包含三个分析子句:分组(partition by), 排序(order by), 窗口(rows) 。
parition by 针对Oracle数据库
参考链接
(8) 海量数据去重,例如大量的IP地址,如何去重?
答:MapReduce
(9) 进程间通信方式?
答:管道,命名管道,消息队列,信号量,共享内存。
3. 技术范围
- 数据结构和算法
- 数据结构:
数组,链表,哈希表,堆,队列,栈,二叉树,B树/B+树,红黑树,图
- 排序:
冒泡,选择,插入,快排,堆排,归并排序,希尔排序
- 查找:
二分查找,红黑树,散列表,二叉查找树
- 并查集:
并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。
- 算法分析:
- jvm
内存模型、垃圾回收、类加载机制
- java web
tomcat servlet JSP cookie/session 等基本概念
- 框架
Spring(AOP, IOC) MyBatis等
- 数据库
基本SQL,索引优化,存储引擎(InnoDB, MyISAM),索引原理 事务ACID 隔离级别 分库分表,主从复制,读写分离
- 计算机网络
OSI7 层模型和 TCP4层模型
传输层:TCP/IP 相关知识, UDP, TCP握手挥手 HTTP: 报文结构,POST/GET方法 网络编程:socket, NIO, select 等
- 操作系统
linux指令 进程、线程区别 进程间通信方式 P/V 操作 磁盘调度,虚拟内存 死锁,中断
4. 学习路线
我自己的学习路线规划:技能的主线是 Java 语言基础 -> Spring 框架开发业务 -> 分布式系统解决高并发,基础方面 算法,网络协议,操作系统
概念性的程度:了解是啥,能够口述含义 使用的程度:可以熟练使用,比如调用 API,写 SQL 查询 原理的程度:能够讲清楚底层实现 提出见解的程度:从任意技术可以引申出相关技术,并能够分析联系和区别,提出自己的见解和体会 以上四种程度逐层加深,当然越深越好,通常前两种程度只能称之为“了解”;而写上简历迎接考核的,至少需要掌握到「原理」的程度。
5. 参考书籍
《算法》(第四版)图以前章节 《剑指 Offer》 《Java 编程思想》 《Java多线程编程核心技术》(高洪岩 著) 《Java 并发编程实战》 《深入理解 Java 虚拟机》 《Java 8 实战》 《鸟哥的 Linux 私房菜》 《MySQL 必知必会》 《Maven 实战》 《图解 HTTP》 《敏捷软件开发》 《架构探险-从零开始写 Java Web 框架》 《Spring 3.x 企业应用开发实战》 《Head First 设计模式》 《大型网站技术架构》(李智慧 著) 《大型网站系统与 Java 中间件实践》