前言
本文将对 Java 语言的发展历程、特点以及应用领域进行简要描述,如果看到本文的您是一个刚刚接触编程的小白,那么本文可能对您有帮助,如果您之前已经接触过一些编程的知识,那么本文的内容对您来说可能已经滚瓜烂熟了,选择性阅读即可。
计算机语言发展史
机器语言
机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一操作码在计算机内部都有相应的电路来完成它,或指不经翻译即可为机器直接理解和接受的程序语言或指令代码。机器语言使用绝对地址和绝对操作码。不同的计算机都有各自的机器语言,即指令系统。从使用的角度看,机器语言是最低级的语言。
由于使用二进制直接运行,所以机器语言的运行效率很高,但是由于使用二进制直接编码,导致了很多缺点:
- 大量繁杂琐碎的细节牵制着程序员,使他们不可能有更多的时间和精力去从事创造性的劳动,执行对他们来说更为重要的任务。如确保程序的正确性、高效性。
- 程序员既要驾驭程序设计的全局又要深入每一个局部直到实现的细节,即使智力超群的程序员也常常会顾此失彼,屡出差错,因而所编出的程序可靠性差,且开发周期长。
- 由于用机器语言进行程序设计的思维和表达方式与人们的习惯大相径庭,只有经过较长时间职业训练的程序员才能胜任,使得程序设计曲高和寡。
- 因为它的书面形式全是"密"码,所以可读性差,不便于交流与合作。
- 因为它严重地依赖于具体的计算机,所以可移植性差,重用性差。
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
汇编语言是计算机提供给用户的最快最有效的语言,也是能够利用计算机的所有硬件特性并能够直接控制硬件的唯一语言。但是由于编写和调试汇编语言程序要比高级语言复杂,因此目前其应用不如高级语言广泛。
汇编语言比机器语言的可读性要好,但跟高级语言比较而言,可读性还是较差。不过采用它编写的程序具有存储空间占用少、执行速度快的特点,这些是高级语言所无法取代的。在实际应用中,是否使用汇编语言,取决于具体应用要求、开发时间和质量等方面作权衡。
汇编语言作为机器语言之上的第二代编程语言,它也有很多优点:
- 可以轻松的读取存储器状态以及硬件I/O接口情况
- 编写的代码因为少了很多编译的环节,可以能够准确的被执行
- 作为一种低级语言,可扩展性很高。
与此同时,汇编语言的缺点也不可避免:
- 因为代码非常单调,特殊指令字符很少,所以造成了代码的冗长以及编写的困难
- 因为汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易
- 就算完成了一个程序,后期维护时候也需要耗费大量的时间。
- 因为机器的特殊性造成了代码兼容性差的缺陷。
高级语言
高级语言(High-level programming language)是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。
高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。
因为明确的目标性以及理解容易,一个新手很容易去学习高级编程语言。同时高级编程语言因为发展的历史,拥有很多函数库,用户可以根据自身的需求在代码中加入头文件来调用这些函数来实现自己的功能,当然使用者也可以根据自己的喜好编写函数来在后续的代码中调用。
高级编程语言作为一种通用的编程语言,它的语言结构和计算机本身的硬件以及指令系统无关,它的可阅读性更强,能够方便的表达程序的功能,更好的描述使用的算法。同时,它更 容易被初学者所掌握,很容易学习。而且容易学习掌握。但是高级编程语言因为是一种编译语言,所以他的运行速度比汇编程序要低,同时因为高级语言比较冗长,所以代码的执行速度也要慢一些。
高级编程语言,作为用户层面的编程工具,用户并不需要去了解硬件的结构,而是去用逻辑的语言去实现想要的目标,但是因为高级编程语言的架构高于汇编,所以不能编写直接访问硬件资源的系统程序,因此,高级编程语言必须要调用汇编语言编写的程序来访问硬件地址,但是这些往往不需要程序员来做。
Java版本历程
- 1991年 Green项目,开发语言最初命名为Oak (橡树)
- 1994年,开发组意识到Oak 非常适合于互联网
- 1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作
- 1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最
- 1998年,发布JDK 1.2,同年发布企业平台J2EE
- 1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生
- 2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0
- 2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME
- 2009年,Oracle公司收购SUN,交易价格74亿美元
- 2011年,发布JDK 7.0
- 2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本
- 2017年,发布JDK 9.0,最大限度实现模块化
- 2018年3月,发布JDK 10.0,版本号也称为18.3
- 2018年9月,发布JDK 11.0,版本号也称为18.9
其中加粗的为Java发展历程中最为重要的几个关键点。目前开发中使用较多的仍然是java8。
Java的特点
- 面向对象性
具有封装、继承、多态等面向对象的思想,可以用人类容易理解的形式对代码进行构建,相比于C等语言对代码的可读性、可复用性等有了质的飞跃。 健壮性
- 顶层代码隐去了C语言中指针的概念,减少了因为程序员对内存直接操纵而可能造成的致命性错误。
- 引入了内存垃圾回收机制,极大地避免了因错误地引用内存导致的内存溢出、内存泄漏等情况
- 跨平台性
一次编译,处处运行:由于java程序不和硬件直接打交道,而是运行在JVN虚拟机中,从Java程序的角度,Jvm提供的接口都是一样的,所以对于不同的操作系统,只需要安装对应的JVM虚拟机即可实现Java程序的跨平台运行。
Java应用领域
目前Java比较火的应用领域有:
- Java WEB 后台程序
- 大数据开发
- Android应用程序开发