疫情期间,我被裁了。

从3月初开始复习,准备面试题。复习的资料主要为@jsonchao的博客,还有就是网上的其他博客资料。首先介绍一下自己基本情况:渣本毕业快4年,一直在小厂摸鱼混日子,学历和简历背景不是很好看,所以面试邀约也不是很多,面试也到处碰壁。从3月中旬开始面试,一直到4月底。共面试9家公司,近20轮面试,拿到2个小公司和1个上市公司(不是出名的公司)的offer,最后准备去上市公司了。也投递了BAT、360、抖音、快手、平安等大厂的岗位,不过大部分没给面试机会,少数大厂在后续面试中也把我拒绝了,原因是:基础知识不够扎实,技术深度不够。

面试分享

每轮面试都会有自我介绍,所以在面试前大家可以先准备一段自我介绍,向面试官介绍自己的基本情况。我这里只分享Android技术面试题(以每个公司为分类,将几轮面试题综合起来),面试官会在每个面试题继续深入,一直问到你不会为止。至于面试题答案,大家自行百度,在面试过程中尽可能回答完整(深度、广度、扩展),这样才能在面试官面前加分。建议大家找工作开始面试前,先找几家小公司找点面试感觉,然后再投自己期望的公司。

接下来是面试题:

公司一

  1. 组件化和arouter原理

  2. recyclerview和listview区别

  3. glide流程,缓存前压缩,缓存命中

  4. APP性能优化,内存优化,布局优化,绘制优化,内存泄漏

  5. Http和Https区别

  6. socket心跳包

  7. jvm虚拟机,堆和栈的结构

  8. activity启动模式,有哪些不同

  9. stack栈的特点,自定义stack结构

  10. kotlin优劣势

公司二

  1. 自定义view,中英文字符串宽高测量显示,测量算法,可扩展性

  2. 事件分发机制

  3. Activity,view,window联系

  4. 热修复和插件化原理

  5. Synchronized底层原理,java锁机制

  6. java容器,hashmap和hashtable区别,hashmap原理,扩容流程,扰动算法的优势

  7. ArrayList和LinkendList区别,List泛型擦除,为什么反射能够在ArrayList< String >中添加int类型

  8. Http和Https区别,SSL/TLS过程

  9. Android性能优化

  10. jvm虚拟机,堆和栈的结构,栈帧,JMM

  11. 组件化注意点,组件间通信机制

  12. 线程安全的单例模式有哪几种

  13. 熟悉的设计模式

公司三

  1. MVC,MVP,MVVM

  2. Activity和fragment生命周期区别,fragment正常添加和viewpager添加的区别,fragment懒加载原理,FragmentPagerAdapter 和 FragmentStatePagerAdapter

  3. 热修复和插件化

  4. 友盟bug统计,混淆后怎么定位bug。没接入热修复的APP中,上线后遇到bug怎么解决

  5. view绘制原理 (可以先说下基本view绘制,然后再说下屏幕刷新机制)

  6. 使用Analyze减少APK体积,原理

  7. Android 版本差异

公司四

  1. 基础类型字节,汉字占几个字节,线程和进程

  2. 四大组件,fileprovider和Contentprovide区别,activity启动流程

  3. MVC,MVP,MVVM

  4. TCP三次握手,四次挥手

  5. Eventbus,glide原理

  6. 性能优化,内存抖动,内存泄漏,内存溢出,handler机制,IntentService和handlerThread,子线程更新view内容的方法

  7. GC回收算法

  8. recyclerview和listview区别

  9. 组件化,模块化,插件化,热修复

  10. 工作中遇到的难题怎么解决的

  11. Kotlin Java优缺点,kotlin什么时候用分号,run,with,apply,内联函数,高阶函数

  12. APK体积优化

  13. 进程间通信

  14. 单例模式,哪些是安全的

  15. retrofit设计模式

  16. 自定义view

  17. 是否做过音视频和IM?

  18. APK性能优化

  19. CurrentHashMap1.7和1.8区别

  20. volatile关键字的作用,怎么保证原子性呢?

  21. 网络优化

  22. 对新技术的看法

  23. java泛型,协变和逆变

