前言
双非普通本科,大学四年基本一路自学过来,踩过很多坑,最后秋招成功拿了几个大公司的 offer

我总结的一些经验
对于大多数程序员来说,拼实力没啥可怕,怕的是明明有实力,面试时却展示不出来。如何在面试中表现的比你的实力更牛逼,是一门技术,更是一门艺术。
今天,我们一起来探讨下:
面试,到底有多难,取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。
面试可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。
“你的优势是什么?”多年前我觉得这个问题很无聊,现在我经常这么问面试者,因为我真的想知道他的优势是什么,能给公司带来什么。
最后我发现找工作时有个有趣的现象,经常是:懂沟通的人先找到工作,而不是技术最牛的那个。

一面
-
viewBinding的原理
-
Recycleview滑动怎么优化
-
缓存设计
-
一级缓存和二级缓存的区别
-
LayoutManager原理
-
绘制
-
onMeasure描述一下
-
onDraw描述一下
-
invalidate一定会调用onDraw么
-
事件分发
-
事件是由谁分发的
-
fragment
-
销毁与恢复
-
与Activity的通信
-
Activity
-
Activity的生命周期
-
销毁与恢复
-
国际化插件
-
hashmap
-
2^n的原因(有多个原因)
-
扩容
-
22反转链表
二面
- 协程原理
- rxjava原理
- leakcanary
- 如何分析引用链
- 线程池
- 给你一堆数据,如何画曲线?
- 事件分发
- 责任链模式
- 汽车加油问题
三面
美团

一面不能讲4.4.0大改版
一面
-
线程池原理,几个参数
-
线程池里面的阻塞队列是什么类型
-
设计模式
-
状态模式和策略模式的区别
-
sleep和wait的区别
-
android序列化
-
Parcelable与Serializable
-
Handler
-
Hashmap
-
深拷贝与浅拷贝
-
如何实现深拷贝
-
sync和Reenterlock
-
遇到异常的区别
-
可重入锁和不可重入锁
-
funA,funB,funC,funD
-
postInvalidate和Invalidate的区别
-
requestLayout
-
两个有序链表合并
-
anr 分类及原理
二面
- 基本都是问的项目
三面
- 基本问的项目
支付宝

一面
- 项目
- viewmodel原理
- 用了哪些jetpack的东西
- livedata为何具有生命周期感知能力
- 二面
- 三面
- shareperference如何保证线程安全,
- 为什么不是进程安全的
- 如何实现进程安全的
- viewmodel是如何解决内存泄漏问题的?能解决么
- mmkv共享内存和binder的区别
- magic ocr项目
- 有做过多线程开发么
- room如何实现orm的
- kotlin和java产物一样么有
- 各种图片格式的区别
- 如何保证内存与文件的同步
- 开一个线程commit,commit不用加锁么?
- bitmap
- 怎么确定bitmap被复用了
- 一张图片占用的内存大小
四面
- 动态加载一个recycleview item的方式
- 动态下发国际化
- 阿里(简历被捞了 淘宝特价版)
- 项目
- 进程通信方式了解哪些
- binder原理
- 服务端了解么
- View的显示原理?
- Https原理
- 说下中间人攻击
- Flutter了解么
- 前端了解么?
- 国际化文案的困难
- leakcanary原理

尾声
个人认为我的人生中真正考验智商的只有高考,这种是在规定时间内出成绩的游戏,而且是好几门一起考,想门门精通确实不易。至于工作,只要时间坚持投入足够持久,必定会取得收获,是没有那种学不会的说法的。
只能说投入的时间、精力不够而已,即使转型失败了也绝对不是因为智商上的差距,绝大多数人压根没怎么努力,还处于拼汗水的阶段,根本没到拼智商的时候…… 还有一点就是我说的学习是全天投入去学习,而不是高兴就学两小时,不高兴就玩两小时,如果是这样,可能十年都没法学成。最后,也是最关键的一点,那就是哪怕是你面试的时候被虐的面红耳赤,也请你保持绝对的自信。
因为,哪怕是你牺牲尊严,跪地上求人家,也不会获得尊重,没有任何一个面试官会愿意招一个自己都感觉自己很low的人。

自行领取直达链接:【点击获取】
需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。
网友评论