今日头条2018春招安卓面经
一面:
协变
线程间通信?有几种同步/加锁方式?
进程间通信?答了三个只知道概念的和安卓的AIDL。
又问这“三个”中任选一个阐述原理
hashCode()方法实现
hashCode()方法 equals()方法相互联系?
ActivityA启动ActivityB,两者的生命周期分别是怎样的,是顺序执行的吗?
用过哪些框架,答曰RxJava,Retrofit,Realm,问哪一个熟悉一点?都不太熟……就随便挑了一个OKHttp来问:http请求中keep-alive保存长连接的实现原理是怎样的?
LRUCache原理,如何实现?
手撕代码,股票买入买进最佳时机,LeetCode上原题(有6道变形)
二分查找,写的递归,要求转成循环方式
二面:
内部类和外部类有什么区别?
静态内部类和非静态的有什么区别?
内部类为什么可以访问外部类的变量?
垃圾回收:如果两个变量互相引用是否还会回收它们?为什么?
标记整理算法是怎样的?为什么要前挪整理?
HashMap不是线程安全的,那么用什么替代?(本来是知道的,结果我多问了一句傻话面试官就跳过这个问题了……
(因为项目提到)Realm版本管理?更新表?
CoordinatorLayout与通常的FrameLayout和RelativeLayout相比有什么特点
View的绘制过程
(这次面试电脑麦克风出了问题 在手机面的)草草问了一下跳台阶问题
三面:
(因为项目提到)SurfaceView的特点?了解相关的TextureView吗?
HashMap的结构是怎样的,怎么存value,遇到相同的hash值的key,其value又怎么存。
手撕代码,想第二种解法,想第三种解法;
用快排来解决这个问题,优化,再优化。
#面经##春招##字节跳动#