第一家:
一个小姐姐把我问得n脸懵逼(一个屌丝程序猴和妹子聊天就紧张,心跳加速,口干舌燥,说话结巴)!
她首先让我自我介绍一下,可脑袋一下像短路了一样!
就说:“你知道的程序员表达能力差,嗯。。。嗯。。。你看简历吧!”她直接一脸无语!
- 一面
java:
1、jvm启动过程? 验证是验证什么
2、强引用、软引用、弱引用、虚引用,是什么?分别在什么时候用
3、反序列和序列化 为什么要? 什么情况下要?
4、反射 为什么要反射? 什么时候用? 缺点?
5、hashcode 为什么出现、是什么、equals关系
c语言:
6、include 作用、import作用
7、static关键字:c跟java
8、动态编译、静态编译
9、线程通信
10、设计模式:生产者消费者、工厂模式、单例模式(3种实现、为什么双验证)你会怎么设计
11、tcp和udp区别
12、做一道题topk的题,指定用快排的思路
- 二面
1、项目及项目里用到的知识
2、3次握手、4次挥手、为什么不4次、5次
3、数据结构,10大排序挑2个讲
4、计算机系统,中断是怎么实现的
5、计算机系统的锁底层是怎么样实现的
6、多核cpu,多线程怎么访问同一个内存
Android:
7、怎么学Android
8、handle作用,为什么
9、有没有写过安卓的多线程
还有的有点记不清了
第二家:
面试官特别关注我的实践经验,面试官很和蔼,但我和面试题都很难。
数据库
1.数据库中什么时候用索引?(应用场景)
2.数据库中的索引一般是什么数据结构?
3.数据库中的事务是怎么回事?(我就知道这个…泪目)
网络:
http和https的区别?追问:https的安全信道建立的具体步骤?
TCP为什么比UDP稳定?
JAVA:
进程和线程的区别?
线程安全怎么保证?
什么时候volatile可以保证线程安全?
除了sychronized,还有什么可以保证线程安全的方法?
Android:
Activity A 启动 Activity B,两个Activity的生命周期顺序?(假设完全覆盖,且standard Activity 启动模式)
如果按返回键呢?
sqlite、SharedPreferences和文件的应用场景有啥区别?
手写代码:
一个机会均等的互赠礼物函数:输出一种完全随机的可能性,且不能自己送自己。
每个人准备一份礼物,收到一份礼物。
e.g.
1->N
2->3
…
N->1
第三家:
面试官是个东北银,一口浓厚的东北口音,觉得还挺平易近人?
- 一面
\1. 自我介绍
\2. 笔试题1:删除无序链表中的重复结点(能否优化)
例:输入3 -> 2 -> 4 -> 3 -> 5 输出3 -> 2 -> 4 -> 5
解释:3结点重复,将第二个’3’结点删除(这边的重复指的是结点的值重复)
\3. 笔试题2:先说一下二叉树的有哪些遍历方法。写一个二叉树前序遍历的非递归形式。
\4. 讲一下Java的内存。
\5. 创建一个字符串对象,这个对象分配在哪里?
\6. String str = “123” + “456”;会创建几个对象。
\7. 问了操作系统的问题,没学过,所以也忘了问了什么。
\8. 数据存储有学过吗?数据库和文件保存有什么区别?
\9. Activity有哪些启动模式?
\10. 有什么要问的?
- 二面
\1. 上一轮面试做了哪2道面试题?
\2. 会哪些编程语言?
\3. 想做哪个方向?为什么?
\4. 对Android比较感兴趣,都学了些什么?
\5. ListView源代码有看过吗?
\6. 想一下ListView应该是怎么实现的?链表?
\7. 给你2个线程,如何产生死锁?为什么会产生死锁?
\8. 外存有一定量的数据,需要读取到内存中处理,但是内存的大小是不知道的,要求如何能够读取尽量少的次数,才能处理完全部的数据?
三、醒悟
经过这段时间的面试,懂得了技术深度的重要性,还有职业规划的重要性!
我意识到自己不能这样再咸鱼下去了,我,一个工作三年却只有一年工作经验的Android开发,终于醒悟了!
1、要知道自己到底想要什么很重要。这是第一步,也是最重要的一步。因为这关系到你能够够选对学习方向,能否沉下心来去学习。
我们都知道,做自己感兴趣的事情的时候,是可以事半功倍的,因为你愿意去做它,而不是出于某种原因不得不去做。
学习福利
【Android 详细知识点思维脑图(技能树)】
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
droid的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!