腾讯移动端面经

一面(1h):

1. 谈谈你学习过的架构模式 MVC MVP MVVM

2. 一个Union类型,共有一个int类型、Float、Double类型的字段,请问在32位的CPU创建时需要占用多少字节?

3. Union和Struct的区别

4. 谈谈你所了解的C语言的内存管理

5. 说说你了解的程序设计模式,知道多少说多少

6. 说说TCP和UDP的区别,你认为QQ的实现是使用TCP还是UDP?

7. 谈谈你了解的C语言的编译过程

8 . 进程和线程的区别

9. 谈谈你对Viper架构模式的了解

10. Fiddler的工作原理解释一下

11. 死锁产生的原因以及解决办法

12. 进程的调度算法有哪些,分别解释一下?

13. Android程序共享数据的方式有哪些?

14. Android的性能优化

15. Handler和HandlerThread的区别

16. 八皇后问题了解过吗?具体怎么实现的?

17. 解释一下异步编程,说说它的应用

18. Android应用的启动过程


二面(40Min):

1.  多线程了解吗?

2. 多线程如何实现通信?

3. 多线程如何实现线程安全?

4. 多线程如何实现同步机制?

5. 进程间的通信方式?

6. 谈谈你对架构模式和设计模式的理解。

7. 现在让你设计一个字典,说一下你的设计思路。

三面(3.5h):

1. 请你画出MVP架构图,并解释一遍它的运作流程。比如网络操作

2. 解释一下页面展示数据获取的数据来源。

3. 多线程会导致什么问题,应该怎么解决?

4. Android进程的优先级是怎样的?

5. 说一下Activity的生命周期

6. onStar和onResume方法的区别是什么?什么时候用onStart,什么时候用onResume.

7. 说一下冒泡排序和选择排序的区别?

8. 冒泡排序最优的时间复杂度?

9. 一棵没有特定顺序的二叉树,如何存放在文件中?

10. 手写代码,给一个int的数组,将其移动k位(使用交换的思想)。如array = [1,2,3,4,5], k = 2, 则移动后的array为[4,5,1,2,3]

11. 设计QQ传文件功能,并画出模块设计图。

12. 说一下防火墙穿越的实现原理

13. 加密算法和加密原理

14. Https实现原理

15. 手写代码,无限大整数转16进制

16. 讲解一下登陆时密码加密过程

17. 推理题

宴会上,人们都带着白色或者黑色帽子,其中至少有一个人带黑色帽子,每个人都能看到别人帽子的颜色,看不到自己帽子的颜色。假设每个人都足够聪明,如果在熄灯的时候你觉得你自己带了黑色帽子,就鼓掌。第一次没人鼓掌,第二次没人鼓掌,第三次有人鼓掌。请问有多少个人带了黑色帽子。

Hr面(20Min)
1.自我介绍
2. 你认为你身上最显著的三大特征是什么?
3. 产品、薪资、个人发展、平台、地域等等  选择你认为最重要的三个?并解释为什么?
4.你除了腾讯还有面试别的公司吗?为什么选择腾讯?
5.家住哪,倾向在哪个城市工作?
6.介绍一下你的社团活动经历,说说印象最深刻的一次。
7.说说你的实习经历
8.你对待加班的看法。
9.说一说你接触过腾讯哪些产品,并说说他们的特点。
10.你如何看待腾讯、百度、阿里巴巴这些公司
#腾讯##面经##安卓工程师##秋招##内推#
全部评论
大佬牛逼
点赞 回复 分享
发布于 2019-02-27 23:21
大佬基本可以获得offer?
点赞 回复 分享
发布于 2018-08-09 16:25
楼主好厉害啊 
点赞 回复 分享
发布于 2018-08-09 16:23
楼主Android还是ios
点赞 回复 分享
发布于 2018-08-09 15:58
问下,二面到三面大概你有多久呢,我昨天面完的二面
点赞 回复 分享
发布于 2018-08-09 15:16
大佬牛逼啊,另外从三面到hr面等了多久啊
点赞 回复 分享
发布于 2018-08-08 16:31
大佬到HR面了吗
点赞 回复 分享
发布于 2018-08-08 16:19
大佬好6,哪个部门?
点赞 回复 分享
发布于 2018-08-08 16:08
3.5小时,这么恐怖?
点赞 回复 分享
发布于 2018-08-08 16:03

