笨方法学 Java -00-概论
作者:谎言诞行    发布时间:2023年12月30日

        在Java语言诞生之前,世界上已经有不少计算机语言。其中,比较流行的是汇编语言(Assembly Language)、Basic语言、C语言、C++语言。也许,有人会问,为什么有了这么多语言,还要创造一个Java语言出来呢?

        这个问题,主要来自于计算机理论中的一个逻辑争端,面向过程与面向对象。对于非计算机专业的人士,可能对这个比较陌生。下面,请听我娓娓道来。

        面向过程面向对象,它们的差异点在于关注的内容不一样。面向过程,更关注事情的细节。以做面包为例子,面向过程的处理,需要把和面、醒发、蒸煮整个过程事无巨细,详细记录,这样才能完成任务。而面向对象的处理,更像是你请了一个面点师。在做面包时,你只需要告诉他做什么面包。至于具体怎么做,那是厨师的事情,你只需要负责吃即可。

        以上总结,面向过程偏向微观,面向对象偏向宏观。那么又有人会说,面向过程的语言也能做系统,为什么还需要面向对象呢?这个就跟大型软件的建设有关了。

        自有计算机语言以来,人们一直在致力于用计算机技术解决日常生活的问题。如果我们要建设一个大型的系统,那必须有很多不同的模块参与构成,细节将变得繁杂,程序的维护工作将无比巨大。

        这就像我们开面包店,请面点师做面包总比自己做简单吧,如果业务量大,我们可以请更多面点师。做面包的细节,交给面点师自己负责,我们作为一个管理者,负责监督和下单即可。

        至此,大家应该对面向对象有所了解。它的最大好处,就是把细节封装起来,管理和维护的工作量将大大降低。

        前面我们提到的语言中,C++语言也是一门半面向对象的语言,为什么不选择它呢?这个其实与C++自身的特性有关。

        C++语言其实是在C语言的基础上发展起来的。C++语言在扩展C语言的同时,保留了一些C语言的特性用于程序性能优化(比如:指针操作)。在计算机系统发展的早期,有不少大型软件是用C++语言建设的。这些软件基本上都有一个通病,就是代码晦涩难懂,维护起来非常麻烦。

        说起来吧,成也风云,败也风云。每当遇到性能瓶颈,程序员就使用C语言特性来优化,优化是快速有效的。但是,我们要留意一个现象:随着计算机普及,计算机从业人员越来越多,程序员质量是参差不齐的。在遇到这些优化过的代码,新的计算机从业者往往看不懂代码,无法维护。

        以汽车的换挡方式来举例。早期汽车的变速箱都是手动挡的,换挡需要踩离合踏板,拨动挡杆。如果是经验丰富的驾驶员,换挡动作一气呵成极具观赏性。但是,新手往往不喜欢手动挡,换挡总不利索。为了增加销量,汽车公司推出了自动挡变速箱,就算是新手,一样能体验驾驶乐趣。

        所以,很多时候,不是C++语言不如Java语言,而是时代选择了Java语言。在20世纪90年代,詹姆斯·高斯林 (James Gosling)发布了新一代编程语言:Java。

        后续,我们将以极简风格给大家介绍 Java 这门语言。

填写一种颜色的字符(不区分大小写),1分钟有效,点击图片刷新