小米 Android 秋招面经
一面 70min
int和Integer的区别
面向对象的三大特性,对多态对理解
什么是内部类,内部类的类型
静态内部类
静态内部类中如何引用外部类的对象
java四大引用
抽象类和接口的区别
静态属性和静态方法能不能被继承和重写
进程和线程的区别
Android进程间通信
java常用数据结构
堆和栈的区别,那些数据是放在堆里面的
深拷贝和浅拷贝
GC
SharedPreferences可以用于跨进程通信吗
Service启动方式,Activity与Service通信如何启动
内存泄漏与OOM
线程如何关闭,线程没执行完如何关闭
Android动画,属性动画怎么用的
如何实现的自定义折线图
kotlin与java的区别
handler机制
算法
合并两个无序数组;例如:[3,2,1],[6,5,4]合并为[1,2,3,4,5,6]
二面 80min
实习最大的收获
实习学到的架构的优点
实习过程中碰到的难点
混合开发了解吗
jvm类加载过程
多线程并发如何处理
sleep和wait的区别
反射的使用场景
反射的缺点
Error和Exception的区别
jetpack出现的原因
SharedPreferences的缺陷
Sp是线程安全的吗
事件分发机制
gc垃圾回收机制
livedata和rxjava的相同点和不同点
Android跨进程通信
startService与bindService的区别
bindService与ContentProvider跨进程通信的区别
熟悉的设计模式
MVC,MVP,MVVM
手写快排
生产者消费者方式
HashMap原理
算法
给定一个只包括'(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
1、左括号必须用相同类型的右括号闭合。 2、左括号必须以正确的顺序闭合。
感觉答得还行,挂了还是挺难受的,现在想来没通过的原因应该是知识点理解的深度不够,然后算法也没写好吧。