我的朋友程序员K,说他在电力行业的一家软件公司做了八年Android开发,用到的各种技术,数据库,网络请求,事件传递,响应框架都很熟悉,甚至JNI/NDK/Framework,JS、Server端开发都能玩儿转,个人也是部门骨干。
因为疫情,今年公司项目锐减,已经签的项目,也迟迟不能开始,公司难以运转,就做了一些优化。K原本不在被优化之列,但他觉得留下来也意义不大,就主动申请了一个名额,拿了几个月赔偿金,出来找工作。
K对找工作本来信心满满,谁知道一面试,连“熟悉SSM吗?用它们做过项目吗?”、“微服务架构在项目中用过吗?”这些问题都难以回答,饱受打击。找了一个多月,虽然拿到了两个Offer,但是公司规模、待遇等,都还不如原来,K感到非常沮丧,严重怀疑自己做错了选择,产生了回老东家的想法,K何尝不是很多35岁以上程序员的缩影?
K的情况让我想起2018年,IBM裁员时我所接触到了几个年近四十的程序员,也是类似的情况,原本拿着高薪也不怎么加班,工作和生活都有滋有味,可是忽然间遭遇优化,被抛到市场上找工作,才发现自己竟然在技术、思维等方方面面都跟不上了,连那些自己从前瞧都懒得瞧的小公司,居然也反转过来瞧不上自己了。
我接触到的人非常有限,就遇到了这么多“放心跟着公司发展结果失去竞争力”的情况,那整个职场,还不知道有多少人,像K这样被公司圈养,结果来到自由竞争的市场,忽然发现自己失去了议价能力,面临被淘汰的命运。
1 JAVA基础思想:设计模式与面向对象
2 安卓View绘制流程
3 常规的组件问题
4 事件分发机制
5 多线程和安全问题
6 安卓性能优化和兼容问题: 性能优化回答
1 线程池原理
2 线程安全有多少种实现方式
3 图片加载框架原理
4 Http 协议原理
5 Okhttp 原理
6 各种内存优化
7 垃圾回收机制原理
8 谈谈对同步请求和异步请求的理解
9 怎么保证同步和异步
10 Intent servise ,底层原理实现
11 Handler 为什么能够进行跨进城通讯
12 Handler 为啥不能在子线程声明,声明后,报运行时异常异常
13 通讯协议Rxjava 和Retrofit 的结合使用
14 谈谈你对线程安全的理解
15 自定义线程池原理?你如何定义
16 Glide框架原理
17 膨胀锁
18 TCP协议栈讲讲
19 Socket 链接,到底怎么连接
20 Git 怎么提交两次请求,保证是同一个ID(命令行操作)
21 如何定位ANR,OOM ,快速
**·**设计模式讲一讲
**·**单例模式,几种,优缺点
**·**观察者模式,可以讲讲EventBus设计实现
**·**适配器模式以及应用场景
**·**工厂相关的模式
**·**策略模式,Android中的应用场景
**·**MVC,MVP,MVVM,比较异同,选择一种着重讲就行
**·**讲讲handler的理解
**·**项目中用到了Rx,优势是什么,项目使用Rx时有没有遇到内存泄露,怎么解决的
**·**安卓8.0的相机适配有没有遇到什么问题
**·**谈谈对android权限机制的了解,有没有了解过自定义权限
**·**在集成地图时遇到过什么问题
**·**项目使用listview还是recycler,recycler对比list有什么优势
**·**onNewIntent的调用时机
**·**聊聊对插件化的理解,组件化和插件化区别是什么,组件化的好处
**·**如何解决推送传达率的问题
**·**穿插了一些fragmentmanager对于fragment的管理,调试工具,线程池以及进程相关的东西
**·**如果后台的Activity由于某些原因被系统回收,如何在系统回收之前保存当前状态?
**·**Service的生命周期,如何启动和关闭一个Service?
**·**Service和Activity在同一线程吗?
**·**四大组件都用过哪些?简单的接收一下他们的用法?
**·**UDP链接和TCP的不同之处,socket的使用方法?
**·**Android开发中怎么去调试debug?写出你常用的adb调试命令
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
腾讯、字节跳动、阿里、百度等BAT大厂 2019-2021面试真题解析
腾讯、字节跳动、阿里、百度等BAT大厂 2019-2021面试真题解析
[外链图片转存中…(img-EPj1WcfF-1619604306063)]
资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图,大家可以**点击这里自行获取**。