2021 Android面经及求职总结

2023-11-06

投递情况

主要投递了国内和国外的互联网公司,同时也投递了一些币圈企业,最终斩获battmd offer和一币圈的百万年薪offer

关于如何准备面试,可以关注我的面试准备系列文章如何准备一场技术面试?

offer斩获情况

大大小小共12家公司offer

考点

算法:

单例的写法(我采用了双检查的写法,写完要能解释清楚为什么写volatile或者双检查)

两个线程轮流打印奇数和偶数(腾讯新闻)

生产者消费者模式,用wait和notify写出来(美团)

二分法查找(很多公司都会考)

合并两个二叉树(头条)

猴子吃桃(一次吃2个或3个桃子,总共有多少种吃法,要求非递归)(头条)

合并有序数组或者链表(很多公司都会考)

数组、字符串处理(动态规划考的比较少,最难的就是一个简单的斐波那契,都是mid和easy的数组查找或者处理)

两数之和

三数之和

搜索旋转排序数组,旋转数组的最小值(瓜子二手车)

组合总和

全排列

合并区间(网易,只说对思路即可)

二叉树的前中后序遍历非递归写法

查询链表是否是循环链表以及链表环的入口点

滑动窗口最大值(美团)

反转字符串(新浪微博)

用两个栈实现队列(知乎等一些公司考到了)

两个链表的第一个交点

剑指 Offer 53 - I. 在排序数组中查找数字 I

二叉树或者多叉树的深度

378. 有序矩阵中第 K 小的元素(visa)

总结:

国内公司考察的算法基本上在剑指offer、hot100都能找到原题(easy和mid),因此,算法面试准备以上两项即可,而且要做到能根据题意,理清自己思路,然后尽快撸码,一般都能取得一个还算不错的面试结果。

外企一般对算法的考察稍深一些,所以要扩大算法备考范围,这里可以补充——LeetCode 精选 TOP 面试题。

总之一句话:算法面试要做到对算法的原理很清楚,并且能根据算法原理作一定能力迁移,并快速给出思路,例如:二分法、字符串处理常用方法的解题能力迁移。

Java基础、原理、GVM原理篇

==和equals的区别是什么?

java都有哪些基本类型?

java注解的种类都有哪些?区别是什么?在项目当中有用过java注解吗?

static关键字的作用是什么?

final关键字的作用是什么?

经过final和static修饰的变量存放在jvm的哪个区域?

volatile的作用是什么?以及他的原理?(可能会结合双检查单例一起来考察)

jvm内存模型、栈里面的区域(讲清楚栈帧结构)

gcroot都有哪些?

为什么选定这些变量作为gcroot?

jvm虚拟机在内存回收时候都有哪些算法?

jvm的堆内存模型?以及在每一块区域中采用的内存回收算法?为什么要采用这样的回收算法?

new String()、String 修饰的变量、字符串的区别?

String、StringBuilder、StringBuffer的区别?

int和Integer的区别(注意Integer的内存溢出问题)

java 异常的实现原理是什么?

Throwable、error、exception是什么关系?分别都是什么时候用?

在一个32位或者64位处理器上运行的java程序,int占多少位?(头条面试题)

Hashmap、Hashtable、Concurrenthashmap的实现原理?

Hashmap在1.7和1.8的实现区别?

Hashmap扩容是怎么实现的?

Hashmap的put过程是如何实现的?

为什么扩容是2的n次方?

为什么要有链表转数组的过程?

红黑树原理?

Hashmap数组的0位是干什么用的?

Concurrenthashmap的实现原理(1.7和1.8区别)

数组、链表的查找和插入的实现复杂度?

java泛型的意义是什么?

java的类加载机制?双亲委派机制?

java在对象创建过程中都经历了哪些过程?

java中如何区分两个类是同一个类?

如何确定两个对象是同一个对象?(equals和hashcode)

java为什么要有内部类或者说内部类解决了什么问题?

AQS原理,在哪里应用

java一共有几种线程同步方式,区别是什么?(Reentrantlock\ReadAndWriteLock\countdownlatch\semaphone\)

java多线程:

java同步都有哪几种方法

使用syntronized修饰的方法,使用static syntronized、代码块持有的锁都分别是什么?

