# 字节跳动
💣 过程简述
字节跳动的面试官问的问题相对基础。但当时英国疫情爆发,我忙着搬家,没有开始准备面试,所以回答地非常差。也对不起面试官的耐心提问。所以,总的来说,面试之前一定要好好准备,直接提枪上阵还是有难度的。
算法题:
输入一维数组 array 和 n,找出和值为 n 的任意两个元素。例如:
array = [2, 3, 1, 10, 4, 30]
n = 31
则结果应该输出 1, 30 顺序不重要
如果有多个满足条件的,返回任意一对即可。要求空间复杂度为。
自我介绍
公司负责了哪些工作?怎么重构的?
MVP 和 MVC 的区别?Model 层的作用呢?
UI 界面有哪些布局?
约束布局与相对布局有什么不同?
线性布局:如果有两个控件,一个宽度固定,一个宽度不固定,怎么让它们横向充满整个父布局?
RecyclerView 有 100 个 item,怎么让它们显示出来还不会内存泄漏?怎么直接跳转到第 53 个 item?
分页显示。
第一种:「能够实现指定位置处于屏幕顶部,但是不具有平滑滚动的视觉效果」。即使用
scrollToPosition()
的方法。if (position != -1) { mRecycleview.scrollToPosition(position); LinearLayoutManager mLayoutManager = (LinearLayoutManager) mRecycleview.getLayoutManager(); mLayoutManager.scrollToPositionWithOffset(position, 0); }
第二种:「能够实现指定位置处于屏幕顶部,具有平滑滚动视觉的效果」。
- 如果跳转位置在第一个可见位置之前,就用
smoothScrollToPosition()
方法就可以直接跳转; - 如果跳转位置在第一个可见项之后,最后一个可见项之前,就需要用
smoothScrollBy
来滑动到指定位置; - 如果要跳转的位置在最后可见项之后,则先调用
smoothScrollToPosition()
将跳转的位置滚动到可见位置,再addOnScrollListener()
里通过onScrollStateChanged()
控制,调用smoothMoveToPosition()
再次执行判断。
- 如果跳转位置在第一个可见位置之前,就用
Handler 的消息传递机制
Activity 的生命周期?启动方式?
从 Activity A 跳转到 Activity B,两个 Activity 的生命周期?
Service 的启动方式?
Broadcast 的相关知识点?
Java 有哪几种引用?
接触过哪些容器类?HashMap 的原理有了解吗?如果 Hash 值计算相同,会发生哈希碰撞吗?怎么解决?
泛型的原理与使用
http 与 https 的区别
https 是怎么加密的
死锁是什么?死锁的条件
操作系统的进程调度策略有哪些?
FCFS(先来先服务)、优先级、时间片轮转、多级反馈
数据库的索引,主键与事务
数据库的
join()
方法数据库中的
join()
方法是连接,主要作用是根据两个或者多个表中的列之间的关系,获取存在于不同表中的数据,有全连接、内连接、外连接等。