6月19号上午11点左右接到了阅文集团的面试通知,然后因为在考试,所以小姐姐把时间调整到了下午2点半
一面,6.19 14:30 时长:18min
1.自我介绍(大概1分钟左右)
2.看了你自己的项目介绍,是自己一个人完成的还是多人合作完成的(独立完成)
3.String StringBuilder StringBuffer的区别,(从线程安全上,以及是否创建新的String对象)
4.用过listView和recyclerview吗?有什么优化的地方(listview的getView方法中复用contentView,RecyclerView避免重复创建点击事件,布局优化)。
5.能和我讲讲RecyclerView是如何复用itemView的吗?
6.看到你的简历里写了自己实现的图片加载框架,能和我讲一下具体架构吗?(多种设计模式的结合,单例模式,责任链模式,观察者模式(lifecycle)等)
6.用过MMKV吗?(没听说过)
7.简单说一下activity的生命周期、按home键返回桌面后再次进入生命周期是什么样的?
8.知道HashMap吗?底层数据结构是什么样的,线程安全吗?官方是如何解决的?还有更好的替代方法吗?(其实就是HashMap,HashTable,ConcurrentHashMap三者的区别以及优缺点)
9.上述三个数据结构的底层是如何实现的呢?你用的jdk版本是什么?(我回答jdk版本用的1.8以后的)
到此一面结束了,然后面试官问我还有没有什么问题
我说我想听一下这次面试的结果
面试官笑了一下:“你在同级的面试这种算比较好的了,基础比较牢固,我这里算是通过了,我就先提交上去,过一会儿有下次面试的通知”
然后我还问了有没有导师或者同事带,然后问了一些关于公司周围的环境等问题。
二面 6.19 15:30 时长25min
面试官是一个东北口音的大哥,声音贼好听
1.有一个方法,实现的是整形的数字相加 int fun(int a,int b);请简述一下方法的执行过程。(从主存中读取a,b到cpu寄存器中,然后计算a+b,最后将结果返回给调用点)ps:感觉回答的不是很好
2.看简历你对设计模式比较熟悉,单例模式你知道有哪些吗?(双重校验,枚举,饿汉,懒汉)、双重校验需要注意什么?(volatile关键字,只保证可见性,不保证原子性,禁止指令重排等)
3. Integer a = 3;
Integer b = Integer.valueOf(3);
a == b ?
a.equals(b) ?
两个都是true,首先在常量池中会默认创建-128 - 127的数字的包装类对象,当创建的数字对象在此区间,那么直接从常量池中传递引用到变量,所以两次比较的结果都是相同的
4.看过哪些开源框架的源码(okhttp,glide)
5.tcp三次握手,四次挥手连接建立与断开的过程,为什么挥手过程是4次?
6.Http与Https的区别是什么?
7.进程与线程的区别是什么?两者怎么分别进行通信?(进程间通信contentprovider,广播,sharedpreference,aidl, messenger;线程间通信一般通过handler)
8.看你说到了广播,那么广播有那些类型呢?(LocalBroadcast,全局广播)
全部评论
(3) 回帖