Wait\notify\notifyAll、lock、unlock的区别是什么?能否使用他们写出生产者消费者模式?能否写出两个线程交替打印奇偶数?

volatile的作用是什么?深入到原理层面

创建线程的几种方法?

java一共有几种线程池?

java如何自定义线程池?自定义线程池过程中的几个参数都是什么意思?

如何实现线程池监控?

线程池的核心实现原理?

线程池如何实现取消?

线程池的核心线程和非核心线程是固定不变的吗?(在修改相应参数时候可能会变化)

如何区分线程和进程?

Kotlin基础和高阶应用

kotlin中== 和===的区别?

kotlin中foreach和loop区别?

kotlin泛型中in,out、refield的作用?

inline、outline、crossline的作用?

kotlin的高阶函数如何理解?

kotlin协程的几种实现方式?

协程的原理?(没人问过,作为一个了解)

jetpack了解吗?livedata、lifecycle的原理都是什么?

Kotlin data sealed类的区别?

Object companionObject的区别和应用

Let with also run apply 区别

Android基础

activity启动模式?几个activity的启动模式混合相互启动时候的生命周期都是怎么样的?

activity生命周期?

android进程间通信方式?

binder的实现原理?

Contentprovider实现原理?

service想要实现进程间通信如何实现?

如何创建多进程?

Okhttp原理?(会结合网络请求过程中的缓存比如etag、过期时间等来问。会问到调度器原理,连接池,多准备源码细节)

Eventbus、Butterknife实现原理?

Rxjava实现原理?

fragment的生命周期?fragment切换时候的生命周期?

自定义view如何设计?需要从继承view开始从头设计(onmeasure\onlayout\ondraw)

事件传递机制?

onIntercepttouchevent之后是如何将后续事件都发送到ontouch中的?

view的绘制原理?(描述view.invalidate之后的过程)

做过性能优化吗?(描述滴滴的webview优化过程、掌握常见的性能优化手段)

activity启动过程,一般结合插件化原理解释,要尽量解释详细。

handler实现原理?

handler发生内存泄漏的原理?(一定要弄清楚,很多公司都有问到)

Android中常见的发生内存泄漏的场景?

aidl的使用和原理?

contentprovider的使用及其原理?

socket在android中的使用场景?

进程保活做过吗?都有哪些手段?

性能和优化

线上如何监控卡顿,ANR?

做过性能优化吗?介绍一下具体做法

业务侧有线程池,集成的sdk里也有线程池,如何对这些线程池做管理?

设计模式

常见的设计模式,要能知道每一种设计模式的优缺点。

单例模式,要能快速并且准确的写出。

建造者模式,为什么要使用建造者模式,建造者模式解决了什么问题?有什么优缺点?

工厂模式和抽象工厂模式的区别。

享元模式的应用及解决了什么问题。

谈谈MVC,MVP,MVVM区别

网络

缓存的时候都需要加哪些字段

Tcp\Ip三次握手和四次挥手,为什么要三次握手和四次挥手

网络优化做过吗?讲一下常用的网络优化手段。

结合glide讲一下缓存。

讲一下http和https的区别

项目

push到达率从90%提升到95%?

侧边栏缓存优化都是怎么做的?

拓展

讲一下你的优缺点?

