关于java:Android开发如何准备技术面试含Android面试押题

40次阅读

共计 4829 个字符,预计需要花费 13 分钟才能阅读完成。

往年毋庸置疑是找工作的寒冬,每一个进去找工作的同学都是值得尊敬的。当初找工作,尽管略难,然而反过来看也会逼迫咱们成为更加优良的本人。

然而不论是淡季还是寒冬,有一些优良的同学找工作还是挺顺利的。所以说还是得进步咱们本人的硬实力。

本文次要解答这些问题,如果说你想晓得以下几点,就可以看上来了

  • 当下好找工作嘛
  • 如何写简历
  • 如何筛选靠谱的公司
  • 我的教训程度能拿多少的工资
  • 问到我的项目中的技术难点怎么答复
  • 2021 年 Android 面试押题
  • 如何和 HR 聊天,比方谈钱等等

一、当下好找工作嘛

想必大家当初常常能看到某某公司又裁员了,会放心是不是找不到工作了。其实总的来说尽管当下的环境的确不怎么好,然而有裁员的公司,也必定有招人的公司,并且招人的公司肯定比裁员的公司多得多。

那么再来答复这个问题「当下好不好找工作」。对于技术好的人来说,永远不会放心这个问题。然而对于技术不那么好的人来说,的确须要一些技巧能力比他人有更多的机会。比如说写一封清晰明了的简历,在面试前好好筹备等等。

总的来说,机会是留给有筹备的人。无论环境好与差,认真筹备的你必定会比他人有更多的机会。

二、如何写简历

平时有在做批改简历的免费服务,在公司里也会当个面试官啥的,总的来说也算看过很多简历了。然而大部分人的简历的套路都是一样的,我的项目用了什么技术栈,做了什么性能,总的来说就是流水账。

那么一旦你写出有别于这类套路的简历,你的简历必然会被用人方多看几眼,减少点成功率也是必然的。

一般来说我会这样倡议他人写简历:

  • 全文杜绝任何的精通字眼,如果你真的精通,不须要投简历找工作了。
  • 简历管制在两页左右,不须要找什么简历模板,间接 Markdown 生成 PDF 文件,面试官不在意你的简历有多难看,他更在意的是你的简历内容。
  • 任何英文单词留神大小写,数字以及英文留神与中文之间有空格。
  • 我的项目中无需介绍这个我的项目到底有啥性能,单刀直入这个我的项目中最值得说的内容。比方遇到的 Bug,本人的思考等等。然而可能很多人会说,业务很简略没什么好说的或者压根没遇到什么问题。遇到这个问题的时候,首先跳脱出业务的框架,去思考其余的问题。置信每个人都写过组件,然而对于如何设计一个好的组件来说就不是每个人都能做的事件了。
  • 写我的项目教训最好依照这样的思路:遇到了什么问题,如何解决以及后果。
  • 假如简历上的每个技术点面试官都会问到,斟酌所有的知识点,保障都能答复。

三、如何筛选靠谱的公司

一家靠谱的公司,肯定是以下几点加起来的:牛逼的外围管理层、不错的 idea、高额的融资、有前景的行业。

前两点对于求职者来说根本是黑盒,因而咱们只能从前面两点来筛选公司了。

晚期的融资越高,领投的公司越牛逼,那么这家公司靠谱的几率越大。因为这些公司的决策人都不是傻子,人家必定有短缺的理由才会抉择置信并投钱给这家公司。

另外一个有前景的行业也是必须条件,如果你不晓得啥是有前景的行业,就从与人非亲非故的行业筛选吧。比方吃、住、行、教育等等。

这时候你可能会说,那我如果理解到一家公司的这些状况呢?那么「天眼查」能够完满解决你这个问题。咱们能够通过这个网站具体理解到一家公司的融资、行业、竞品、法律危险、管理层、产品等等信息。

四、我的教训程度能拿多少的工资

对于这个问题,我真的很想说多少教训真的和多少工资没多大关系。

雷同的一年教训,有人只能拿 10K,然而有人却能拿到 20K,起因就在于两个人的技术能力不一样。

你技术好,就能比他人多要工资;你技术个别,就只能拿少点的工资,这是一个很事实的问题。所以工资只与技术挂钩,而不是你所谓的教训。

