2024年Android最全如果每个人都讨厌它,为什么 OOP 仍然如此普遍?_android oop,2024年最新华为安卓面试

Android高级架构师

由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习PDF文件、面试文档、源码笔记。

  • 330页PDF Android学习核心笔记(内含上面8大板块)

  • Android学习的系统对应视频

  • Android进阶的系统对应学习资料

  • Android BAT部分大厂面试题(有解析)

好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

OOP 取得了巨大的成功。但成功只是巧合吗?它还能在今年提供其他编程范式无法提供的独特功能吗?

在 1981 年 Byte 杂志的 8 月版中,David Robson 开始了他的文章,该文章成为对许多人的面向对象软件系统的介绍,他预先承认这与许多熟悉的命令式、自上而下编程不同。习惯了。

“许多不知道计算机如何工作的人发现面向对象编程的想法很自然。相比之下,许多有计算机经验的人最初认为面向对象系统有些奇怪。”

公平地说,几代人之后,将代码组织成更大的有意义的对象来模拟问题的各个部分的想法仍然困扰着程序员。如果他们习惯于自顶向下编程或函数式编程,将代码元素视为精确的数学函数,则需要一些时间来适应。在最初的炒作期承诺改进模块化和组织大型代码库之后,这个想法被过度应用了。随着 OOP 紧随其后的是 OOA(面向对象分析)和 OOD(面向对象设计),您很快就会觉得您在软件中所做的一切都必须分解为对象及其相互之间的关系。然后评论家赶到现场,其中一些人非常失望。

一些人声称在 OOP 下编写测试更难,重构需要格外小心。重用代码时会产生开销,Erlang 的创建者曾将其描述为一个案例,即你想要一根香蕉,但一只大猩猩拿着香蕉。一切都带有隐含的、不可避免的环境。

描述这种解决问题的新方法的其他方式包括将命令式程序员类比为“厨师或化学家,遵循食谱和公式以达到预期的结果”,而面向对象的程序员则类比为“希腊哲学家或 19 世纪的博物学家。对编程世界的生物和地点进行适当的分类和描述。”

成功只是巧合吗?

OOP 仍然是目前占主导地位的范式之一。但这可能是由于恰好是 OOP 的语言的成功。Java、C++ 和 Kotlin 统治着 Android 和 Swift 的移动设备,以及 iOS 的 Objective-C,因此除非您了解面向对象的方法,否则您无法开发移动软件。对于网络,它是 JavaScript、Python、PHP 和 Ruby。

问为什么这么多广泛使用的语言是 OOP 可能会混淆因果关系。理查德费尔德曼在他的演讲中辩称,这可能只是巧合。C++ 由Bjarne Stroustrup在 1980 年代初期开发,最初是作为 C 编程语言的一组扩展。在 C 的基础上,C++ 添加了面向对象,但 Feldman 认为它在从 C 的整体升级中变得流行,包括类型安全,并增加了对自动资源管理、通用编程和异常处理等特性的支持。

然后 Java 想吸引 C++ 程序员,并在 OOP 部分加倍努力。最终,Sun Microsystems 想要重复 C++ 的把戏,旨在让采用 Java 的开发人员最熟悉。

由于当时在 Web 浏览器中的独家集成,数百万开发人员迅速转向 Java。这样看来,OOP 似乎只是搭便车,而不是推动成功。

OOP 能做什么,这是它独有的吗?

OOP 有一些有价值的方面,其中一些方面使它无所不在,即使它有其缺点。让我们看看 OOP 的基石。

封装。这意味着数据通常对语言的其他部分是隐藏的——如果你愿意的话,可以放在一个胶囊中。OOP默认封装数据;对象包含数据和影响该数据的方法,良好的 OOP 实践意味着您提供 getter 和 setter 方法来控制对该数据的访问。这可以保护可变数据不被随意更改,并使应用程序数据更安全。

据说,这是 OOP 的最大好处之一。尽管它最常与面向对象编程相关联,但概念本身实际上与它是分开的,并且可以在不使用对象的情况下实现。抽象是这里封装的补充概念;在封装隐藏内部信息的地方,抽象为数据提供了一个更易于使用的公共接口。在任何情况下,它都不是唯一的 OOP 功能,并且可以通过隔离系统功能或一组数据的模块以及模块内对这些数据的操作来完成。

继承。因为可以将对象创建为其他对象的子类型,所以它们可以从这些对象继承变量和方法。这允许对象支持由前类型定义的操作,而无需提供它们自己的定义。目标是不要重复自己——同一代码的多次使用很难维护。但是函数式编程也可以通过可复用的函数来实现 DRY。内存效率也是如此。尽管继承确实有助于实现这一点,但FP 中的闭包概念也是如此。

文末

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。

最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【算法合集】

【延伸Android必备知识点】

【Android部分高级架构视频学习资源】

**Android精讲视频领取学习后更加是如虎添翼!**进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

8156601)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 24
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值