为什么换工作?或者为什么选择在现在这个节点换工作?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021 Android面经及求职总结 的相关文章

  • 如何在 Android 清单文件中设置文本外观?

    是否可以做相当于 setTextAppearance context android R style TextAppearance Medium 在 Android 应用程序的清单文件中 android textAppearance and
  • Locale.getDefault().getCountry() 返回空字符串

    我正在尝试使用国家 地区代码获取用户语言 例如en US es es 但是当我使用Locale getDefault getCountry 它返回空字符串 虽然它给了我正确的语言Locale getDefault getLanguage N
  • 在 Android 中使用 iText 读取或打开 PDF 文件

    我是 Android 应用程序开发新手 使用 iText 我完成了 PDF 创建并在创建的文件上写入 现在我想阅读该 PDF 文件 如何使用 iText 打开或阅读 PDF 文件 例子将是可观的 那么提前 哪个是渲染 PDF 文件的最佳库
  • 如何覆盖日期选择器的高度和宽度以填充父布局

    我有一个活动包含一个日期选择器 我想设置DatePicker适合屏幕 我试过这个答案 https stackoverflow com questions 6674667 how to customize date pickers width
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • 版本 5 上带有 getBackground().setAlpha 的按钮 - 棒棒糖无法正常工作

    我有这段代码 适用于自 API 14 以来的每个版本 但在 Android 5 0 Lollipop 上无法正常工作 以下是我希望按钮出现的方式 单击按钮1 buttonArrivals getBackground setAlpha 180
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • 更改android中禁用按钮的颜色

    有没有办法通过样式或其他形式更改 android 中禁用按钮的颜色 我目前有以下内容 可绘制 button default xml
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 无法在 Android 模拟器中安装 apk

    我正在尝试通过 adb shell 在 ICS 模拟器中安装 apk 从一个站点下载 但出现以下错误 失败 INSTALL FAILED UID CHANGED 可能是什么问题 只需 rm r 有问题的数据目录即可 如果您在安装时遇到此错误
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • 阻止 OSX 变音符号为所有用户禁用 Java 中的 KeyBindings?

    注 我知道这个问题 https stackoverflow com questions 40335285 java keybinds stop working after holding down a key用户必须输入终端命令才能解决此问
  • Google Android Drive api 在已安装版本上登录失败

    我开发了一个使用 GoogleDrive api 的 Android 应用程序 当处于调试状态或运行调试版本时 应用程序 工作正常 并正确验证附加的谷歌帐户 等 当我构建发行版本时 使用我的签名密钥 并且 安装apk文件 当我运行时 Goo
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新
  • gradle-experimental:0.1.0 buildConfigField

    谁知道怎么定义buildConfigField在实验性的 gradle 插件中 android productFlavors create demo applicationId com anthonymandra rawdroid buil
  • Java中有类似分支/跳转表的东西吗?

    Java有类似分支表或跳转表的东西吗 分支表或跳转表是 根据维基百科 http en wikipedia org wiki Branch table 用于描述使用分支指令表将程序控制 分支 转移到程序的另一部分 或可能已动态加载的不同程序
  • Java 推断泛型类型

    我正在寻找类似的推断捕获泛型类型的概念 类似于以下方法片段 但不是捕获泛型类型的类 public