如果只是想理解行业均匀薪水,间接去看当地的企业给出的工资是多少就好了。如果感觉本人薪水不合乎行业均匀薪水,就怯懦的跳槽呗。

五、问到我的项目中的技术难点怎么答复

对于这个问题来说,面试官考查的就是你的学习能力以及解决问题的能力。

很多人遇到这个问题会很懵逼,感觉根本啥问题都谷歌解决了。当然如果你真的有遇到不是马上能通过谷歌解决的问题便是极好的,依照形容问题、如何解决问题、后果这几个步骤来答复就行了。

那么如果你感觉你的我的项目真的很简略,没有什么可说的话,就依照以下的几个思路来聊这个话题。比如说你之前从没接触过某个技术,你是如何去学习这个技术的,在学习的过程中遇到了什么问题,怎么解决的。比如说你写了这个我的项目,本人有了什么感悟、想法。

因为这道题目面试官不是说肯定要听你讲出我的项目里到底遇到了什么难的问题,而是考查你的学习能力以及解决问题的能力。即便你没有什么干货能够说,说点本人的学习过程、挫折、想法感悟也是能够的,毕竟总比说感觉都很简略来的好。

六、2021 年 Android 面试押题

Java 相干

1. 容器(HashMap、HashSet、LinkedList、ArrayList、数组等)

2. 内存模型

3. 垃圾回收算法(JVM)

4. 垃圾回收机制和调用 System.gc() 的区别?

5. 类加载过程(须要多看看,重在了解,对于热修复和插件化比拟重要)

6. 反射

7. 多线程和线程池

8. 设计模式(六大根本准则、我的项目中罕用的设计模式、手写单例等)

9.Java 四大援用

10.Java 的泛型

11.final、finally、finalize 的区别

12. 接口、抽象类的区别

(Java 相干答案地址)

Android 相干

1. 自定义 View

2. 事件拦挡散发

3. 解决过的一些性能问题,在我的项目中的理论使用

4. 性能优化工具

5. 性能优化(讲讲你本人我的项目中做过的性能优化)

6.Http[s] 申请慢的解决办法(DNS、携带数据、间接拜访 IP)

7. 缓存本人如何实现(LRUCache 原理)

8. 图形图像相干:OpenGL ES 管线流程、EGL 的意识、Shader 相干

9.SurfaceView、TextureView、GLSurfaceView 区别及应用场景

10. 动画、差值器、估值器(Android 中的 View 动画和属性动画 – 简书、Android 动画 介绍与应用)

11.MVC、MVP、MVVM

12.Handler、ThreadLocal、AsyncTask、IntentService 原理及利用

13.Gradle(Groovy 语法、Gradle 插件开发根底)

14. 热修复、插件化

15. 组件化架构思路

16. 零碎打包流程

17.Android 有哪些存储数据的形式。

18.SharedPrefrence 源码和问题点;

20.sqlite 相干

21. 如何判断一个 APP 在前台还是后盾?

22.AMS、PMS

23.Activity 启动流程,App 启动流程

24.Binder 机制(IPC、AIDL 的应用)

25. 为什么应用 Parcelable,益处是什么?

26.Android 图像显示相干流程,Vsync 信号等

(Android 相干答案地址)

源码了解

  • Glide:加载、缓存、LRU 算法 (如何本人设计一个大图加载框架)(LRUCache 原理)
  • EventBus
  • LeakCanary
  • ARouter
  • 插件化(不同插件化机制原理与流派,优缺点。局限性)
  • 热修复
  • RXJava(RxJava 的线程切换原理)
  • Retrofit(Retrofit 在 OkHttp 上做了哪些封装?动静代理和动态代理的区别,是怎么实现的)
  • OkHttp

(源码相干答案地址)

算法与数据结构

  • 工夫复杂度 / 空间复杂度
  • 罕用的排序算法有哪些?
  • 字符串反转
  • 链表反转(头插法)
  • 如何查找第一个只呈现一次的字符(Hash 查找)
  • 如何查找两个子视图的独特父视图?
  • 无序数组中的中位数 (快排思维)
  • 如何给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
  • 二叉树前序、中序、后序遍历
  • 最大 K 问题
  • 广度、深度优先搜索算法
  • String 转 int。外围算法就三行代码,不过临界条件很多,除了判空,还须要留神正数、Integer 的最大最小值边界等;
  • 如何判断一个单链表有环?
  • 100 亿个单词,找出呈现频率最高的单词。要求几种计划;
  • 链表每 k 位逆序;
  • 镜像二叉树;
  • 找出一个无序数组中呈现超过一半次数的数字;
  • 计算二叉树的最大深度,要求非递归算法。
  • String 形式计算加法。

