这次「百度地图的 Android 开发」面试问的非常基础,基本是涵盖了所有的Java的基础和Android的基础,数据结构和算法没有涉及到,非常的详细,很小的知识点都会覆盖,和自己最初准备的还是有些差距同时也让我认识到了基础的重要性吧,还是有些漏洞的。
面试的主要问题:
- 注释有哪些?
- 各种访问修饰符,哪些可以修饰类,哪些可以修饰方法,那些可以修饰变量,以及修饰的范围是什么?
- try-catch 的用法,里面可以使用 return 语句吗?
- 异常有哪些?
- 线程的状态有哪些?
- 抽象类与接口的区别?
- Java 中序列化,序列化的作用?
- Android 的四大组件?
- activity 的周期和启动模式
- activity 中如果出现弹窗的活动周期?
- Broadcast 有哪些类型? Android 5.0, 6.0,7.0 中对Broadcast做了哪些修改?
- Server 的周期与启动?
- Android 的优化做过没有?
- 内存的泄露?
- http 和 https 有什么区别?
- 设计模式有哪些?
- ListView 的优化,ViewHolder 的使用?
- bitmap 的缩略图?我只是抓住采样的计算,当时是不是考官想要知道 bitmap 的加载和缓存机制呢?
- 用过的 IDE 有哪些? Gradle 的用法?
- 有没有什么 C 语言的编写能力?
- 为什么学的是通信,现在选择的是 Android?
- 爱好是什么?
- 介绍实验室的通信的项目?
总结:
①全程感觉发挥的并不是很好,现在想想很多地方还可以在完善一些,可能跟自己准备的出入很大,以及一开始的基础知识回答的并不是很好影响了自己,暴露自己的问题就是基础的知识的不扎实。
②当考官透漏出一些信息时,虽然不是很明显,但你要能够抓住这个东西,比如这次的实习的时间上问题。认识到问题的关键就应该快速的给出自己的合理的想法,而不要让已有的想法框住自己,既然自己很想抓住这次机会,那就要能够用语言表达出来,而不是仅仅停留在想的基础上。
③突然意识到了自己的一个更大的问题,想与表达出来,平时大部分都是和自己待在一起,自己在思考,在纸上练习,很少将自己想的东西表达出来,导致面试的时候可能想到了,但是考官没有问到,也就没有说出来。
④还有一点就是参加面试的前一天最好不在看新的的知识,而是踏踏实实的把自己看过的知识好好的巩固一下。因为看新的知识,可能很幸运恰好被问到,但是由于刚刚看过们很可能由于轻微的紧张根本想不到,就像这次的 bitmap 当时就没有想到加载和缓存这块,所以功夫要下在平时,抛弃一些安全感,并将面试看成一次自我的检验,过后总结补充。