腾讯实习面试总结:
参加的在线笔试,笔试范围很广,投的android客户端开发,但是题目好像都一样的,ios,python,c++,数据结构,java,设计模式,html,javascript等等。感觉答的不怎么样居然还是进面试了。
面试环节:提前预约好11点半过去的,带了份简历,问题也是根据简历问的:
1.客户端和服务器端交互,分别说说客户端和服务器端是怎么建立连接的。
我以为是想问tcp/ip的三次握手,面试官说他想知道的是客户端和服务器端是怎么打开socket端口的,答得不好。
2.谈谈你对android系统的理解。
我以为是问android的特点,说碎片化比较严重等等,被面试官打住,说让我从系统角度答。。。
3.熟悉java,那你知道classloader里有双亲委托机制吧,说说
在java虚拟机里看过,画图+举例说了下
4.说说java里finalize,final,以及finally的区别
5.你刚刚说到finally用于try catch后面,那么如果try里有return,finally里的语句还会执行么?
6.java里内部类的形式有哪些?为什么要定义一个内部类呢?
大概记得三种,一般内部类,嵌套内部类和匿名内部类(少了)。原因答的是为了访问外部类的变量和方法时不用实例化外部类的,但是感觉面试官不是要这个答案
7.说说android里的IPC
答得不好,只知道linux的IPC方式,android的真没注意过,面试官要问的是binder机制
8.handler,looper,message queue机制
9.looper的loop是死循环么?如果当前MQ里没有消息,looper是什么状态?wait?
是死循环,没有消息时阻塞住,有新消息进来时唤醒
10.android里有postDelayed,那么如果当前MQ里没有消息,那么这条消息是直接执行还是会延迟执行?
会被插入消息列表的头部,然后阻塞Lopper,延迟执行。如果阻塞过程中,有新消息进来,会先计算执行的时间,如果早,会插入头部,唤醒next方法
11.了解常用的数据结构,那你给我写个双向循环链表,用c语言
没搞懂什么意思,(双向循环链表不是个数据结构么,怎么写出来。。。,好像也不是让写插入,删除,晕),把结构体和指针指向定义了出来
12.开始问项目了,不过这时已经快半小时了,listview的优化
答了两点,复用convertview,建立VIewHolder减少findviewById次数。
13.做过图片缓冲吧,说说你是怎么做的
老问题了。。。
14.有什么问题要问的
征求了以后个人发展的方向建议,以及阅读源码的建议。