- 自定义 View 中的自定义属性是如何调用的(好像问的是调用)
- 对比 ListView 和 RecyclerView
- 讲一下设计模式(然后问了两个我名字都没听过的设计模式,让对比一下)
- 讲一下 MVC MVP MVVM
- Flutter 中的难点、原生通信、异步、框架原理等等…
网易三面(110+ min)
- 自我介绍 + 项目经历
- 如何实现推送?(我说建立一个长连接)
- 一条推送信息应该有哪些内容
- 为什么这么设计,讲一下每个字段的含义?这么设计有什么问题?
- 服务端如何确保客户端收到消息了?
- 如果服务器发出去一个消息,客户端还没收到,断网了怎么办?
- 如何处理重复消息?
(还有好多好多问题,考虑安全啊、性能啊、各种意外情况啊,反正就是要搞死你…)
聊了会儿 Flutter
一个印象较深的问题:Flutter 可不可以实现三维模型?(大概这么问的…)我说不行,因为 Flutter 的绘制引擎 skia 是2D绘制引擎。 他又问 如果有3D绘制引擎呢??还有 Flutter 与原生通信的问题…
撕代码:
一个二维平面上有 n 个气球,都是标准椭圆(也就是说可以通过两个坐标确定一个椭圆的位置及大小),椭圆的外切矩形与坐标轴平行,椭圆的分布是随机的,但是不存在两个椭圆交叉的情况(不存在外切矩形相交),问最少需要多少条平行于 y 轴的线,能够穿过所有的气球?
找出两个单向链表中的公共部分。
- 平时怎么学习的?
- 平时有看什么书?(我说最近有看 《Android进阶解密》)
- 这本书的章节是怎么安排的?它有什么特点?
- 如果要你写每一章的 topic 你会怎么写?
提问环节:
- 应届生进入公司能接触到哪些业务?
- 如何看待“程序员是吃年轻饭的”这一观点?
网易四面(总监面 25 min)
- 自我介绍
- 大学学过哪些课程?然后问了某些课程的分数
- 一个无序数组建堆的时间复杂度是多少?
- 死锁是什么?如何产生的(产生死锁的条件)?
- TCP 中的滑动窗口
- 看过《算法导论》这本书嘛?
- 职业规划
- 为什么选择杭州而不是北京
- 为什么不读研?
- 印象最深的项目
最后依然是提问环节
面试总结:
我的秋招应该也就到这儿了,说实话,我不想再折腾了,因为经过这么多笔试、面试,发现自己的技术真的还很差,基础不牢固,知识点掌握的不够深入,我习惯性在面试结束后让面试官点评一下自己的表现,听到最多的大概就是“对某某知识点理解的不够深入”“加强基础”。
如果最终没能保研,我将全身心投入,准备明年的春招,据说到时候压力更大、更难,能怎么办呢?加油吧!!!
面试基础很重要!
一般包括Android基础、Java基础、Android常用的开源框架、设计模式和网络基础等等。下面我来列举一下常见的考察点:
Java相关
Java基础
HashMap
1.7和1.8的实现原理final
关键字,为什么匿名内部类使用局部引用要用final
Java多线程
- 线程池的使用和原理
- 锁机制:
synchronized
、Lock
volatile
关键字ThreadLocal
原理
JVM
- Java内存结构
- Java垃圾回收机制
- Java类加载过程
Android相关
Android基础
- Handler通信机制
- 跨进程通信方式
- Activity启动模式
- 内存优化、布局优化
- View的绘制流程
- Android事件分发机制
- 动画的分类及其原理
- MVC、MVP和MVVM模式
SparseArray
原理
Android开源框架
- Android网络库:
Volley
、OkHttp
和Retrofit
的使用、原理和对比 - Android图片库:
Glide
和Picasso
的使用、原理和对比 EventBus
的使用和原理RxJava
的使用和原理- Router的使用和原理
网络基础
- HTTP相关:包括HTTP2.0、HTTPS等
- TCP相关:三次握手、四次挥手等
设计模式
- 单例模式
- 代理模式:静态代理和动态代理
- 观察者模式
这些基础知识一方面大家可以直接阅读源码,一方面可以去网上搜索相关文章去学习。
技术外这些准备要做好
首先是准备简历:
简历编写需要注意的几点:
1.标题的直接按照姓名-几年工作经验-应聘岗位格式来填写。
例如 小明——四年工作经验——Android开发高级工程师。因为要知道,HR筛选简历是非常快的,你要在第一时间就让他看到他想要看的信息。HR一开始最关心的就是工作年限和岗位,你直接在标题栏用最大的字体写出来会比很多人介绍了半天项目最后写年限要好得多。
2.个人信息写最前面。
个人信息栏其实不用写很多东西,最主要的就是姓名、联系方式、性别、如果学校是名校那么就写上,如果本科学的是计算机专业也可以在这里写上,如果都不是就最好放到最后去写,因为最前面的东西永远是最先看到的内容,也是你最有竞争力和卖弄的资本。
3.有技术博客和github开源项目的一定写在最前面。
这是活生生的例子。我在面试华为的时候面试官就特意去看了我的csdn上的博客。然后说写的还是不错的,给他留下了一个不错的印象,所以这点是绝对的加分项最好就是写在最前面。
分析考点: