字节客户端暑期实习一面面经
字节一面总体来说问的比较基础,不会太深究,除了一些项目相关的内容。。一般都是说个大概就行
- java容器有哪些
- hashmap底层原理(必考)
- hash值的计算(不知道为啥我说高16和低16位异或面试官有点犹疑的亚子。。)
- 为什么要重写equals和hashcode (我说提高比较的效率)
- 插入的时候会发生啥(直接插值,链表,红黑树,忘记说扩容了不过也没问)
-
- 扯到红黑树特性(就知道什么黑节点层数一样。扯了查找树的特性,试图糊弄)
- 网页中输入一个网址会发生啥(DNS,http,tcp,ip。。。)
- DNS流程是怎样的(迭代和递归询问,忘说先查本地缓存了,没细究)
- TCP三次握手四次挥手,为什么,和UDP的区别
- handler机制
- looper,message,handler,queue
- handler内存泄漏,内存泄漏的引用链是啥?(looper—>messagequeue->message->handler,所以如果队列为空就不会泄露)
- 扯到了对象池(Message类维护,每个message有next指针)
- 怎么解决内存泄漏(声明static,弱引用包裹)
-
- Recyclerview缓存机制
- 四级缓存
- attachedScrap:还在页面的viewholder
- changedScrap:与view分离的viewholder
- cacheView:刚移出屏幕的缓存,可直接复用
- ViewCacheExtension:自己定义
- RecycledViewPool:超出cachedView的viewHold,数据被清空要重新设置
-
-
- fragment生命周期
- 大概说了跟activity对应的流程,(方法名饶了我吧)
- 说了怎么替换fragment,怎么用fragmentmanager
- fragment结束的时候回调什么?(母鸡)
-
- binder机制(跳过)
- 算法题:找树中有没有和为特定值的路径,返回boolean,看错条件被提醒两次。。(人傻了当时)