总结:
各行各样都会淘汰一些能力差的,不仅仅是IT这个行业,所以,不要被程序猿是吃青春饭等等这类话题所吓倒,也不要觉得,找到一份工作,就享受安逸的生活,你在安逸的同时,别人正在奋力的向前跑,这样与别人的差距也就会越来越遥远,加油,希望,我们每一个人,成为更好的自己。
-
BAT大厂面试题、独家面试工具包,
-
资料包括 数据结构、Kotlin、计算机网络、Framework源码、数据结构与算法、小程序、NDK、Flutter,
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
腾讯
腾讯一面
(一面面试官很nice,但是发短信约时间之后,鸽了我4个小时,我上课时打过来,约晚上,结果鸽了我三天,之后我主动发短信约时间,答应了之后结果又鸽了我。。。orz)
1.自我介绍
2.自我介绍时说过自己看过EventBus源码,然后让我谈谈事件总线的理解。
3.EventBus会有什么问题吗?
4.EventBus、接口回调、观察者模式的使用场景说一下。
5.项目什么地方用到数据的持久化,说一下。
6.Activity的生命周期,弹出dialog和一个activity的dialog生命周期有什么区别?
7.Activity的启动模式,应用场景,然后举了很多微信的场景,让我去选择用那种启动模式,说下理由。8.Activity进程的优先级。
9.如何防止微信不被系统杀死?
10.service两种启动模式,区别
11.两种启动模式,如果我在退出Activity的时候没有退出service会怎么样。
12.设计一个图片浏览框架,(线程池,lru缓存,brabra的说了一堆)。
13.有一个很大很大的图片加载到内存上,不能降低清晰度和压缩图片你怎么解决?(提示我局部显示?我没懂)
14.如何适配不同厂商的手机,然后设计模式,brara又说了一大堆,最后还说到jetkins自动部署上面去了
15.AsyncTask源码分析,每个方法在哪个线程执行的?
(一面面试官真的很好,有些你不懂的他还举例教你,一面我觉得难度比较大,常规的背题肯定会不满意的,题目比较少,引申出来的知识点却很多,大部分时间都是我在谈自己的解决思路然后分析到知识点的源码上面去,比如说像如何防止微信不被杀死这种,其实我说了常用的进程保护思路,它还要我分析其他情况)
面试官说我不错,叫我明天准备二面,电话一挂,我就愉快地去吃饭,吃着饭看状态灰了,这谁顶得住啊~
回去看完电影之后,再查一下状态,变成了复试,估计之前是到时间简历被释放了。
腾讯二面
(二面总监/面委,由于开会,鸽我半个小时)
1.上来大数相乘,我做的眼泪都快流出来了。
2.put和post的区别,应用场景。
3.看了我的flutter项目,我改了一个框架,问我这个框架。
4.让你设计一个跨平台的框架,你怎么设计(这里我谈了flutter的架构)。
5.https的流程。
6.fragment的懒加载。
7.一个商场里有一个电影院,你会把厕所建设在哪里,说一下你的理由?
hr面
(鸽了我20分钟,腾讯都是大猪蹄子?哈哈~~开玩笑,面试官真的很忙,有时候换位思考一下,心态好点)
1.自我介绍
2.为什么选择微信?
3.对我们了解吗?
4.愿不愿意来
5.家里的情况
6.什么时候可以来实习,可以实习到什么时候(入职)
阿里
阿里一面
1.自我介绍
2.自己看过的源码,说一下?
3.接下来就EventBus的东西了,还是老问题,优缺点,有没有什么问题,列举了很多场景,我看源码看的比较细,根据自己看过的东西做回答和分析,然后还是,接口回调和观察者模式之间的选择。
4.问我你看过这么多源码,你觉得什么东西最重要?
5.答了源码中看到了大量的反射使用,多线程方面,Collections,数据结构这些。
6.问我多线程,引申出handler,我从handler的源码去解释
7.handler引申出的内存泄漏,为什么静态内部类不会持有外部对象
8.接下来还是场景题,图片框架的实现,涉及到的Lru缓存,线程池,线程池该如何分配线程数量。
9.APP从打开到显示之间发生的事情。
10.为什么java可以调用c/c++的函数,调用jni发生的事情说一下。
11.动画种类,使用动画的步骤,有没有看过动画框架的源码。(面试官说我在应用层上基础知识很好,懂得去看源码学习,但是android深度不够,应该要往Framework和c/c++那边学习)
阿里二面
1.自我介绍
2.还是自己对EventBus的理解。
3.学习Android的过程
4.项目遇到的问题,怎么解决的
5.回答过程中提到csrf,问原理
6.对公司有什么要求
7.IPC
8.socket的连接过程(说我这方面的技术和兴趣不错,但是缺少大型项目的经验,考虑不够全面,如果有一个机会给我就很好了。)
阿里三面
1.自我介绍
2.详细说我第一个项目
3.http缓存
4.如何把ip地址存储在一个int 变量里面?
5.详细介绍第二个项目(30min,面试官说我自己对技术的热情很不错,让我保持下去,口头直接让我过,让我等hr)
阿里HR面
最后
我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了7、8年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。
其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。
不断奔跑,你就知道学习的意义所在!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!