Java语言是一种优秀的编程语言。它的优点是与平台无关,可以一次编写,随处运行。Java是一种面向对象的计算机语言,简洁、高效、可移植性强。下面介绍一下Java的起源和前景,它的优良传统,技术体系,学习路线和组后体验。
1 Java前世今生
1.1 Java起源
一个名为Green的项目,起源于Java公司,最初旨在开发一个用于家用电子消费产品的分布式代码系统,使通信和控制信息可以发送到冰箱、电视和烤面包机等家用电器上进行控制和信息交换。起初,绿色工程的工程师打算采用C语言,但C语言相当复杂。最后,经过裁剪、优化和创新,1990年,由Sun公司的(James Gosling)领导的一个小组开发了一种新的独立于平台的语言Oak(基于C. Oak的前身Oak(Java)),Oak是以Gosling办公室外一棵枝叶繁茂的橡树命名的,这种树在硅谷非常常见。
1995年1月,Oak更名为Java,因为Oak是一家显卡制造商的注册商标。橡树要想成长发展,在法律层面改名势在必行。爪哇是印度尼西亚“爪哇”岛的英文名,因盛产咖啡而闻名。这就是为什么Java的官方商标是一杯浓咖啡。随后Sun开发了HotJava浏览器,得到了时任Sun公司CEO Scott McNealy的支持,触发Java进入互联网。
1.2 Java简史
Java第一个版本诞生至今已有二十多年,至今已有四分之一个世纪。我们可以看到JDK的版本已经发展到了JDK 13。在过去的二十年里,无数与Java相关的产品、技术和标准诞生了。现在,让我们走进时间隧道,回顾一下从Java语言被构想出来的时候,Java的发展轨迹和历史变迁。
1.3 Java前景展望
目前,Java仍然是世界上排名第一的编程语言之一。但是,Java最终会走弱。但意想不到的好处,也是Java真正意想不到的荣耀,是它为自己的替代品创造了一条非常平坦的道路,尽管Java本身已经到了无法再发展的地步。未来的所有语言都应该从中学习:要么创造一种可重构的文化(就像Python和Ruby一样),要么让竞争对手茁壮成长。
从Java的发展来看,以Java每半年更新一次的节奏,越来越多存在于其他语言中的优秀特性将会出现在新版Java中。相信借鉴了别人的Java,能够在相当长的时间内继续保持目前的活力。
2 Java优良传统
在各种讨论中,有人认为C语言是一种设计拙劣的语言。我认为理解C语言和Java语言的选择有助于理解更大的视角。
Java设计人员写了一份有影响力的“白皮书”来解释设计的初衷和完成情况,并发布了简短的总结。本摘要由以下11个关键术语组成:
(1)简单性 (2)面向对象 (3)网络技能(4)健壮性 (5)安全性 (6)体系结构中立(7)可移植性(8)解释型
(9)高性能 (10)多线程 (11)动态性
虽然Java更新迭代很快,但是Java一直保持着优良的传统,这也是Java一直受到大家喜爱的原因。
3 Java技术体系
我们可以把Java编程语言、Java虚拟机、Java类库统称为JDK. JDK是支持Java程序开发的最低环境,JDK经常用来指代整个Java技术体,在这里没有歧义。Java SE API子集和Java虚拟机在Java类库API中可以统称为JRE,和JRE是支持Java程序运行的标准环境。如下图所示:
4 Java学习路线
Java学习的路线要整体遵循:初级阶段-中级阶段-高级阶段.不建议一开始就“越级”,要知道“欲速则不达”。在这三个阶段中,知识点在彼此内部没有必然的顺序,我们可以根据自己的实际情况“有针对性地”学习。无论处于哪个学习阶段,都要注意Java的实操练习。
c="https://www.361zimeiti.cn/wp-content/uploads/2021/11/2021110814135099.png">“罗马不是一日建成的(Rome was not built in a day)”,编程高手也不是一日能成就的。《荀子·劝学篇》亦有云:“骐骥一跃,不能十步;驽马十驾,功在不舍。学习Java的途中没有捷径,需要进行不断地理论学习、反复地实战练习才能将代码运用灵活,就好像练习武功一样,只有重视基本功,并持之以恒,才能让自己的动作收放自如,招式炉火纯青。
5 Java学习经验
Java是一门面向对象编程(Object-oriented programming,简称OOP)语言,在学习的过程中一定要多从面向对象的角度去考虑问题。在初级入门阶段,要以实践为主,多动手,增强自己对Java代码的感性认识。感性认识积累多了,再配合书籍学好理论,这才能有高层次的理性认知。下面给出一些低级程序设计和编写代码的建议:
- 先让它工作,然后再让它变快。即使你确定一段代码非常重要并且它是你系统中的主要瓶颈,也要先尽可能简单的设计使系统首先运行。然后如果速度不够快,请对其进行分析。
- 创建类时,给类起个清晰的名字,就算不需要注释也能理解这个类。
- 优先选择 接口 而不是 抽象类。
- 遵循编码惯例。
- 请注意,相比于编写代码,代码被阅读的机会更多。清晰的设计可能产生易于理解的程序,但注释,详细解释,测试和示例是非常宝贵的,它们可以帮助你和你的所有后继者。如果不出意外,试图从JDK文档中找出有用信息的挫败感应该可以说服你。
- 无论使用何种编码风格,如果你的团队(甚至更好是公司)对其进行标准化,它就确实会产生重大影响。这意味着,如果不符合这个标准,那么每个人都认为修复别人的编码风格是公平的游戏。标准化的价值在于解析代码可以花费较少的脑力,因此可以更专注于代码的含义。
- 从设计的角度,寻找和分离那些因不变的事物而改变的事物。
- 不要通过子类扩展基本功能。如果一个接口元素对于类来说是必不可少的,则它应该在基类中,而不是在派生期间添加。如果要在继承期间添加方法,请考虑重新设计。
- 使用继承和覆盖方法来表达行为的差异,而不是使用字段来表示状态的变化。如果发现一个类使用了状态变量,并且有一些方法是基于这些变量切换行为的,那么请重新设计它,以表示子类和覆盖方法中的行为差异。一个极端的反例是继承不同的类来表示颜色,而不是使用“颜色”字段。
- 使类尽可能原子化。 为每个类提供一个明确的目的,它为其他类提供一致的服务。如果你的类或系统设计变得过于复杂,请将复杂类分解为更简单的类。