随机推荐

  • Kaldi-MFCC模块源码主流程分析

    那么趁着这个机会 研究一下kaldi源码中MFCC部分的内容 不说废话 我们从 compute mfcc feats cc开始讲解 这里是个main函数 需要携带参数 具体使用样例如下 1 compute mfcc feats 其实看到这里
  • JVM完整笔记

    这是我在看课程 黑马程序员JVM完整教程 过程中记的笔记 我觉得该课程总时不长 并且理论 实战是一个入门JVM的好课程 若你看完该课程可以看下面几个参看书进一步深入了解JVM 深入理解Java虚拟机 第二版 实战Java虚拟机 深入JAVA
  • Java基础3--Java流程控制语句

    Java基础3 Java流程控制语句 文章目录 Java基础3 Java流程控制语句 Java循环语句 while循环 do while循环 for循环 增强for循环 Java条件语句 if语句 if else语句 if多分支语句 Jav
  • 【FreeRTOS开发问题】FreeRTOS内存溢出

    FreeRTOS内存溢出 如下图所示 FreeRTOS编译完成后可以看到 系统提示无法分配内存到堆 Objects Template axf Error L6406E No space in execution regions with A
  • Error Microsoft Visual C++ 14.0 is required 最佳解决方法,亲测有效

    这种pip安装不上的包 1 找whl包下载安装 去Python安装包大全中 https www lfd uci edu gohlke pythonlibs 去下载 对应后缀为 whl 的安装包进行安装 后缀为 whl 的安装包进行安装的方法
  • java永久区_Java方法区和永久代

    目前有三大Java虚拟机 HotSpot oracle JRockit IBM J9 JRockit是oracle发明的 用于其WebLogic服务器 IBM JVM是IBM发明的用于其Websphere服务器 因此在某行开发的时候 他们用
  • linux日志打到垃圾箱,shell输出的那个垃圾桶——/dev/null

    昨晚花费一整晚在知乎回答了一个关于shell里面的重定向输出到 dev null的问题 果断今晚也同步发在这里 反正也没人看 以下来自一个重度linux使用患者不请自来的回答 先用简单的语言回答题主的问题 shell程序中 2 gt dev
  • USB学习之一:USB协议基础

    USB开发者论坛http www usb org USB专区 http group ednchina com 93 1 1USB的特点 在USB1 0和USB1 1版本中 只支持1 5Mb s的低速 low speeed 模式 和12Mb
  • 探索健康养老的“最后一公里” 附下载地址

    目前中国机构养老市场参与者主要包括 房地产开发商 保险公司以及一些专业的养老服务企业 其中房地产开发商和保险公司凭借丰富的开发经验和充足的 资金流在市场上处于领先地位 目前市 场主流的机构养老项目的营利模式主要 分三类 即 非销售类 销售类
  • 《Stable Diffusion WebUI折腾实录》在Windows完成安装, 从社区下载热门模型,批量生成小姐姐图片

    环境 操作系统 Windows11 显卡 RTX2060 6GB 显存 安装Python 下载 Python3 10 6 https www python org ftp python 3 10 6 python 3 10 6 amd64
  • 马来西亚旅游不可不去的世外桃源

    全马最漂亮的8大冷门 世外桃源 美到您都不相信这些地方竟然在马来西亚 1 Pulau Besar 柔佛州 情侣来这旅游或蜜月 真的最适合不过了 想要找一个宁静 舒服 温暖的海边度假吗 那么PulauBesar 或许适合你 这里没有其他海边来
  • numpy.arrange函数知识大全

    numpy arrange函数知识大全 numpy arrange函数作用 numpy arrange函数作用 numpy arrange函数的作用是生成带起点和终点的特定步长的排列 根据函数的参数的个数分为以下几种情况 1 只有一个参数
  • 使用Android studio 查看其它app的布局的结构

    日常开发过程中 难免会遇到一些比较好看的布局 这时候我们就想学习一下别人的布局结构 以便参考 如果是前端开发的话 直接用Chrome可以查看别人布局的结构 如果是android的就比较麻烦一些 不过也是可以的 只需要简单的两步 下面来演示一
  • 逻辑判断

    一 论证推理 1 1 基本原理 论证的基本原理 话题一致 例如 甲论证 中国足球不行 这个论点时 乙说 你行你上 这就是典型的话题不一致 因为 我足球行不行 和 国足行不行 是没有关系的 1 2 解题步骤 所有的论据都是为论点服务的 1 明
  • vs+qt添加qtOpengl时,要小写

    奇怪了 一开始添加模块时 写成了Opengl 是qmake错误 改成opengl就可以了
  • 一个简单的测试案例

    题目 有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计 其规格说明如下 若投入5角钱或1元钱的硬币 押下 橙汁 或 啤酒 的按钮 则相应的饮料就送出来 若售货机没有零钱找 则一个显示 零钱找完 的红灯亮 这时在投入1元硬币并押下按
  • Python · 无限画板(零)· 简介

    项目 GitHub 地址 免费线上示例产品 该示例产品的源代码 封面图对应的项目的源代码 需求 方案 在上一篇文章 用 Python 打造 AIGC 的 操作系统 里 我提到过这个 Python 无限画板的项目 carefree drawb
  • Pytorch CAM特征可视化

    背景 类别激活映射 Class Activation Mapping CAM 用于对深度学习特征可视化 通过特征响应定位图像的关键部位 为深度学习可解释性提供了一种方法 ACM以热力图的方式展示了图像局部响应的强弱信息 对应于更强的位置具有
  • 无线打印机服务器安全吗,注意安全 彻底拒绝打印机被非法共享

    为了提高打印机的利用率 不少单位往往会通过局域网对打印机进行共享使用 不过这样一来 局域网内的非法用户也有可能趁机使用共享打印机 从而造成打印成本的 节节攀升 为了阻止非法用户对打印机随意进行共享 本文特意总结了以下几则 拒绝 妙招 相信这
  • 2021 Android面经及求职总结

    投递情况 主要投递了国内和国外的互联网公司 同时也投递了一些币圈企业 最终斩获battmd offer和一币圈的百万年薪offer 关于如何准备面试 可以关注我的面试准备系列文章如何准备一场技术面试 offer斩获情况 大大小小共12家公司