本人情况:秋招因为个人原因耽误了,从10月份开始备战春招,开启海投战术。
最终offer:腾讯。
前言:为什么选择android客户端?因为android客户端在大二的时候接触到,当看到自己写的代码呈现出App界面的时候,极大极大极大满足了我的内心。所以找客户端是有情怀分在里面的。
因为我投的公司和面试的公司较多,问的最多的就是java、android和计算机网络。所以按照这三个方面对问的次数较多的知识进行总结。因为是个人经验,所以给大家作为参考,不作为指导。废话不多说,上面经回馈!
java:1、hashmap,需要掌握到具体知道哪个部分造成1.7多线程情况下会出现环,进一步哪几行代码造成的;
2、ArrayList、LinkedList、copyOnWriteArrayList、安全失败和快速失败;
3、死锁的原因、解决方法、手写死锁;
4、线程生成的几种方式,有什么不同,线程池的参数,拒绝策略,阻塞队列,常见的线程池,举例线程池的应用,线程、进程和协程;
5、synchronized、AQS、ReentrantLock、常见的同步工具类,例如countDownLatch、CyclicBarrier等;
6、ConcurrentHashMap;
7、CAS,如何解决ABA,自旋会带来哪些问题;
8、java的基本知识,例如==和equals、浅拷贝和深拷贝、泛型(泛型擦除)、为什么一般重写equals方法需要重写hashcode方法等;
9、JVM、内部结构、GC垃圾回收机制、如何判断一个对象真正死亡;
10、单例模式、观察者模式等设计模式及应用场景,手写单例模式(很多种哦);
11、手写生产者消费者;
12、volatile;
android:1、四大组件、详细介绍(生命周期、功能、怎么用等);
2、Activity的启动模式,启动流程,适用场景,不同启动模式对生命周期的影响,Activity、Fragment传值;
3、Binder,好处,AIDL;
4、Service,启动方法,不同点;
5、handler;
6、Fragment;
7、序列化;
8、SharedPreferences;
9、自定义View、View绘制、View分发机制;
10、android ANR、内存泄漏、做过的优化方面内容;
11、使用的框架,例如Retrofit、Glide、EventBus、Rxjava等,需要阐述其中的源码逻辑和内容(这里多说一句,只看博客,其他前辈总结的内容是很枯燥的,需要自己结合他们的思路进行分析,需要大把大把时间,但是收获不少);
12、常见布局、使用的组件,例如RecyclerView(这里面的门道大着呢,当初我花了大把时间来研究它)
计算机网络:1、TCP、UDP、ARP、ICMP等;
2、TCP如何保证传输可靠性(这里面门道不少);
3、HTTP、HTTP1.1、HTTP2.0、HTTPS(大把时间);
4、TCP三次握手和四次挥手(面了这么多,这个一次都没问到)
以上内容可能还有欠缺,容我再想想再补充,年纪大了记性不好了
总之,大家面试的时候尽可能的把面试官当成自己的朋友,你在和他/她讨论问题(面试我的所有面试官都非常不错,嘻嘻),不要紧张,面试就是一个状态问题,会就大大方方的阐述,不会先联想,看看有没有相关的,没听过的知识点就直接说不会,不要乱说,胡说。
上面我写的面经比较泛泛,有兴趣的同学可以私聊,让我看看哪些小伙伴也是情怀党,hhhhhhhh
对了,大家在复习的时候,一定要做笔记(很很很很很重要),之后我会把自己的笔记整理好,放在博客和github上。
就这样,溜了,各位!
全部评论
(0) 回帖