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