1.Java的历史1995年5月23日,SunMicrosystems宣布Java语言的诞生。当时使用Java的总人数不到30人,包括Java语言之父。大多数联合创始人,包括JamesGosling,都无法想象Java会在接下来的二十年内对互联网和我们的生活产生如此深远的影响。Java目前提供以下三个版本:JavaPlatform,EnterpriseEdition(JavaEE:JavaPlatformEnterpriseEdition);Java平台标准版(JavaSE:Java平台标准版);Java平台微型版(JavaME:Java平台微型版)。2006年,在JavaOne大会上,SUN宣布将在GNU通用公共协议(GPL)框架下为开源世界贡献Java平台。企业版(Enterprise)。这是一个“历史性”的变化。2、语言特点Java语言的诞生重新定义了面向对象编程(OOP)。在创建Java语言之初,就定下了以下目标:易学,面向对象;必须坚固和安全;摆脱平台依赖;高性能执行;必须是可解释的、多线程的、动态的。2.1面向对象面向对象指的是一种编程方法。面向对象的主要思想是围绕我们所操纵的“事物”(即对象)来设计软件。计算机硬件的发展为软件技术的发展提供了更好的土壤。为了使大型软件项目易于管理,降低开发和维护成本,面向对象技术应运而生。为了理解面向对象技术诞生的原因,下面我们将介绍几种具有代表性的软件技术。2.1.1汇编语言汇编语言是软件技术的开端。这种语言非常接近机器语言,可以很容易地转换成可执行代码。使用汇编语言的程序员必须了解计算机的详细体系结构才能编写程序。2.1.2程序设计语言继汇编语言之后,发展出一种高级语言,利用该语言的编译器(如gcc)可以将高级程序代码转换成机器指令。这样,程序员就不需要对计算机硬件的体系结构有深入的了解。为了提高代码的可重用性并尽量减少GOTO指令的使用,引入了面向过程的技术。在简化软件过程控制的创建和维护的同时,它忽略了数据的组织。调试和维护一个有很多全局变量的程序成了程序员的噩梦。2.1.3面向对象语言在面向对象语言中,数据被抽象地封装在对象中。特定于对象的数据只能通过该对象访问。这样,一个程序就变成了一系列对象之间的交互。Java语言是一种纯面向对象的语言。2.2跨平台我们可能经常听到一句口号——“compileonce,executeeverywhere(写一次,随处运行。)”,这里说的是Java的跨平台,我们先看看c或者c++,代码如何在不同的平台上运行platforms:在c或c++中,我们先将源代码文件编译成机器码文件,然后执行。在这个过程中,机器码文件必须在其编译的平台上执行(这里的平台是指Windows、Linux、MacOS等),也就是说如果我们的代码要在多个平台上执行平台,必须多次编译程序。这不仅给程序员带来了繁琐的开发步骤(代码稍有改动就需要重新编译整个程序),也给程序带来了更大的漏洞风险。当代码编译成可执行文件后,可执行文件不能动态改变。这时候就需要修改代码,重新编译,替换旧的可执行文件。我们来看看Java是怎么做的:Java的思想是将代码编译成中间语言,中间语言是字节码,解释器是Java虚拟机(JVM)。字节码文件可以是通用的,JVM是特定于平台的。如下图所示:每个平台都需要一个JVM,这里JVM是实现“到处执行”的关键前提,所以,在Java中,我们只需要生成一个字节码文件就可以保证我们写的程序可以到处运行该平台正在运行。2.3标准化Java中提供了大量的标准化库,保证了我们使用统一的接口来控制程序。2.4异常处理旧的异常处理方式是:让每个函数都返回一个错误码,调用者会检查返回的内容,导致代码中到处都是错误码校验,导致源码难以阅读。在异常处理的新方法中,函数或方法不再返回错误代码,而是通过抛出异常来处理异常。在Java中,catch关键字可用于捕获try语句块中发生的异常。这样我们就不需要频繁的通过定义错误码来处理异常,代码的可读性大大提高。2.5动态类加载在Java中,如果一个类在执行阶段不需要,那么这个类就不会被编译成字节码。在网络编程中,这个特性是非常常用的。当我们不知道将执行什么代码时,程序可以从文件系统或远程服务器加载类。2.6自动垃圾收集在C、C++等常规语言中,程序员必须保证分配的内存被释放。避免造成内存泄漏的麻烦。内存资源或缓冲区具有特定的操作模式以获得最佳性能。一旦缓冲区充满数据,不再使用后需要清除其内容。如果程序员忘记清除代码中的内容,内存很容易超载。Java使用自动垃圾收集器在对象的生命周期内管理内存。程序员决定何时创建对象,Java运行时负责在对象不再使用时恢复内存。一旦不再有对该对象的引用,垃圾收集器将自动释放无法访问的内存。自动垃圾回收机制使用Java编写的代码更加健壮,降低了内存泄漏和溢出的风险。程序员唯一需要注意的是对象创建的速度。如果应用程序创建对象的速度快于垃圾收集器释放它们的速度,则可能会导致与内存相关的问题。3.Java的版本历史Java的主要版本及其发布日期如下:JDK1.0(1996年1月23日)JDK1.1(1996年2月19日)J2SE1.2(1998年12月8日)J2SE1.3(2000年5月8日)J2SE1.4(2002年2月6日)J2SE5.0(2004年9月30日)JavaSE6(2006年12月11日)JavaSE7(2011年7月28日)JavaSE8(2014年3月18日)JavaSE9(2014年9月21日,2017)JavaSE10(2018年3月20日)JavaSE11(2018年9月25日)JavaSE12(2019年3月9月19日)JavaSE13(2019年9月17日)JavaSE14(2020年3月17日)JavaSE15(2020-09-15)JavaSE16(2021-03-16)四、名词解释后面会详细介绍如何在不同平台安装Java。在安装Java之前,我们需要先了解两个名词,JDK和JRE:JRE:Java运行时环境(JavaRuntimeEnvironment)JDK:Java开发工具包(JavaDevelopmentKit)以上两个名词是Java平台的两个重要软件。它们可以分别帮助用户运行和开发Java程序。JDK是JRE的一个超集,包含了JRE的所有内容,以及小程序和应用程序的开发。编译器和调试器等工具。简单的说,如果我们要使用Java语言开发应用程序,就需要在我们的电脑上安装JDK。本教程使用最新版本的Java16。5.学习基础学习本教程,最好具备一定的计算机基础知识,熟悉计算机软件的下载和安装。当然,如果你没有任何基础知识也不用担心,本教程会尽量用通俗易懂的语言对知识点进行讲解。6.总结在大多数人眼里,Java语言已经是完美的了,但是Java语言也不是没有缺陷的。Java语言缺乏硬件特有的数据类型,也没有指针等功能,也没有可以指向任意地址的编程方法。尽管这些特性有可能被程序员误用或滥用,但它们是强大的工具。在本节中,我们初步了解了Java语言的历史和主要特点。您渴望了解更多有关Java的知识吗?所以在下一节中,我们将学习如何在我们的计算机上安装Java。微信公众号
