字节客户端开发面试一面
开场先自我介绍,基本上没问项目,问了安卓四大组件、还有一个知识点我不会,完全没见过。问了activity生命周期。
操作系统:
进程和线程的区别
堆栈的区别
lru算法
计算机网络:
https安全相关
get post put相关
数据库 问了一些关键字 以及其他的 讲了讲索引
问了对设计模式了解多少 讲了写过的观察者模式
java相关:
问了垃圾回收机制
对jvm的了解
常用的锁
hashmap的底层实现
什么是哈希碰撞
hashmap查找元素的时间复杂度 我说一般是o1 说考虑极端的情况是多少 我说如果是碰撞小于等于8 o(n),变成红黑树是lgn
还有的忘记了 我感觉都比较基础 不过问的很多很广
手撕:
比较奇怪吧,没有让我做题,就让写了一些比较简单的东西 树啊链表这些不用自己实现 假装已经有了
1. 二叉树前序遍历,一开始用了递归,说不用递归怎么实现 不太记得了 提示了一下用栈 后来想起来要先压右子树
2.手写二分查找 问了复杂度
3.手写判断单链表有没有环 写的是快慢指针版本 问了时间空间复杂度 问还有没有别的算法 说了一个很朴素的用hashset存节点,然后判断next存没存过的想法
最后还问了一下怎么写一个可维护性和可读性高的代码
没有反问环节,说大概了解了我的情况,50分钟结束面试流程