公司五

  1. HTTPS具体步骤

  2. 常用的设计模式,代理模式和装饰者模式区别

  3. 服务端返回错误的json数据,客户端怎么自定义model,避免出错

  4. Hook技术

  5. kotlin了解,协程

  6. 屏幕适配

  7. 抓包工具使用和原理

  8. 网络优化

  9. 未来期望,对公司的了解

  10. Okhttp,rxjava,glide,retrofit等原理,okhttp底层数据传输原理,http报文体结构

  11. APK体积优化

  12. Android jetpack使用和原理,新技术看法

  13. crashHandler获取应用crash信息

  14. recyclerview和listview缓存区别

  15. Android 常见崩溃问题分析及一般的解决方案

  16. NestedScrollView触摸机制,AOP相关知识

  17. 设计APP,整体架构选型

  18. Android沙盒和底层Linux通信

  19. ACTION_CANCLE什么时候触发

  20. 线程池原理

公司六

  1. 组件化,arouter,组件化UI,还有哪些路由框架。AS调试方法

  2. MVC,MVP,MVVM,Jetpack

  3. JVM,JMM,java加载对象的步骤,classLoader,GC回收算法

  4. 插件化和热修复

  5. 唯一安卓ID,安卓安全的知识,加密算法,判断activity前台进程

  6. TCP三次握手和四次挥手

  7. hash算法,hashmap,怎么解决hash冲突

  8. 加载大图,glide缓存机制,设计模式,双重检测的单例模式为什么要检查两次,自己设计图片加载框架思路

  9. 启动未注册的Activity

  10. AOP,蓝牙开发,IOT

  11. glide缓存清除:lrucache算法

  12. glide缓存文件太大,查找效率慢怎么优化?glide下载高清图片优化

  13. 最近研究的技术,遇到最难的事,对公司的期望

公司七

  1. 组件化, arouter优缺点

  2. MVC,MVP,MVVM

  3. 项目中的亮点,对架构的理解

  4. handler原理及相关知识点,message回收策略

  5. hashmap原理,arraymap原理,对比性能。

  6. hashmap为什么大于8才转化为红黑树,加载因子为什么是0.75

  7. Synchronized底层原理,java锁机制

  8. 服务和广播

  9. activity启动模式(给例子具体分析,A(标准)-》B(单例)-》C(singleTop)-》D(singleTask),分析有几个栈,每个栈内的activity)

  10. 常用设计模式,线程安全的单例模式

公司八

  1. static、final;继承与多态

  2. 组件化, arouter优缺点

  3. context相关知识点

  4. handler原理及相关知识点,handler缓存池大小。

  5. 性能优化,启动速度优化,架构

  6. java虚拟机与Dalvik和ART区别

  7. Kotlin协程,扩展函数和属性以及伴生对象

  8. 电商APP的首页,怎么设计一个APP架构

  9. MVP中数据请求为什么要和M一起,答:网络请求和javabean都是数据模型相关

  10. Glide的存储EngineKey是怎么保证唯一的。面试官答:有个队列会将EngineKey存储起来,每次生成后进行对比存储。这个我在源码中没找对位置,如果知道的同学,麻烦帮忙解释下。

  11. retrofit是怎么将service接口转化为我们需要的javabean的?

  12. 怎么做管理,新技术学习

公司九

  1. SqLite与contentProvider区别

  2. fragment周期,两个fragment切换周期变化,fragment通信

  3. https证书校验,加密相关,网络请求框架

  4. glide加载流程,大图显示,图片大小计算

  5. view绘制(从onSync()开始)

  6. 线程内存模型,线程间通信

  7. 获取view的宽高,更新view的方式,主线程消息机制

  8. OOM,内存泄漏,内存溢出,java引用类型,ANR分析

  9. APP性能优化,webview相关,webview优化,webview中Android与js互调

  10. 插件化和热修复

总结

简历上写的东西,一定要先搞懂,特别是简历上的专业技能。这次面试收到的最多反馈就是:基础知识不够扎实,技术深度不够。现在Android开发大部分需要懂点C++和Linux知识,大厂也需要刷算法面试题,在后面的学习过程中,我将从以上几个方面着手。当然也必须把基础知识学牢固,技术深度搞深入点。

最后祝大家都能拿到心仪的offer!

