面经详情
匿名用户
面试了职位:Android
未通过
准备不足,二面未过,待来日再战
由于距离问题,面试全部走的视频面试。这里需要提醒下大家,视频面试也需要写算法题,一定要先去适应下编程环境,不然会很奇怪。一面主要的问题比较的基础,好好准备一下都没问题。二面的问题还是基础居多,比较需要注意的是要多过往项目有深入的了解,基本都会问到,这个很重要。
Q:一面主要的问题是: 1. Handler、Looper的工作原理,然后会深入其实现原理。比如Loop为何不会阻塞,无消息阻塞为何不会卡顿。Looper如何被唤醒。 2. HashMap实现原理,hash冲突,红黑树时间复杂度,如何扩容。 3. 序列化和反序列化的方式,及其特点,实现原理。 4. 排序算法和其复杂度(无序数列,取其第k大的数) 二面的问题: 1. 界面有个button,点击时会有什么事情发生。深入事件分发的过程,包括cancel事件出现的时机和处理过程。 2. 二分查找法。 3. https的过程。 4. 网络优化。 5. 项目当中遇到的最困难的问题。
1条回答
2轮
hashmap
二面
相关推荐
匿名用户
Android
感觉靠谱
总体下来觉得面试官都挺好的 共三轮面试的问题基本上每一轮都是算法+基础知识算法的话我记得的有反转链表 树相关 矩形看重合 二维数组找target 还有一个没答上来的和10进制有关的算法 每道题都会有些follow up基础的话啥都有 tcp http 线程 深拷贝等等 都是各种基础 又多又杂 我也是看了很多面经 准备了几十页的资料目前还在等三面的消息 但是三面的确发挥得不太好 希望能有好结果
...查看更多
2 年前 发布
1
匿名用户
Android
感觉没戏
一共面了四轮技术面啊 节后才知道有没有通过 问了下网上大部分说加面的场景比较糟糕 现在内心方的一逼 面试内容主要是根据我的简历开始提问啊 我大概总结下问题 1.你们项目使用了热修复 那么你有了解过热修复的原理吗 这个之前用的时候有研究过 所以基本踩点踩到了 具体可以看下百度 2.运行时删除项目的多余的资源文件 是否影响项目运行 提成成r文件内指向的数字是否影响可以参考下网上关于arsc的资料来回答这个问题 3.项目apk瘦身 百度很多 不说了 4.你们项目内使用的jsbridge是如何实现的 有没有其他方式 客户端如何调用前端 有几个方法 如何优化下你们的混合开发我们项目是javascriptinterface方式实现的 url也可以实现 如果有任何能传输的路径都可以实现这个 客户端回调是用加载url的方式或者webview后续提供了一个方法 最后一个你们可以百度 我前几天查了下资料 提早初始化webview 5.图片库选型原因 以及原理 基础问题 6.我们项目安卓路由库如何实现的 进度如何 个人项目我就不说了 7.我们项目自动化埋点的实现 以及问题探讨 同上 8. Diffutils recyclerview优化 我个人看法优化主要想问recyclerviewpool这个东西项目内有没有共享 如何实现的 9.安卓基础姿势 handler原理 activity启动流程 ams applicationthread activitythread (这个问题我回答的比较糟糕) bitmap 565 8888之间的差异 (我也没答到点上) 10.我就问了两道算法题 easy难度 合并有序链表 合并n个有序链表并输出最小的n个数 11.网络层优化问题 httpdns使用场景 一些关于api请求数据劫持 校检正确性问题 网络性能优化的问题 除了上面说的 我们项目已经用了http2.0了 所以我就默认场景是这个了 12.推送库设计 我们项目基于不同厂商使用不同的推送通道 问了下咋写的 大概问题就这么多 四面中有问题重复啊 所以我都合并到一起了
...查看更多
2 年前 发布
15
匿名用户
Android
确定通过
一,唠叨一下:先讲一下我的职业生涯哈,不想看的可以直接到最后一段。我是普通二本出身,一直飘在北京,先是做web网站开发,后转到了Android移动端,也没有什么好运气,就靠一点小机智,得过且过混到16年初,靠着移动互联网大浪把我推到了一家二线互联网企业,在这里才算真正重构了自己,感谢当时遇到的同事,以及有可以和公司一起成长的机会,先后经历了完整的插件化和RN重度封装,知道了虚拟机和Android源码的重要,并开始积累。 18年初,由于公司内部重大调整,动荡不安,再加上自觉jvm和framework很溜了,于是开始看机会,寒冬初期也还算是顺利吧,进了一家普通的一线,可是没想到真正的大厂弯弯绕这么多,内斗激烈,效率如此之低,不是嫡系,你不仅少有升职加薪的机会,连好的项目都拿不到,这个时候迷茫了,大厂也算进来了,结果却如此令人失望,再加上看了一些中年危机的文章,更是稀里糊涂了,于是转而研究各种赚钱方式,基金,股票,房产,开店加盟等等吧。直到去年过年回家,跟老家发小聚会,介绍了各自的情况,才明白中国实体经济竟然是那么的糟糕,脏累险,如果轻易踏足,自己这个小白绝对会被人生吞活剥了的。 还得多谢知乎大神们的引导,这时才明白了一点,知识特别是你本专业的知识,才是安身立命之本,是你最好最快的赚钱方法,读了多少年的书中自有黄金屋,这刻才算真正领悟吧,于是用三个月逐渐修补自己最后的短板:开源库和算法,过程中,逐渐拿各细分行业的小独角兽练手,最后一次就搞定了头条,很顺利。以上就是我的唠叨和感慨,进入头条对于很多985研究生毕业的人来说,是件不太难的事情,可是对于普通人来说,还是个梦想,所以我稍微记录一下心路历程,给别人以参考。 二,头条面试流程:简历通过之后,HR会先跟你打个电话确认,然后发个流程邮件。一轮笔试,三轮技术面试,最后是HR面。在这里要聊一下,头条面试确实很有一套风格:笔试题时间大约只有四十分钟,是1个Java题,4个Android题,1个算法,1个设计,都是经典题型,谁都能写上点东西,这个最考验一个人的水平了,从你答题的深度,可以看出你的水平。技术面,每一轮时间都在一个小时左右,而且都有java,Android和算法,只是侧重点不一样,第一轮是笔试题+基础;第二轮是你简历上写的技术点,不断深入问;第三轮主要是聊你曾经做过的项目,会非常细。最后是HR,就是常见的提问,主要是收集你的情况,实话实说即可,不要太偏激就好。 三,关于面试题:头条对于员工的管理是极严格的,这些都是不允许透露的,所以为了不招惹麻烦,我就不能具体说每个题是什么了,实际上除了笔试题,其他说了也没意义,每个面试官都会根据自己的喜好以及你的简历,问出无数种问题,而且技术面足足有三轮,你可以幸运地过一个,不可能连续幸运三次,所以还是好好积累吧。 四,面试准备:首先,一定要先搭建自己的知识体系,再往里面填充各种东西,才能真正掌握,这个填充过程一定要从点滴做起,面试前才去突击是没多大作用的。对于Android工程师来说,这个越来越成熟的岗位,要求是越来越高了,知识体系大约有十个方面:Java基础,Java虚拟机;Android基础,Android源码;开源库,算法;操作系统,计算机网络;软件工程,设计模式。 下面举几个最常见的面试问题吧,Java基础:final finally finalize有什么关系,HashMap原理,编译时注解Java虚拟机:按照问到的可能性是大小,类的加载 > JMM > GC > Java内存分区 > oop-klass > JITAndroid基础:Activity A启动B之后生命周期,onSaveInstance()和onNewIntent()调用时机Android源码:消息机制,View的事件处理机制,View的绘制过程,Activity启动过程开源库:OKHttp,Glide,LeakCanary,RxJava实现原理算法:树的深度和广度优先遍历(非递归),100万个树找最大的100个,快排,堆排序操作系统:进程和线程的区别,多线程的实现方法,异步改同步,生产者消费者模式,手写线程池计算机网络:七层架构,TCP的三次握手四次挥手,https和http的区别。软件工程:类图,时序图,如何设计一个项目(往功能性,健壮性,性能性,时间成本四个纬度上套)。设计模式:面向对象七大原则,手写单例,手写观察者,代理模式。 总之,北京居不易,而选择理工科的朋友,大多都出身普通,希望大家不要忘本,知识才是改变自身命运的唯一路径。蹉跎这么久,我也是最近两年才渐渐明白这个道理,于是借着这个机会,分享给大家。
...查看更多
2 年前 发布
8
匿名用户
Android
未通过
在线面试,有个线上文本编辑器,类似leetcode那种,可以在线编程。然而有点紧张,很多简单的问题没答出来,还是要平时多积累,面试才不露怯啊。分享下问题给大家。1.常用线程池类型和参数,适用场景2.rxjava的flatmap原理3.编码题:7个线程按次序打印1-70(这个没答好太不应该了,我说思路是靠sychronize 一个对象然后wait notify,面试官提示我加锁效率低,结束之后回想起来才意识到应该是想让我答自旋+cas)4.handler的内存泄漏情况,强软弱虚引用,messagqueue原理5.非静态内部类为什么能访问外部类私有变量6.leak canary原理,怎么实现非侵入式回调7.apk签名原理,v1v2v3签名区别8.编码题:反转链表
...查看更多
2 年前 发布
匿名用户
Android
确定通过
Android面试,难度适中,交流氛围良好一面面试官很年轻,感觉人很好,算法题没通过案例测试也没说什么,一直在说写写看,然后可以多调试几次二面面试官年纪稍大一点(其实都挺年轻的,看着相对年龄大一些),非常重视基础和算法效率的感觉三面面试官看着年纪也不大,开始比较严肃,后面聊开了感觉还不错,技术挺全面
...查看更多
2 年前 发布
匿名用户
Android
确定通过
我是1月8号下午两点进行的面试,是一面。之前学校内推给了搜狐的offer,但迟迟没有消息,所以就自己用某招聘软件投简历广撒网。其实一开始我并没有投字节跳动,可能是最近他们太缺人了吧,就给我发了消息让我把简历投过去,之后就安排我面试了。之后第二天上午通知我一面过了,让我准备二面。一面过程感觉很糟糕,很多问题都没答上来,但是还是过了,目前搜集了很多面经,总结了一些常见问题,希望下一次面试表现会好一点。
...查看更多
包含5个问题,5个回答
Q:先让自我介绍,然后问了项目经历,问了一些基本的安卓知识,比如activity,fragment,生命周期等等。
2 年前 发布
3
匿名用户
Android
确定通过
1. 一面: a. 线程池的底层原理 b. 四种引用类型 c. JAVA GC d. Sychornized关键字 e. 静态同步函数 f. 可不可以调用Abstrut 父类的super方法 g. HTTP协议中POST,GET 的区别 h. TCP/IP协议栈 i. TCP和UDP的区别 j. 三次握手是什么?可以两次握手么 k. 进程和线程的区别 l. 手写ViewGroup树结构遍历 2. 二面: a. ArrayList / LinkedList的区别 b. HashMap的底层实现原理 c. 两个线程分别调用同一个类的实例函数和类函数 d. 什么是可见性?举例场景 e. volatile关键字的意义 f. .Class对象 g. 线程结束的方法:Interrupt之后需要做什么 h. Android Activity切换生命周期 i. Activity保存状态的函数 j. 子线程对UI的操作方法 k. 如何在应用程序远程调用中表明用户身份 l. 单例模式、建造者模式、中介模式 m. 手写中位数查找算法 3. 三面: a. 聊聊项目 b. Handler和Looper的底层结构 c. postRunnable方法的底层实现 d. Thread Run和Start的底层调用区别(是否中断陷入) e. BroadCast的使用方法 f. Intent的使用方法 g. Intent-Filter h. 手写外部排序算法
...查看更多
2 年前 发布
2
进入微信小程序
前往微信小程序,查看更多结果
立即前往
看准网
字节跳动
字节跳动面试经验
字节跳动面试经验:准备不足,二面未过,待来日再战
正在招聘
Golang开发工程师
等 200 个岗位
去看看