You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
android-notes/blogs/Interview/校招面试.md

132 lines
3.8 KiB

---
校招面试
---
技术面试
Java
1. 了解 StringBuilder 和 StringBuffer 的区别嘛?
2. 说说抽象类和接口的区别,运用场景是什么?
3. 说说你对继承和多态的理解,为什么 Java 是单继承呢,多继承有啥问题?
4. 如何理解面向对象?面向过程了解嘛?
5. 说说 ArrayList 和 LinkedList 的区别?是否有线程安全问题?ConcurrentModificationException 遇到过嘛?
6. 说说 HashMap 定位 key 索引的过程?HashMap 为什么容量是 2 的 n 次方的设计,为啥不是一个质数设计呢比如 HashTable?
7. 说说 Java 的异常机制,finally 的作用?final 和 finally 的区别?OOM 和 StackOverFlow 是如何发生的?
8. IO 和 NIO 的区别?
9. 说说你对反射的理解?有使用过嘛?反射为什么会损耗性能?获取 Class 有哪几种方式?
10. 说说你对泛型的理解?如何理解 Java 所谓的假泛型?泛型能够解决什么问题呢?extends 和 super 的区别?
11. 说说线程池的理解?它的出现解决了哪些问题?ThreadPoolExecutor 几个参数的意思?
12. 说说你对 synchronized 的理解?说说锁升级的过程?synchronized 锁普通方法和静态方法有啥区别?
13. 说说你对 volatie 的理解?
14. Object 有哪些方法?wait/notify 能够解决什么问题?
15. 说说 sleep、wait、join、yield 的区别?
16. 静态内部类和成员内部类的区别?
17. 线程有哪几种状态,如何切换的?
JVM
1. 说说 JVM 的内存区域划分?哪些是线程私有的?方法的参数以及局部变量放在哪个区域?
2. 说一下类加载机制?
3. 内存模型了解嘛?
4. GC 回收算法有了解嘛?
Network
1. 说说 TCP/IP 四层分层结构,每一层有哪些网络协议?
2. 说说 Get 和 Post 的区别?Restful API 了解嘛?
3. Session 和 Cookie 的区别?
4. 说说你对 Http 的理解?Http header 里面通常有哪些信息?常见的 Http 状态码有哪些?Http 如何传输大文件?
5. Http 有哪些问题?Https 解决了哪些问题?加密算法了解哪些?如何防止中间人攻击?简单说下 RSA?
6. 说下 TCP 和 UDP 的区别?TCP 是如何实现可靠传输的?
7. 说下 TCP 的三次握手?FYN 洪水攻击了解嘛?如何防范?三次握手改成两次可以不?
8. TCP 的四次挥手,为什么最后需要两个 MSL?
9. DNS 有啥作用?ARP 协议呢?
操作系统
1. 进程和线程的区别?
2. 进程间通信方式有哪几种?在 Android 都有使用了哪些?
3. 死锁的几种条件?
4. 虚拟内存了解嘛?内存的分段和分页的区别?
设计模式
1. 说说你知道的设计原则?
2. 手写单例模式,应用场景在哪?
3. 说说你对观察者模式的理解?使用过 Java 中的 Observe/Observable 嘛?有啥弊端?
4. 项目中有使用到设计模式吗?
Git
1. 使用过哪些命令?
2. merge 和 rebase 的区别?
3. reset --hard 和 --soft 的区别?
项目
1. 检测出来的权限,如何知道是在哪个模块的呢?或者说,如何知道每个模块有哪些权限呢?
2. 说说你使用的静态分析?Lint 有了解嘛?项目中爆红的 API 有警告是如何做到的?
3. 说说序列化?如何重写序列化流程呢(ArrayList)?序列化会走构造方法嘛?序列化后的对象和之前的对象是同一个对象嘛?Android 的序列化机制了解嘛?
4. 项目中有遇到哪些难点,是如何解决的呢?
5. GitHub 看过哪些项目?
算法
1. 手写二分查找
2. 判断合法的 ip 地址
非技术面试
1. 自己的优势在哪?说一下对自己的评价
2. 为什么没有面 xx 呢?
3. 平时有哪些学习途径?
4. 如何看待面试造火箭,工作拧螺丝?