(算法与数据结构相干答案地址)

网络

1. 网络框架比照和源码剖析

  1. 网络七层协定有哪些?
  2. Http 和 Https 的区别?Https 为什么更加平安?
  3. HTTPS 的连贯建设流程
  4. 解释一下 三次握手 和 四次挥手
  5. TCP 和 UDP 的区别
  6. Cookie 和 Session
  7. DNS 是什么?
  8. DNS 解析过程

10.HTTP 报文构造

11.HTTP 与 HTTPS 的区别以及如何实现安全性

12. 如何验证证书的合法性?

13.https 中哪里用了对称加密,哪里用了非对称加密,对加密算法(如 RSA)等是否有理解?

14.client 如何确定本人发送的音讯被 server 收到?

15. 谈谈你对 WebSocket 的了解

16.WebSocket 与 socket 的区别

17. 谈谈你对安卓签名的了解。

18. 请解释安卓为啥要加签名机制?

19. 视频加密传输

20.App 是如何沙箱化,为什么要这么做?

21. 权限管理系统(底层的权限是如何进行 grant 的)?

(网络相干答案地址)

Kotlin 相干

1. 从原理剖析 Kotlin 的提早初始化: lateinit var 和 by lazy

2. 应用 Kotlin Reified 让泛型更简略平安

3.Kotlin 里的 Extension Functions 实现原理剖析

4.Kotlin 系列之顶层函数和属性

5.Kotlin 兼容 Java 遇到的最大的“坑”

6.Kotlin 的协程使劲瞥一眼

7.Kotlin 协程「挂起」的实质

8. 到底什么是「非阻塞式」挂起?协程真的更轻量级吗?

9. 资源混同是如何影响到 Kotlin 协程的

10.Kotlin Coroutines(协程) 齐全解析

11. 破解 Kotlin 协程

(Kotlin 相干答案地址)

Flutter 相干

1.Flutter 原理与实际

2. 揭秘 Flutter Hot Reload(原理篇)

3.Flutter 动态化摸索

4.Flutter 如何和 Native 通信 -Android 视角

5. 深刻了解 Flutter Platform Channel

6.Flutter Engine 编译指北

7. 深刻了解 Flutter 多线程

8.Flutter 状态治理 – 初探与总结

9.Flutter | 状态治理指南篇——Provider

10. 深刻了解 Flutter 利用启动

11.Flutter 渲染机制—UI 线程

(Flutter 相干答案地址)

七、如何和 HR 聊天,比方谈钱等等

首先你面到 HR 了,阐明你根本曾经成为备选人之一了。这时候 HR 会和你聊很多问题,这些问题都是为了理解你的一些集体状况的。比如说性情啦、反馈能力、情商等等。另外大部分公司的 HR 并没有一票否决权,面试没有胜利多半是有更好的备选人而不是因为 HR 把你卡掉了。

而后说到谈钱的一个问题。首先以起码的工资招到须要的人必定是 HR 的考核之一,所以压价是很失常的一个事件。并且上家公司的薪资也是一个很重要的参考,一般来说涨薪幅度在 30% 以上是很牛逼的事件了,通常都在 20% 左右。

你的开价个别就是 offer 的下限了,思考到压价的状况,你能够在本来冀望薪水上上浮 1K 左右,而后能够依据面试的状况来有选择性的开价。

  • 面的不错,原本想要 16K 的,那么就多要个 1-2K 没啥问题
  • 面的个别,那就报 16 K 吧
  • 面的个别或者不大好,然而又很想进这家公司,能够酌情降落 1-2K,这个次要还是看本人
  • 不怎么想去这家公司,随便开价

八、结语

我始终感觉技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等告诉。

首先,技术面试是一个 意识本人 的过程,晓得本人和里面世界的差距。

更重要的是,技术面试是一个双向理解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他当前可能就是你的共事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图理解他的工作内容、理解这个团队的气氛。

找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在本人的心里划分一个比例。

正文完
 0