腾讯SNG移动端开发实习生面经
腾讯面试一面
上来就是一张android的卷子(不是之前的笔试题)。。。内容主要是四大组件生命周期和UI布局。具体答案我不知道,我做好给他后直接放在旁边没有问了
问了我一下成绩。。。
冒泡排序和选择排序的不同,各自对应的最好最坏时间复杂度是多少?
如何构建一棵二叉树?如何将一个二叉树有效保存到文件并能够读出?二叉树的几种遍历方式?
知道红黑树吗?
UDP和TCP的区别,如何使用UDP模拟TCP?讲一下三次握手和四次挥手
操作系统中堆和栈的区别
什么是死锁,开发编码过程中如何避免死锁
多线程和多进程的主要区别是什么
虚拟地址的作用是什么
.java文件如何变成.class, class之后加载进JVM的过程
cpp文件的编译过程
简单画出你做过的最复杂的项目的类设计图,讲讲你为什么要这个设计
腾讯二面
面试官上来就说自己昨天晚上看了我的githubTAT,所以很多都是对着我写过的代码问的问题。
展示了自己的客户端项目,这个项目我在自己手机上装了一个,所以他就直接拿我手机来看了,同时让我介绍了这个客户端中用到的设计模式
看了我的github中另外一个项目的代码,并对我的代码中一个策略模式类设计提出了些问题,问到如果需要动态修改你的策略中的实现,你要怎么做?我当时是先设计一个类似issue tracker的东西来通知服务器端当前实现已经失效,然后利用反射加载新的下载好的策略类,他问到是不是应该写一个脚本来负责动态的策略实现,我说需要脚本文件来实现自动化,核心的技术可以参考常见的热更新手段来做。感觉面试官在考察我设计思维吧
你在项目出现了哪些内存泄漏的场景,你是怎么解决的。看到我代码里用到了弱引用,就问到了弱引用的概念。
我简历里提到了自己有自动化测试相关的经历,他就问到我项目中为什么要做自动化测试和集成
如何构建hash表?我回答了基于链表数组和线性探测的两种实现方式
用UDP模拟TCP实现对传输速度的控制
平衡树的概念,这个我没答好。
两道智力题
一个商人带这个骆驼去1000m外的地方卖萝卜,他有3000根,但驴每走1m就要吃掉一根,问最后商人最多能卖出多少根(允许中途卸货),这个我想了很久没想出来。
程序员面试金典 智力题第4题的一个变形。
opengl中shader的概念,因为在自己做的项目里用到,并且他也在github里看到了。
介绍一下utf8编码
介绍一下jpg和png图片格式的区别
你对中国互联网最近的潮流发展有哪些了解?有什么看法?我跟他讲了下自己对小程序的一些看法。
之后hr面,问了些性格优缺点之类的问题,印象不深了
今天收到了offer,很开心。希望大家都能找到满意的工作。
#腾讯##安卓工程师#