27届小红书客户端一面面经
面试官是个小姐姐,爱笑,面试氛围比藤子轻松(也可能我准备的更充分了,藤子一面面试官也超级好但是我太菜了整挺尴尬),八股和项目问了35分钟左右,然后开始写算法,算法还是不熟练,开始的思路错了,和面试官讨论了会讨论出正确答案写了下,哎这块还是要加强,算法老是记不住
没录音,纯靠自己记忆;面试完我实习的组拉着开了俩小时需求研讨会导致问的啥几乎忘完了😅
----------------------------------------------------------------------------------------
1.自我介绍
2.看你项目中用了mvvm架构,能讲讲为什么要用这个吗 -- 围绕mvc,mvvm将了区别和联系,顺带将了下mvp
2.最近还有种架构是mvi了解过吗 -- 不了解
2.看你项目中用了多线程处理网络请求,handler如何使用 -- 吟唱message,messagequeue,looper,handler的原理
补:翻转屏幕过程中activity会经历从创建到销毁的过程,viewmodel是如何解决
3.能用kotlin协程和viewmodel实现吗 -- 有记忆,小唱
4.安卓应用从点击到运行之间的过程是怎样的 -- 之前看过忘了
5.浏览器输入网址后的一系列流程是怎样的
补:如果是https协议,这个过程可能有哪些改变 -- 在tcp三次握手前先进行ttl/tsl四次安全加密,还有端口从80变443?面试官哈哈一笑。。
6.kotlin和java的类加载机制有什么区别 -- 回答了java的类加载机制,猜测kotlin和java类似
7.垃圾回收相关的知识了解吗 -- 这次把垃圾回收算法讲明白了,还讲了垃圾回收器
8.讲讲kotlin/java中的引用类型 -- 强,软,弱,虚以及对应的应用场景讲了下
9.讲讲堆 -- 堆存放各线程和类的共享变量,常量,静态方法
10.内存结构 -- 堆,本地方法栈,虚拟机栈,方法区(元数据区),程序计数器
11.static加在方法和类上的区别(?好像是这个意思当时理解错了,回答估计也不对,面试官还好心把正确答案给我讲讲)
补,看别人面经发现问的就是这个:如果一个方法加上synchronized的修饰,一个静态方法加synchronized 有什么区别?
12.讲下sychronized -- 优化前重量级锁,优化后会进行锁升级,偏向锁,轻量级锁(cas),重量级锁(阻塞)
补充:java中的反射了解吗 -- 了解应用场景,原理是通过class字节码强行访问私有成员或方法,由于没用过所以了解比较浅
13.hashmap的底层实现 -- 刚开始没反应过来,说是map,她哈哈一笑,我突然想起来是链表加红黑树,赶紧弥补;说起来她一说hashmap我就一直等他问concurrentHashmap结果就是不问气死我了
14.如何解决hash冲突 -- 学校数据结构课讲的是偏移量,按照偏移到无冲突地方学校那一套心里没啥底的讲了下
15.如果有十个数据你会用arraylist存还是hashmap存 -- 没思考直接说arraylist,想了下说应该看具体什么数据,如果是键值对有联系需要根据key找value的就map,否则arraylist,数组的查找快性能开销低
16.hashmap的扩容机制 -- 扩容因子?没咋了解过按照分布式id号段模式和arraylist扩容作类比猜测和他们扩容方式一样,都是达到一定比例自动再申请一段空间
算法:对称二叉树
反问:1.业务
2.个人发展方向
3.团队有用flutter或rn吗,还是安卓原生开发
大体就想起来这么多,纯靠记忆间隔五小时后回忆起的一些问题,后续想起来啥再补充
没录音,纯靠自己记忆;面试完我实习的组拉着开了俩小时需求研讨会导致问的啥几乎忘完了😅
----------------------------------------------------------------------------------------
1.自我介绍
2.看你项目中用了mvvm架构,能讲讲为什么要用这个吗 -- 围绕mvc,mvvm将了区别和联系,顺带将了下mvp
2.最近还有种架构是mvi了解过吗 -- 不了解
2.看你项目中用了多线程处理网络请求,handler如何使用 -- 吟唱message,messagequeue,looper,handler的原理
补:翻转屏幕过程中activity会经历从创建到销毁的过程,viewmodel是如何解决
3.能用kotlin协程和viewmodel实现吗 -- 有记忆,小唱
4.安卓应用从点击到运行之间的过程是怎样的 -- 之前看过忘了
5.浏览器输入网址后的一系列流程是怎样的
补:如果是https协议,这个过程可能有哪些改变 -- 在tcp三次握手前先进行ttl/tsl四次安全加密,还有端口从80变443?面试官哈哈一笑。。
6.kotlin和java的类加载机制有什么区别 -- 回答了java的类加载机制,猜测kotlin和java类似
7.垃圾回收相关的知识了解吗 -- 这次把垃圾回收算法讲明白了,还讲了垃圾回收器
8.讲讲kotlin/java中的引用类型 -- 强,软,弱,虚以及对应的应用场景讲了下
9.讲讲堆 -- 堆存放各线程和类的共享变量,常量,静态方法
10.内存结构 -- 堆,本地方法栈,虚拟机栈,方法区(元数据区),程序计数器
11.static加在方法和类上的区别(?好像是这个意思当时理解错了,回答估计也不对,面试官还好心把正确答案给我讲讲)
补,看别人面经发现问的就是这个:如果一个方法加上synchronized的修饰,一个静态方法加synchronized 有什么区别?
12.讲下sychronized -- 优化前重量级锁,优化后会进行锁升级,偏向锁,轻量级锁(cas),重量级锁(阻塞)
补充:java中的反射了解吗 -- 了解应用场景,原理是通过class字节码强行访问私有成员或方法,由于没用过所以了解比较浅
13.hashmap的底层实现 -- 刚开始没反应过来,说是map,她哈哈一笑,我突然想起来是链表加红黑树,赶紧弥补;说起来她一说hashmap我就一直等他问concurrentHashmap结果就是不问气死我了
14.如何解决hash冲突 -- 学校数据结构课讲的是偏移量,按照偏移到无冲突地方学校那一套心里没啥底的讲了下
15.如果有十个数据你会用arraylist存还是hashmap存 -- 没思考直接说arraylist,想了下说应该看具体什么数据,如果是键值对有联系需要根据key找value的就map,否则arraylist,数组的查找快性能开销低
16.hashmap的扩容机制 -- 扩容因子?没咋了解过按照分布式id号段模式和arraylist扩容作类比猜测和他们扩容方式一样,都是达到一定比例自动再申请一段空间
算法:对称二叉树
反问:1.业务
2.个人发展方向
3.团队有用flutter或rn吗,还是安卓原生开发
大体就想起来这么多,纯靠记忆间隔五小时后回忆起的一些问题,后续想起来啥再补充
全部评论
相关推荐
点赞 评论 收藏
分享