Java 语言介绍
Java 发展简史
1991 年,James Gosling 在 SUN 公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品。另外,由于不同的厂商选择不同的CPU 和操作系统,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。所以,将这个语言命名为“Green”,类似于绿色软件的意思。后来,改名为 Oak,橡树的意思。改名后发现已经有一种语言叫这个名字了,再改名叫 Java。
Java 语言发展到今天经历了一系列的过程:
1991 年,SUN 公司的 Green 项目,Oak
1995 年,推出 Java 测试版
1996 年,JDK1.0
1997 年,JDK1.1
1998 年,JDK1.2,大大改进了早期版本缺陷,是一个革命性的版本,更名为 Java2。
2004 年,J2SE 5.0 (1.5.0) Tiger 老虎
2006 年,J2SE 6.0 (1.6.0) Mustang 野马
2011 年,JavaSE7.0 Dolphin 海豚
2014 年,JavaSE8.0
2017 年,JAVA 9.0
2018 年 3 月,JAVA 10
2018 年 9 月,JAVA 11
2019 年 3 月,JAVA 12
2019 年 9 月,JAVA 13
2020 年 3 月,JAVA14
SUN 公司已经被 oracle 公司收购,目前每半年更新一次 java 的版本。但是,企业中的主流仍然以 8 为主。对于初学者,应该以企业主流应用版本为核心进行学习,没有必须在此处追求最新版本。
Java 的核心优势
Java 为消费类智能电子产品而设计,但智能家电产品并没有像最初想象的那样拥有大的发展。然而 90 年代,Internet 却进入了爆发式发展阶段,一夜之间,大家都在忙着将自己的计算机连接到网络上。这个时候,遇到了一个大的问题。人们发现连接到 Internet 的计算机各式各样,有 IBM PC、苹果机、各种服务器等等,不仅硬件 CPU 不同,操作系统也不同,整个的网络环境非常复杂。这个时候,程序员们希望他们编写的程序能够运行在不同的机器,不同的环境中,这需要一种体系中立的语言(即跨平台)。Java 的研发小组户然发现他们用于小范围的语言也可以适应 Internet 这个大环境。
跨平台是 Java 语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖 IT 各行业的“第一大语言”,是计算机界的“英语”。虽然,目前也有很多跨平台的语言,但是已经失去先机,无法和 Java 强大的生态体系抗衡。Java 仍将在未来几十年成为编程语言的主流语言。
Java 各版本的含义
JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用这个版本是 Java 平台的核心,它提供了非常丰富的 API 来开发一般个人计算机上的应用程序,包括用户界面接口 AWT 及 Swing,网络功能与国际化、图像处理能力以及输入输出支持等。在上世纪 90 年代末互联网上大放异彩的 Applet 也属于这个版本。Applet 后来为 Flash 取代,Flash 即将被 HTML5 取代。
JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用
JavaEE 是 JavaSE 的扩展,增加了用于服务器开发的类库。如:JDBC 是让程序员能直接在 Java 内使用的 SQL 的语法来访问数据库内的数据;Servlet 能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP 是一种可以将 Java 程序代码内嵌在网页内的技术;
JavaME(Java Micro Edition):微型版,定位在消费性电子产品的应用上
JavaME 是 JavaSE 的内伸,包含 J2SE 的一部分核心类,也有自己的扩展类,增加了适合微小装置的类库:javax.microedition.io.*等。该版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。
Java 的特性和优势
跨平台/可移植性
这是 Java 的核心优势。Java 在设计时就很注重移植和跨平台性。比如:Java 的 int 永远都是 32 位。不像 C++可能是 16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
安全性
Java 适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使 Java 可以很容易构建防病毒,防篡改的系统。
面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于 C++为了照顾大量 C 语言使用者而兼容了 C,使得自身仅仅成为了带类的 C 语言,多少影响了其面向对方象的彻底性!Java 则是完全的面向对象语言。
简单性
Java 就是 C++语法的简化版,我们也可以将 Java 称之为“C++-”。跟我念“C 加加减”,指的就是将军 C++的一些内容去掉;比如:文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于 C 语言,因此学习起来完全不费力。
高性能
Java 最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的话,这个无法避免。Java 语言本身在发展中通过虚拟机的优化提升了几十倍的运行效率。比如,通过 JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使 Java 程序执行效率大大提高,某些代码甚至可以接待 C++的效率。
因此,Java 低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多 C++应用转到 Java 开发,很多 C++程序员转型为 Java 程序员。
分布式
Java 是为 Internet 分布式环境设计的,因为它能够处理 TCP/IP 协议。事实上,通过 URL 访问一个网络资源和访问本地文件是一样的。Java 还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java 多线程的简单性是 Java 成为主流服务器端开发语言的主要原因之一。
健壮性
Java 是一种健壮的语言,吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java 程序不可能造成计算机崩溃。即使 Java 程序列也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通异常处理机制加以处理
Java语言具有哪些特点?
Java语言是一门优秀的编程语言,它之所以应用广泛,受到大众的欢迎。是因为它有众多突出的特点,其中最主要的特点有以下几个。
1.简单性
Java语言是一种相对简单的编程语言,它通过提供最基本的方法完成指定的任务。程序员只需理解一些基本的概念,就可以用它编写出适用于各种情况的应用程序。Java摒弃了C++中很难理解的运算符重载、多重继承等概念;特别是Java语言使用引用代替指针,并提供了自动的垃圾回收机制,解决了程序员需要管理内存的问题。
2.面向对象
Java语言提供了类、接口和继承等原语,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯粹的面向对象的程序设计语言。
面向对象是当今主流的程序设计思想,Java是一种完全面向对象编程的语言,因此必须熟悉面向对象才能够编写Java程序。面向对象的程序其核心是由类和对象组成,通过类和对象描述现实事物之间的联系。这种面向对象的方法更有利于人们对复杂程序的理解、分析、设计、编写和维护。
3.安全性
Java语言安全可靠,例如,Java的存储分配模型可以防御恶意代码攻击。此外,Java没有指针,因此外界不能通过伪造指针指向存储器。更重要的是,Java编译器在编译程序时,不显示存储安排决策,程序员不能通过查看声明猜测出类的实际存储安排。Java程序中的存储是在运行时由Java解释程序决定的。
4.跨平台性
Java语言通过JVM(Java Virtual Machine,Java虚拟机)和字节码实现跨平台。Java程序由Java编译器编译成为字节码文件(.class),JVM中的Java解释器会将.class文件翻译成所在平台上的机器码文件,再执行对应的机器码文件即可。Java程序只要“一次编写,就可到处运行”。
5.支持多线程
Java语言支持多线程。多线程可以简单理解为程序中多个任务可以并发执行,从而显著提高程序的执行效率。
6.分布性
Java是分布式语言,既支持各种层次的网络连接,又可以通过Socket类支持可靠的流(Stream)网络连接。用户可以产生分布式的客户机和服务器,在这个过程中,网络变成软件应用的分布式运载工具。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。