首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java面向对象的迷途

在这离算法似乎相去甚远的世界里,你能否捕捉到那一丝丝美感

如果你是Java程序员,那么于你而言,Java只是一件用来工作的工具,还是你真的能如品味Java咖啡一样品味它。在这离算法似乎相去甚远的世界里,你能否捕捉到那一丝丝美感。

初识Java,美好又丑恶的面向对象

Java作为老牌的编程语言,不仅见证了互联网风云变幻的这二十多年,更是这二十年风云变幻的主宰。作为在C、C++基础语法上开发的一门编程语言,Java无疑开创了一个面向对象编程的黄金时代。

我们为面向对象而欢呼,同时也因面向对象而疑惑。使用面向对象编程技术,我们可以用极少量的代码实现复杂的功能,我们可以通过复用来实现我们原本完成不了的算法。然而面向对象就像一个美丽的海市蜃楼,它确实使编程的入门门槛降低了不少,然而入门以后,我们大多数人却如同走进了一个弥漫着迷雾的森林,兜兜转转,始终在同一条道路上绕圈子,无法脱离面向对象的怪圈。

对绝大多数人来说,在面向对象的世界里,似乎经验与记忆力是唯一可以胜任这份技能的基本功,在编程中间,我们看不到算法的影子,我们糊里糊涂就做出了想要的东西,却在深入源码追根溯源之时绕进了一个又一个迷宫,找不到出路,甚至溯源到最底层也发现找不到所谓的算法。

然而这一切并非面向对象惹的祸,如果非要怨,就怨那代码的组织是多么的惹人心烦吧,如果不是面向对象,这份工作可能更加的丑陋不堪。

算法永远是根本

如果你编程有一段时间了,那么你一定会知道算法这个词汇。如果你写过C语言的程序,你会明白算法的基础性以及重要性。然而来到Java的世界,我们却极少见到算法的影子。也许你会问,Java需要算法吗?

的确,Java的世界里,我们谈论设计模式,谈论框架、架构比算法多得多。然而算法为根本,无论是设计模式、框架,或者架构,都是以算法作为根基的,可以说没有算法思维,你也不会真正用通设计模式,不会灵活运用框架,不会设计良好的架构模式,也就是说,也许不是一个良好的Java程序员。

那么Java里算法的影子又在哪里呢?我们来想一个问题,如果只给你API,那么你能否不经过组合设计就能实现想要的功能?如果答案是否定的,那么组合API不就是算法的体现。这个解释足以说明算法在Java中的体现,然而即使是Java,也有类似C语言的算法实现,最鲜明的例子便是容器类库,在容器类库的实现,很多地方自然而然采用了最底层的算法。

而避开容器类库的实现这种底层算法不谈,在组合使用API时,我们可以想一想,我们所做的工作是否是设计模式的使用,框架的使用,以及架构的设计?也就是说算法同样作用于这些层面,如果你仍未编出算法的感觉,那么就该抓点紧了。

综上,平心而论,Java的面向对象远非短短一篇文章便能说清,关注+转发,私信我可以更深入探讨哦。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200615A0UXGO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券