腾讯Android开发面试记录

**Q9:**TCP协议如何进行优化?
**A:**滑动窗口、延迟回复、捎带回复等。

**Q10:**进程和线程的区别是什么?
**A:**进程是资源分配的最小单位,线程是任务调度的最小单位。

**Q11:**你主要用Java还是Kotlin?
**A:**前面用Java,C公司的APP编写用了Kotlin。

**Q12:**了解类加载的过程吗?
**A:**不知道 o(╥﹏╥)o(回去默默复习)

**Q13:**觉得Kotlin比Java的优势在哪?
**A:**链式调用对程序员非常友好。

**Q14:**做个题,有一个大文件里面有10亿个整数数字,乱序且不同,找到中位值?
**A:**乱答了一通,说不想排序 balabala说了一堆废话,宛如一个智障。

**Q15:**你的家乡和学校都在北方,为什么要来深圳啊?
**A:**我喜欢有海的城市
**Q:**喜欢…海… 行

**Q16:**你有什么要问我的问题吗?
**A:**请问您是什么业务组的?
**Q:**xx业务组。还有其他问题吗?
**A:**请问一下最后一个找中位数的题,您有什么比较好的方法呢?
**Q:**我一般不在面试时做回答。
**A:**好的,没有问题了,谢谢。

###3.25 19:40 二轮面试 - 视频面 ,40分钟
(3.25 9:15 打电话确认时间

我真的是,差点自己错过面试机会。面试通知是通过微信公众号的方式推送给我的,在这里面并没有面试链接,我以为到时间会再有推送,结果什么都没有。19:45面试官给我打电话,问我为什么没有进入考场,我说我不知道地址在哪。o(╥﹏╥)o被自己蠢哭了。面试官说那就用qq视频吧,然后开了一个qq共享文档。其实会在邮箱里面有面试地址,请留意。

**Q1:**写一段会造成死锁的代码。
**A:**写。

**Q2:**写一个重排列的算法,返回一个与输入最接近的、并且比它大的结果,没有就返回-1,输入为字符串,输出为整型。如输入“1234”,应返回1243,输入“4321”,返回-1。
**A:**写。
**Q:**从代码健壮性的角度,会不会有什么异常。
**A:**String转Int,substring等。

**Q3:**想一个问题,假如有一个表情库,每个表情都有名字(字符串表示),用户每次输入需要与库中某一表情名字完全匹配才向服务器请求相应的表情。如何存储这个表情名字库?
**A:**我比较想用一个数组存每个字的笔画数,匹配的上,再匹配两个String是否相等。
**Q:**为什么不用HashMap呢?是怕有陷阱吗?
**A:**啊,不是。我没想到HashMap。
Q:(笑)那你想想能不能用HashMap呢?
**A:**如果多线程可能会有线程不安全的问题。
**Q:**如果确定是在单线程呢?
**A:**应该可以。
**Q:**那它的内存占用情况是怎样的?
**A:**要量化到具体单位这种吗?
**Q:**不用,就是可能引起怎样的内存问题?
**A:**可能刚超过一点,内存就要翻倍。
**Q:**怎么优化呢?
**A:**优化哈希碰撞的算法,提高载入因子。
**Q:**还有什么呢?存储的名字怎么优化呢?
**A:**想了一会没想出来,encode处理?
Q:其实常用的就那么些字,Unicode编码范围很广,我们可以对常用的汉字进行重新编码存储。

**Q4:**还有什么要问我的问题吗?
**A:**没有了。谢谢,辛苦了。

###3.26 19:30 三轮面试 - 视频面,2小时… …
(没有电话确认,3.26 14:18 直接公众号推送

19:40面试官还没有进来,给总部打电话确认,刚接通面试官就进来了,说刚才有点事耽搁了,表示抱歉,就开始面试了。

**Q1:**简单介绍一下你做过的项目吧。
**A:**介绍。
**Q:**你上一个公司在深圳也有分部啊,你实习那么久了怎么没有留下来。
**A:**在上一个公司收获真的非常多,但还是想试试。
**Q:**行吧,就是想试试看是吧,好,先开始吧。

**Q2Q3Q4:**与一面Q3、Q6、Q7类似
**A:**回答也类似
但被微怼
你这个网上都能查到资料
这个网上没说,但官方文档里面总有吧?
为什么要用微信资源压缩?gradle配置里面不是有自带的吗?
图片压缩有具体的标准吗?你那些不都是经验值吗?

**Q5:**图片缓存怎么做?
**A:**三级缓存。(具体的三级说了一下)

**Q6:**内存级别缓存多少比较合适?
**A:**几十兆?
**Q:**为什么?不同手机这个值一样吗?
**A:**不一样。又是经验值。o(╥﹏╥)o

**Q7:**每个线程都可以创建Handler吗?
**A:**主线程可以直接创建,子线程要先创建Looper。
**Q:**Looper是干什么的?
**A:**从MessageQueue里面循环取消息,交给Handler进行处理的。
(这是唯一一个答完没有被怼的题啊,我一个暴哭)

**Q8:**了解常用设计模式吗?
**A:**常用的就是Builder、单例和Adapter。
**Q:**什么时候用Builder?好处是什么?
**A:**构造参数特别多、又非必须的时候,提升代码友好度。
**Q:**Adapter怎么用的?
**A:**常用的是数据的处理,还有平时的RecyclerView里面也用到了这个模式。

**Q9:**有什么我没问到的,但你觉得挺有挑战的事吗?
**A:**apk瘦身那次,我本来什么都不懂,后来慢慢学习,(强调自己很刻苦balabala的)终于完成了。
**Q:**这也没什么啊(小声嘟囔)
A:(⊙x⊙;) 行

**Q10:**写一个题,牛客网的环境。小明发现了一个自增数组,就是说每次操作能让数组中的一个元素+1,问至少操作多少次,可以让数组中的每个元素不一样?输入为两行,第一行代表数组长度,第二行代表数组中每个元素的值。数组中值的范围为-10000<=X<=10000。
如输入
5
1 2 3 2 5
应输出
2
**A:**思路是先排序,遇到与前一个数字一样的,边+1边后移,找到第一个大于该值的就插入,期间的元素依次左移。
**Q:**行,写吧。
**A:**有的用例对,有的不对。
找bug,面试官跟着一起找。
**Q:**其实没必要排序,可以用HashMap做。你还要把你的代码写完吗?
写,找bug,改,还是没出来。。。
**A:**我可以试试您说的方法吗?
**Q:**想清楚就可以写。
**A:**写。
运行,对了。
**Q:**行吧,其实输入格式还有点问题,但时间差不多了,回去多写写代码吧。可能也是这个环境没法调试,所以改起来不好改。
**A:**好

**Q11:**你现在是在北京上学吗?为什么要来深圳?
**A:**是我和我男朋友讨论之后共同决定的。
**Q:**哦,男朋友在这边是吗,行吧。那今天先到这里吧。
**A:**好的,谢谢,再见。

###3.29 18:27 HR面 - 电话面,15分钟
(没有电话确认,没有公众号推送

那天北京风嗷嗷的刮,我走在学校主干道上。

**HR:**自我介绍了之后问,现在方便吗?
**A:**方便。

**HR:**可以做个自我介绍吗?包括教育经历、校园经历、实习经历、参加大赛情况和家庭情况。
**A:**好的。
(刚说两句… 大风还是嗖嗖的)

**HR:**同学,你那边有点吵。
**A:**不好意思,我这边风确实有点大。我马上就走到实验室了,您可以10分钟之后打来吗?

**HR:**好的,稍后联系。
(15分钟后,电话再次响起)

写在最后

由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~

将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。

提升架构认知不是一蹴而就的,它离不开刻意学习和思考。

**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。

最近还在整理并复习一些Android基础知识点,有问题希望大家够指出,谢谢。

希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!

转发+点赞+关注,第一时间获取最新知识点

Android架构师之路很漫长,一起共勉吧!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值