字节跳动Andorid岗25k 的面试题,实战案例
# Java相关
1\. HashMap 和HashTable 以及CurrentHashMap 的区别。
2\. synchronized 和volatile 、ReentrantLock 、CAS 的区别。
3\. JVM 类加载机制、垃圾回收算法对比、Java 虚拟机结构等。
4\. Java 的四大引用
5\. Java 的泛型,<? super T> 和 <? extends T> 的区别。
6\. Java 线程有哪些状态,有哪些锁,各种锁的区别。
7\. final 、finally、finalize 区别。
8\. 接口和抽象类的区别。
9\. sleep 、wait、yield 的区别,wait 的线程如何唤醒它?
10\. java 中==和 equals 和 hashCode 的区别
11.String、StringBuffer、StringBuilder 区别
12.接口的意义
13.进程和线程的区别
14.讲一下常见编码方式?
15序列化 Serializable 和 Parcelable 的区别
16.string 转换成 integer 的方式及原理
17静态代理和动态代理的区别,什么场景使用?
18\. 说说你对 Java 反射的理解
19\. 说说你对 Java 注解的理解
20\. 说一下泛型原理,并举例说明
# 计算机网络部分
1\. TCP 与 UDP 的区别。
2\. 三次握手、四次挥手。为啥是三次不是两次?
3\. HTTPS 和 HTTP 的区别。HTTP 2.0,3.0?
4\. 浏览器输入一个 URL,按下回车网络传输的流程?
5\. TCP 建立连接后,发包频率是怎样的?
5\. OKHttp
6.如何验证证书的合法性?
7.https中哪里用了对称加密,哪里用了非对称加密,对加密法(如RSA)等是否有了解?
8.client如何确定自己发送的消息被server收到?
9.谈谈你对WebSocket的理解
10.WebSocket与Socket的区别
11.谈谈你对安卓签名的理解
12.请解释安卓为啥要加签名机制?
### 最后
都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。
**技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;**
> 我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
**《[Android架构视频+BAT面试专题PDF+学习笔记](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)?》**
![](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625499946434248.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625499946651028.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625499947611061.jpg)
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望**[这份系统化的技术体系](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**对大家有一个方向参考。
>2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。