4/6 一面:
- 自我介绍
- 项目介绍(怎么学习项目的?)
- 项目中怎么实现单页面多状态的?
- 手机上有哪些存储方式?
- SharedPreferences,这几种存储方式之前的区别?
- MVP模式?(这一定要说的比较清晰。)
- 滑动事件处理?
- Activity与Service的区别以及Service的生命周期?
- Fragment与Activity之间的通信。为啥不直接使用set这些进行参数传递
- Handler机制?(threadLoacl)怎么进行延时发送的。
- == 和 equals ?hashCode()
- Hashmap 是不是线程安全的?线程安全的有?
- Java的四大引用?
- 算法题:两个View的第一个公共父View,每一个view有一个获取父结点的方法。
- 给看了一段代码:问程序运行的结果是多少? 其中也问了怎么才能运行出正确结果呢,以及给 i 加上voltaile 关键字有用吗?
public class Main {
public static void main(String[] args) throws InterruptedException {
CountDownLatch countDownLatch = new CountDownLatch(10);
TestThread testThread = new TestThread(countDownLatch);
for(int i=0;i<10;i++){
new Thread(testThread).start();
}
countDownLatch.await();
System.out.println(testThread.i);
}
}
public class TestThread implements Runnable {
int i = 0;
CountDownLatch countDownLatch = null;
public TestThread(CountDownLatch countDownLatch) {
this.countDownLatch = countDownLatch;
}
@Override
public void run() {
for (int j = 0; j < 1000; j++) {
i++;
}
countDownLatch.countDown();
}
}
快手二面 4/7
- 自我介绍
- 项目介绍
- 重写和重载的区别?
- 类和接口?说得不太好,面试官说他感觉你在背书
- 四大引用?
- 几个访问修饰符?(使一个类不能继承的方法有?)
- View的事件传递?
- SharedPreferences 的 apply 与 commit?
- LRU缓存?(GLide中的缓存)
- Retrofit 使用了那些设计模式?
- 底部导航栏的实现?
- 打包流程?
- 了解反编译吗?
- Activity 与 Activity之间的通信?
- 编程题:怎么实现双击事件?
- 算法题:实现一个快速排序?