Android面经分享,失业两个月,五一节前拿到offer相关推荐

  1. 两个月拿到N个offer,看看我是如何做到的

    转载自   两个月拿到N个offer,看看我是如何做到的 前言: 北京-三年经验-Java,在金三银四这两个月期间(在五月初还去面试了几家,主要是三四月份期面试剧居多),我跳槽面试,前前后后我面试十五 ...

  2. 失业两个月,35岁之后测试工程师拿什么养家?

    最近一个老同学联系我,因为被公司辞退,找我倾诉,于是写下此文. 他是14年一本毕业,在我的印象里人特别懒,不爱学习,专业不好,毕业前因为都没找到合适工作,直接去创业了,奶茶店,托管,销售,反正什么都有 ...

  3. 亚马逊Appstore不兼容Android 12,历时近两个月仍未解决

    谷歌于10月份推出了Android 12更新,截至目前,以Google Pixel系列为主的设备陆续升级到了Android 12系统.然而,有用户报告称亚马逊Appstore与Android 12并不 ...

  4. 泪目,不枉费挑灯夜战两个月,终于拿到offer了,集合 +Spring+JVM+ 并发 +Redis 总结

    前言 今年在大环境下的面试要求有点高,复习搞了整整两个月才拿到 offer.机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的知识和面试经验,为将来进入更好的公司做好充分的准备 ...

  5. android listview添加数据_Android面经分享,失业两个月,五一节前拿到offer

    秦子帅明确目标,每天进步一点点..... 作者 |  天天有道地址 |  juejin.im/post/5eb01866f265da7b9c24562c 基本介绍 今天介绍一位朋友的经历: 从3月初开 ...

  6. 刷题两个月,从入门到字节offer,这是我的模板 | GitHub 1.2k星

    刷题应该这样刷. 最近,一位网友在GitHub上分享了他自己的一个算法模版,瞬间斩获1.2k星. 按照他的经历来说,四月份找工作开始,从0开始刷LeetCode,现在已经是字节跳动的员工了. 于是就通 ...

  7. 毕业一年多被裁,没有计算机文凭,我在两个月内搞定4份Offer,且收入翻倍

    裁员往往来得猝不及防,被重新丢回求职市场才发现自己还不具备竞争优势,这是很多人近期面临的窘境.但两个月拿到四份数据科学 Offer 的 Emma Ding 告诉我们,只要有针对性地认真准备,逆风翻盘也 ...

  8. 两个月入门深度学习,全靠动手实践!一位前端小哥的经验分享

    两个月入门深度学习,全靠动手实践!一位前端小哥的经验分享   在当前社会,技术日新月异,一个全栈工程师不及时学习新知识,掌握AI技能,再过两年就算不上"全栈"了. 产品发烧友.前端 ...

  9. android开发微信分享隐藏logo,前两天刚刚做了微信分享自定义logo和文字,做个标记,从零开始记录...

    首先要有一个认证过的公众号,才会有权限 打开微信的jsskd 使用说明 在页面中引入微信的js文件 引入后 配置config wx.config({ debug: true, // 开启调试模式,调用 ...

最新文章

  1. JAVA大文件上传断点续传解决方案
  2. 磁盘阵列介绍、进程的查看管理、日志文件的查看分析,systemctl的控制
  3. Java连接FTP服务器并且实现对其文件的上传和下载
  4. boost::safe_numerics模块测试 constexpr 转换
  5. D - Delete Prime Gym - 102875D
  6. leetcode刷题:无重复字符的最长子串
  7. Activity 生命周期图解
  8. python工资这么高为什么不学-为什么Python岗位薪资越来越高
  9. 自动驾驶 5-2 使用 PID 进行纵向速度控制 Longitudinal Speed Control with PID
  10. 微前端(single-spa和qiankun)
  11. 本周最新文献速递20211128
  12. [Inception V1]赫布学习理论(Hebbian theory)
  13. Good Bye 2020 E
  14. C语言实现植物大战僵尸----学习过程
  15. Hololens2开发笔记-重刷系统(正常发布版本和内部预览版本)
  16. 电子元器件贸易采购管理常见难题及解决方案
  17. 【ProVerif学习笔记】7:基本建模特性
  18. matlab int 32,Matlab数字
  19. 三维实景业务中的前端技术
  20. Win10 如何设置密码策略bat脚本

热门文章

  1. QT编译boost库
  2. 数字地和模拟地都是地,为什么要分开?
  3. Keil MDK详细讲解
  4. 在浏览器中运行java applet
  5. linux下的进程间通信-管道及共享内存
  6. 嵌入式Linux系统编程学习之三十线程的同步
  7. Hash哈希(hashCode、HashSet 、HashMap)
  8. document.write()
  9. Python 基础之在ubuntu系统下安装双版本python
  10. JS函数,数组,日期