前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发迈向高级的一道坎!

Android开发迈向高级的一道坎!

作者头像
用户1907613
发布2021-06-17 20:23:17
3420
发布2021-06-17 20:23:17
举报
文章被收录于专栏:Android群英传

谁都想升职加薪进大厂,谁也都希望自己开发的app极致的流畅和顺滑~

很多半路出家,甚至科班出身、工作好几年的Android开发在面试的时候会遇到很多基础能力方面的面试,面试内容往往离不开Java语言本身,比如 JVM、并发 就是面试必问的地方...

虽然普通开发涉及不到JVM,但App性能与它有着千丝万缕的联系,每个App都会有自己的art虚拟机,甚至每一个进程都是有自己独立的虚拟机,内存的回收是由虚拟机来管理的,GC回收算法怎样,adj内存管理,这一切都基于虚拟机,虚拟机自然就变成大厂面试的香饽饽了。

JVM将运行时数据区分为线程私有和共享数据区两大类。其中线程私有的数据区包含程序计数器、虚拟机栈、本地方法区,所有线程共享的数据区包含 Java 堆、方法区,在方法区内有一个常量池。

内存泄露就是系统回收不了那些分配出去但是又不使用的内存, 形象点的比喻就像是水龙头没有拧紧,漏水了。

内存泄露分为常发性内存泄漏,偶发性内存泄漏,一次性内存泄漏,隐式内存泄漏。

其中要数隐式内存泄漏危害性最大,因为较之于常发性和偶发性内存泄漏更难被检测到。内存泄漏的堆积,将会消耗系统所有的内存!

要想避免出现这些问题,我们必须要熟悉JVM!

  • JVM的核心原理你懂多少?
  • 如何通过JVM原理指导我们代码实践开发?
  • 我们的代码是如何在栈区中运行的?
  • 如何使用字节码研究系统级原理?
  • 代码埋点技术如何实现AOP编程?

之前提到的并发编程也是属于高级工程师所必会的技术,我们平时开发中用得非常少,在大厂面试中却必问,这是为什么呢?

事实上,并发编程是一项非常重要的技术,虽然并发出问题是小概率事件,可一但出现问题,就非常恶心人,App直接crash都有可能发生……

我们平时项目中使用的各种技术,如okhttp、retrofit、glide、rxjava、aroute等,都由框架的设计人员把这些问题都考虑在内了,以至于普通开发人员并不关心这项技术。

但在一线大厂,公司的内部框架往往都是需要高工们和架构师们自已进行维护和扩展的,这时就显现出并发编程的重要性,一个不会并发的程序员,是不可能担任重要技术职位的。

而且,通过并发编程还有以下几点好处:

  • 提高资源利用率
  • 在程序任务上更加精简
  • 更好的响应程序
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 群英传 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档