相关推荐

05-11 22:04
门头沟学院 Java
前面就是基本上是八股盛宴,然后看你说什么词触发他被动然后追着问。复盘的时候确实发现底层网络和操作系统问得挺细的,可能客户端偏底层?总体来说面得挺舒服的,面试官也很友善,一个小时很快就过去了。提问环节:1. 自我介绍2. 面试官强调这是客户端面试 说明一下base地,进来要转cpp3. 了解cpp吗?不了解,对于两者的理解我认为最大的不同在于内存管理,cpp可以灵活地控制内存,提高程序运行效率。Java通过jvm来进行内存管理,好处是系统自动分配内存和垃圾回收,安全简单,缺点就是不能更颗粒度地操作内存。还有就是cpp的学习曲线比较陡峭,其他的就不太清楚了。4. Java集合有哪几种?ArrayList,Linkedlist,HashSet,hashmap,ConcurrentHashMap5. ArrayList和LinkedList有什么区别?底层实现,读写应用场景,6. 具体到每一个节点上,他们两在内存占用上哪个更优?ArrayList底层是连续内存的动态数组,利用了计算机的局部最优特性,所以更优一些7. 什么是反射?通过类名在程序运行时构建类实例,操作类方法,类字段,增强编码的灵活性和解耦,但是也存在着安全的隐患8. JVM是如何反射构建类对象的?通过方法区中存放的类信息,字段和方法,去构建类对象实例9. 讲一下类加载机制,描述一下类是如何被加载的?加载-验证-准备-解析-初始化-使用,然后具体内容10. 类加载的时候,它对静态成员变量和非静态成员变量的处理具体有什么不同?静态放在方法区,局部变量放在堆,基本数据类型放在栈帧11. 讲一下CAS是什么?12. 有没有遇到ABA问题?13. Mysql底层存储的数据结构是什么?14. 平时写sql查询语句时需要注意什么,对查询进行优化,结合一个例子说明?15. 你的主表的主键ID是增长是+1吗?还是怎么样?16. 推荐使用顺序递增索引,说了一下顺序递增和UID的优缺点17. 有遇到并发插入,出现ID空洞的情况吗?没有,加行锁了18. 你刚刚说了行锁是吧,那Mysql具体有哪些锁?行锁、表锁、全局锁,间隙锁防止幻读19. 什么是幻读?20. 我看你有提到计算机网络,介绍一下UDP和TCP差异21. 如果在客户端建立TCP的话,一般会怎么做?(愣了一下)一般是操作系统底层通过协议栈来进行网络连接,通过JavaAPI来操作Socket层来进行网络连接通信22. 你有用过java的Socket相关的这些,手动去建立连接的API吗?用过简单的http网络请求连接,还有使用Java的网络应用框架Netty来进行网络通信,可以自定义消息序列方式和序列头等信息23. 你刚才提到操作系统负责网络连接,你知道操作系统提供的TCP的API是什么吗?不太清楚,没有在操作系统层面上实现过这种网络通信的调用24. 解释一下TCP和HTTP这两个专有名词?25. HTTP一定要建立在TCP上吗?还是说UDP也可以?26. 你刚刚说了QUIC协议,关于QUIC你知道哪些呢?27. 既然你提到了中间密钥,那它建立连接的大概过程是什么?28. TCP协议的握手是干什么的,为什么要有握手的过程?29. 它如何保证不接收过去的数据呢?30. 说了一个乱七八糟的问题,什么什么API和你刚刚说的握手有什么关系?(没听懂)31. 那我换一个问法,你知道半连接队列吧?那它在握手的哪一步把链接从半连接移到全连接队列?32. 如果第三次握手的ACK,客户端没收到,会怎么样?33. OK网络相关的就,嗯(话锋一转),HTTP头的大概结构你清不清楚?34. 问你两个操作系统相关的问题,kill命令有用过吗?(玛德没听清,没回答出来)结束一个进程一般用shutdown或者close函数35. 嗯我不是说在你程序内,那你有个jar包跑起来了,你怎么把它删掉?一般在服务器上用docker部署多个容器,用docker stop来停掉程序36. 那你知道在Linux平台,进程退出的时候会有几种信号,你知道几种它们有什么不同?不清楚具体哪个信号,说了个shutdown和shutdownNowPS:GPT说有6种,对应不同触发的方式:SIGHUP是终端关闭挂起,SIGNT是Ctrl键+c优雅退出,SIGQUIT是Ctrl键+\用于调试,SIGKILL是强制终止进程,SIGTERM是kill <PID>用来杀死进程优雅终止,SIGTOP是暂停进程可恢复37. OK,那你对Window系统相关的知识了解吗?不太清楚,只用过一些简单命令行做题:翻转数字?(“123456”输出“654321”)聊天环节:1. 因为我们这边是客户端开发,你这个经验都是服务端的,有做过安卓或者是其他平台的开发吗?做过一个功能比较全的C#全栈作业2. 那你愿意找客户端吗?(灵魂拷问)(流汗黄豆)可以考虑反问:3. 腾讯对于转语言或者转岗位的同学会有过渡的培训吗?会有,但也看部门,主要是看你有没有意愿去做这个方向的工作4. 元宝客户端具体是做PC端还是移动端?都有,具体看你兴趣就行(😥)5. 那具体的业务是干什么的?业务就是元宝客户端,你在各个平台都能搜到的吧,这就是我们的业务(😥这不没说吗?)6. 那客户端主要的工作是集中在哪些方面?用户使用界面?类似前端JS的逻辑处理?都会做,不光是UI展示,还有用户交互层面,也有数据要处理。虽说是客户端,但是整个数据的上下链路都是要做的7. 腾讯对实习生会不会苛刻一些?主要看不同部门的要求,我们这边还好,更注重你的基础是否扎实,解决问题的能力。
点赞 评论 收藏
分享
05-12 22:45
已编辑
2222 安卓
55min问了40多个问题,底裤都被扒完了...问题:1,为什么使用flutter2,flutter的优点是什么3,mvvm架构的特点4,flutter和原生混合开发时,页面路由如何管理5,hashmap数据结构如何实现6,红黑树特点,插入和查找的时间复杂度7,hashmap为什么在链表长度为8时转化为红黑树8,内存泄漏的根本原因是什么?9,内存泄漏检测工具的原理了解吗?内存泄漏是如何被检测出来的?10,引用类型有哪些?11,Java中加锁有几种方式?12,审查代码时,如何发现潜在的死锁问题?13,死锁如何产生14,如何避免死锁15,tcp,udp是哪一层的协议,他们的区别是什么?16,tcp如何保证可靠性17,请求头中有哪些信息18,cookie的概念19,序列化和反序列化20,json和protobuf的区别21,数据加密有了解过吗?22,https相比较与http增加了哪些内容?23,https中的证书的概念24,效率比较高的排序算法,哪种算法时间最稳定?25,在实际项目中更轻倾向于自己实现排序算法,还是使用系统提供的方法26,java或c++中排序算法的源码有了解过吗,动态调节排序算法的策略?27,字符串查找算法,kmp时间复杂度,kmp思想是什么?28,计算机两数相乘溢出,如何解决?29,两个链表相交,如何求焦点30,安卓跨进程通信31,传统的操作系统,除了共享内存外,还有哪些跨进程通信的方法,使用场景相比于共享内存有哪些不同?32,view的绘制流程33,安卓绘制中的硬件加速的概念34,flutter是如何实现跨平台的35,flutter如何进行渲染,落实到平台上36,安卓消息机制37,flutter跟原生之间的消息通信38,服务器主动推送消息到客户端有了解吗?39,安卓本地存储,sqlite和sp的特点40,sp可以跨进程吗?如何操作?41,sp存储信息的两种方式,有什么区别?42,高德sdk,手机在室内时无法做卫星定位,如何发挥作用,误差是多少?43,网络请求框架现在普遍使用的是什么?dio是一种什么样的网络请求框架?
点赞 评论 收藏
分享
05-14 14:45
门头沟学院 Java
点赞 评论 收藏
分享
评论
6
75
分享

创作者周榜

更多
牛客网
牛客企业服务