上半年公司的项目很闲,很多人觉得没意思陆续走了,我考虑到自己的发展,从6月底开始面,面到7月底,三十家公司。我从不打没准备的仗,我是一个喜欢总结经验的人,每经过一场面试,我都会那个本子记录下来,或者哪些问题是自己之前没遇到过的,或者是哪些问题是新遇到。通过一段时间的备战,面试,拿了几家offer ,最终我入职了阿里。
准备内容
算法
- leetcode
- careerup
- glassdoor
- topcoder
- zoj
- july的博客
- mitbbs
- poj
- 杭电acm
- codeforces
- 复杂数据结构的讲解及实现GeeksForGeeks:
- 一个比较牛逼的coding challenge网站
Java基础
- 面向对象的特征:继承、封装和多态
- int 和 Integer 有什么区别;Integer的值缓存范围
- 说说反射的用途及实现
- Http 请求的 GET 和 POST 方式的区别
- MVC设计思想
- 什么是Java序列化和反序列化;如何实现Java序列化;或者请描述
Serializable接口的作用
重载和重写的区别
进程和线程
- 线程和进程的概念
- 并行和并发的概念
- 创建线程的方式及实现
- 进程间通信的方式
- 说说 CountDownLatch、CyclicBarrier 原理和区别
- 说说 Semaphore 原理
- 说说 Exchanger 原理
- ThreadLocal 原理分析;ThreadLocal为什么会出现OOM,出现的深
层次原理
- 讲讲线程池的实现原理
- 线程池的几种实现方式
- 线程的生命周期;状态是如何转移的
锁机制
- 什么是线程安全?如何保证线程安全?
- 重入锁的概念;重入锁为什么可以防止死锁?
- 产生死锁的四个条件
- 如何检查死锁
- volatile 实现原理
- synchronized 实现原理(对象监视器)
- synchronized 与 lock 的区别