腾讯、阿里、字节跳动android开发岗社招面经

坐标长沙

android开发三年,腾讯、阿里、字节跳动皆是长沙分部

将三个公司的面经分类整理了一下,自己平常也有收集分类的习惯,所以一起发出来分享给大家 :

一、Java相关

1、Java中==和equals和hashCode的区别
2、int与integer的区别
3、谈谈对java多态的理解
4、String、StringBuffer、StringBuilder区别
5、抽象类和接口区别
6、Serializable 和Parcelable 的区别
7、string 转换成 integer的方式及原理
8、哪些情况下的对象会被垃圾回收机制处理掉?
9、什么是强引用、软引用、弱引用以及虚引用?
10、什么是依赖注入?能说几个依赖注入的库么?
11、静态代理和动态代理的区别,什么场景使用?
12、Java的异常体系
13、JVM的回收算法是怎样的
14、说一下泛型原理,并举例说明
15、能说说HashMap常用操作的底层实现原理吗?
16、垃圾回收机制和调用 System.gc()的区别?
17、说一下你所了解的设计模式有哪些
18、说下java中的线程创建方式,线程池的工作原理。

二、计算机网络

1、Http1.1和Http1.0及2.0的区别
2、Http长连接。
3、Http的请求方法。
4、Http的报文结构。
5、Https加密原理。
6、HTTPS 如何防范中间人攻击?
7、Tcp和Udp的区别?
8、TCP可靠传输原理实现(滑动窗口)。
9、为什么tcp要经过三次握手,四次挥手?
10、Cookie与Session的作用和原理。
11、浏览器输入地址到反馈结果发生了什么?
12、客户端如何校验 CA 证书?
13、网络请求缓存处理,okhttp如何处理网络缓存的
14、请解释安卓为啥要加签名机制?
15、权限管理系统(底层的权限是如何进行 grant 的)?
16、client如何确定自己发送的消息被server收到

三、Android基础

1、说下四大组件生命周期?
2、说下onSaveInstanceState()方法的作用 ? 何时会被调用?
3、说下 Activity的四种启动模式、应用场景 ?
4、谈谈Activity和Fragment的区别?
5、Service的两种启动方式?区别在哪?
6、如何保证Service不被杀死 ?
7、广播有几种形式 ? 都有什么特点 ?
8、广播发送和接收的原理了解吗 ?(Binder机制、AMS)
9、ContentProvider的权限管理?
10、描述一下Android数据持久存储方式?
11、SharedPreferences的应用场景?注意事项?
12、了解SQLite中的事务操作吗?是如何做的
13、Android中进程和线程的关系? 区别?
14、为何需要IPC?多进程通信可能会出现的问题?
15、讲下View的绘制流程?
16、描述一下View事件传递分发机制?

四、Android中高阶

1.要做一个尽可能流畅的 ListView ,你平时在工作中如何进行优化
2.对于 Android 的安全问题,你知道多少
3.如何缩减 APK 包大小?
4.Android 与服务器交互的方式中的对称加密和非对称加密是什么?
5.设备横竖屏切换的时候,接下来会发生什么?
6.Android 启动 Service 的两种方式是什么? 它们的适用情况是什么?
7.请介绍下 AsyncTask 的内部实现,适用的场景是?
8.ThreadLocal 原理
9.RxJava 的功能与原理实现
10.ANR 是什么?怎样避免和解决 ANR?
11进程间通信机制,binder原理
12.序列化的作用,以及 Android 两种序列化的区别。
13.Android 中进程内存的分配,能不能自己分配定额内存
14.Android5.0~10.0之间大的变化
15.使用过什么图片加载库?

五、Android第三方库源码

1、网络底层框架:OkHttp实现原理
2、OKhttp针对网络层有哪些优化?
3、网络请求缓存处理,okhttp如何处理网络缓存的?
4、从网络加载一个10M的图片,说下注意事项?
5、网络封装框架:Retrofit实现原理
6、响应式编程框架:RxJava实现原理
7、图片加载框架:Glide实现原理
8、Glide如何确定图片加载完毕?
9、Glide内存缓存如何控制大小?
10、加载bitmap过程(怎样保证不产生内存溢出)
11、Android中软引用与弱引用的应用场景。
12、LruCache原理
13、Fresco与Glide的对比:
14、Bitmap如何处理大图,如一张30M的大图,如何预防OOM?
15、事件总线框架EventBus实现原理
16、内存泄漏检测框架:LeakCanary实现原理
17、leakCannary中如何判断一个对象是否被回收?
18、依赖注入框架:ButterKnife实现原理
19、依赖全局管理框架:Dagger2实现原理
20、数据库框架:GreenDao实现原理

六、性能优化

这个主要结合你所做过的项目问,一般面试官会问你项目做过哪些方面的优化,常见的问法就是:
优化的思路是什么
用到了哪些技术
遇到了哪些困难(问题)
如何解决
有什么心得
主要结合自己项目回答。切记不要自己给自己挖坑,比如没有做过这方面优化,你为了表现自己,说做过,结果面试官往下问回答不出来,这关乎诚信问题,你们懂的~

文末

前面说过lz有收集整理的习惯,所以以前面试题在我的GitHub中都有相对应的文章解析,大家都什么不会的题目,可以在我的GitHub里面的博客文章中找到答案,别忘了给个Star哦~

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。

找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。

最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿!

猜你喜欢

转载自blog.csdn.net/Androiddddd/article/details/111599773