某电话面试技术点记录
重新加入到求职大军,感觉时代变了,有点被碾压过去的错觉
之前随便问问就offer的日子没有了
以前:面试造汽车,入职造航母
现在:面试造航母,入职柠螺丝
网上也充斥着各种大厂面试题,大同小异,
有跳槽想法的建议提前看下再做选择,(大佬可以无视)
下面是对一次电话面试知识点记录,答案后续添加
也算对自己的监督
本来约的上周,有事耽误了,再约,下午4点开始,大概一个多小时
首先:面试官人不错,好沟通,自我介绍,开始问答
0x01.Java基础
- 说一说如何理解面向对象的
- 对多态的理解
- 说说你知道的设计模式,用过哪些
- 简单工厂、工厂方法、抽象工厂、 Builder 模式的区别
- 装饰模式和代理模式有哪些区别
- 是否能从 Android 中举几个例子说说用到了什么设计模式
- HashMap,HashTable,HashSet的区别
- equals 与 hashCode 的区别与联系
- 如果了两个对象hashCode相等,equals需要相等么
- 如何处理hashcode相同的情况
- HashMap存储时候key为什么不建议使用Integer
- synchronized了解么,可以在什么位置使用
- synchronized用在静态函数和非静态有什么区别
- 说下java中有几种加锁方法,介绍下ReentrantLock
- 说一下乐观锁,悲观锁
- volatile用过么,简单介绍下
- 创建线程有哪几种方式,有什么区别
- 多线程的使用场景
- 线程的生命周期
- run()和 和 start() 方法区别
- 说说对接口设计的理解
- 说说对泛型的理解
- 说说对反射的理解
- java中是值传递还是引用传递
- java中软引用,弱引用接触过么,介绍下
- GC机制了解么,介绍原理,新生代和老年代
0x02:网络相关
- 简单介绍下Tcp/IP
- 介绍下TCP/UDP
- 介绍下Http和Https的区别
- 在浏览器中输入一个 URL 至页面呈现的过程是什么
0x03:结构/算法 (面完后聊了几句)
- 常用的数据结构
- lru算法使用的是哪种
- HashMap使用的是哪种
- 算法基础
- 快排/冒泡/二分/
- 广度优先/深度优先优缺点
0x04:Android相关
- 介绍下Android架构
- 桌面点击一个图标,到App显示的过程
- 说出中间用到了几个关键类,过程是如何通信的
- 说对AMS的了解
- 说对PMS的了解
- Actiivty的四种启动模式了解么
- 四种模式的使用场景
- A跳B,B跳C 再返回,生命周期或者栈情况之类的
- affinity属性的作用
- 谈谈对intent-filter的理解
- intent-filter的匹配优先级规则
- 说说对Context的理解
- 一个App中存在几个Context
- 他们之间的区别
- 介绍下Android中的广播
- 几种方式,区别
- 介绍下Service 和 IntentService
- 说出使用的重要函数
- 对进程间通信的理解
- Android有几种跨进程通信的方式
- Linux已经存在很多跨进程通信的方式,为什么要使用binder
- 介绍下Handler
- 介绍下Handler同步屏障机制(sync barrier)
- Handler中有Looper死循环,为什么没有阻塞主线程,原理是什么
- 子线程能否创建Handler,
- Handler和Looper对应关系,如何保证Looper唯一
- Handler、Thread 和 HandlerThread 、ThreadLocal
- 介绍下ClassLoader,机制
- 介绍下RecyclerView ,缓冲原理
- ListView与RecyclerView对比
- 使用过程做过哪些性能优化
- 项目开发做过哪些优化
- APK大小
- 内存优化
- 布局优化
- 如何发现项目存在内存泄露
- 如何定位,修复
- 项目发布操作步骤,手工还是自动
- App版本更新如何实现,之前项目如何处理
- Bug如何收集,App如何测试,Bug修复,熟悉的单元测试框架
- 团队之间如何协作,有用过哪些平台
- 介绍一个你比较熟悉的开源框架
- 有看过源码了解过原理么
- 使用哪种数据结构
- 你觉得你擅长哪方面?
- 说说你的优点和缺点?
- 你还要什么了解和要问的吗?
大体就是这些
另外补充一些其他面遇到的问题:
- 如何保证进程保活
- 如何做系统加速,结束后台进程
- 反编译的流程,功能点定位,动态调试,Https抓包
- 如何提高App安全性,市面上加固的几种方式
- 广告SDK开发相关
- Android事件传递机制
- 自定义View流程
- 如何打开一个没有在Manifest注册的Activity
- Apk打包流程
- Apk安装流程
- Jni使用,NDK开发流程
- 介绍下三方开源库,原理,设计模式,数据结构,策略,关键类等
- 基本从里面挑(okhttp/retrofit/RxJava/eventbus/glide/leakcanary)
- 热修复、插件化、模块化、组件化、 Gradle
- 谈谈对架构设计的理解
以上手打面试遇到的些问题点,有很多不清楚的地方,立刻查漏补缺
这只是部分,看到很多总结里,头部大厂面试难度还会上升一个数量级,能不能过,自行斟酌。
博客,Git,开源,新技术都可以加分,
关于知识点,很多博客和git有知识点总结,进阶等文章,可以参考
至于面试开头提到的:“面试造航母,入职柠螺丝”的普遍现象,今天和面试官里聊了下
答:“因为现在做android实在太多了…所以大家的面试难度都水涨船高了”
理论上知识多多益善,越多越好,越扎实越好,
至于求职者,自己不足,重新回炉。
祝大家能找到理想工作
一切重头开始
愿我爱的人一切安好