自我介绍
了解美团吗,答外卖。
为什么学android,怎么学的。
为什么用kotlin,kotlin比java有什么好处,答了空安全和协程,写法简单。
死锁的产生条件,写一个死锁,synchronized的底层实现,答不知道,只知道是JVM实现的(查了一下是monitor)。
除了synchronized还知道哪些锁,答ReentrantLock,扯了一下乐观锁悲观锁,代替object的wait,notify等,其他的锁就不了解了。
讲一下hashmap,懂多少讲多少,我就讲了一下1.8的hashmap,讲了重新hash,数组+链表,扩容,链表转红黑树,讲完也没继续问。
hashmap线程安全不安全,我答了不安全,要用ConcurrentHashMap,问里面是怎么实现线程安全的,回答不是很了解,知道里面是在进行操作的时候才加锁,不是hashtable那种方法直接加锁。
问了简历上github链接的项目,我说是一个包装log的工具类,用kotlin dsl写的,也没多问,感觉面试官不是很了解kotlin
问了具体项目,里面遇到的最大的问题是什么,回答了使用paging分页加载,解决页眉页脚只在加载中显示的问题,比如实现到底了和加载错误点击重试这两个的显示。
activity的生命周期,讲到onSaveInstanceState和onRestoreInstanceState,问是不是总是成对出现,答不一定,但是没讲清楚。讲到onSaveInstanceState和onRestoreInstanceState是用来保存恢复数据的,扯了一下viewmodel也可以用来做这个,还可以用来做fragment通信,不再需要用intent。
activity的启动模式,答一开始四种,Android11加了第五种singleInstancePerTask,详细讲了standard和onSingleTop,讲了复用的时候会走onNewIntent回调,其他三个只讲了任务栈中的特点,没有讲具体使用的例子。
手撕合并两个有序链表,简单题,但是我昨晚面试官也没说写对了没,直接就说结束了。
反问
这个岗位主要做什么,答支付交易这些,比如点外卖的下单这种。
对写这种有经验要求吗,答没有。
问我表现怎么样,面试官说挺好的,不知道是不是都这么说。