Java
Java是Sun Microsystems公司创建的一种编程语言的名称。这家公司被甲骨文公司收购,甲骨文公司继续对其进行更新。最新的版本是2020年3月发布的Java 14。此外唯一支持的版本是,最新的长期支持(LTS)版本Java 11,于2018年9月25日发布;而甲骨文发布的为"传统"的Java 8 LTS最后一次免费"公共更新"。下一个计划中的LTS版本是Java 17(LTS),计划于2021年9月发布。
Java在还在开发的时候叫Oak,它是面向对象的,也就是说它是基于对象的,这些对象一起工作,使程序完成它们的工作。Java代码看起来像C、C++或C#,但在大多数情况下,用这些语言编写的代码不经过修改就无法在Java中使用。
Java可以运行在许多不同的操作系统上,包括世界上最流行的移动操作系统Android(虽然Java继续在Android上使用,甚至其制造商Google也不再喜欢Java,现在Kotlin是他们的首选语言,也可以使用所有Java代码)。这使得Java平台独立。它的做法是让Java编译器把代码变成Java字节码,而不是机器代码。这意味着,当程序执行时,Java虚拟机解释字节码并将其翻译成机器代码。
Java概念
开发Java是为了实现五个主要目标。这五个目标是:
- Java应该是易学的、面向对象的、分布式的。
- Java应该是安全和强大的。
- Java不应该依赖于任何计算机架构或平台。
- Java应该能很好地发挥作用。
- Java应该能够有一个为它编写的解释器,并支持并行性和使用动态类型。
Java平台
Java平台是指Sun Microsystems公司的一组软件产品。该平台用于开发和运行Java程序。该平台包括执行引擎(称为Java虚拟机),允许Java程序在不同的计算机系统上做同样的事情。
这种既能在一个平台上开发软件,又能在其他平台上运行的能力称为"跨平台能力"。
Java程序示例
一个"Hello World"Java程序的例子。
Java程序的类型
Java程序的类型很多,运行方式也不同。
- Java Applet - 用Java编写的小程序,从网站上下载并在客户端计算机的网络浏览器中执行。
- 应用程序 - 在客户端计算机上执行。如果在线,则必须在运行前下载。
- JAR文件(Java存档)--用于将Java文件一起打包成一个文件(几乎和.zip文件一模一样)。
- Servlet - 运行在Web服务器上,帮助生成网页。
- Swing应用程序--用于构建一个具有GUI(窗口、按钮、菜单等)的应用程序。
- EJB--运行在Web服务器上,用于开发大型复杂的网站。
效益
Java通常被用来教学生如何作为第一语言进行编程,但也仍然被专业人士使用。
- Java要求对每个变量进行初始化。一些较老的语言,如C语言,允许变量不初始化,这可能会导致随机故障与神秘的bug。
- Java要求每个方法都声明一个返回类型--方法应该总是返回一个值,除非它的返回类型是void。这也防止了错误的发生。
- Java自带了大量的类和方法,Java API可以不用"从头开始"开发那么多代码。
- 与C语言不同的是,Java的基元类型,如int,在位数上总是相同的大小,这有助于实现跨平台的兼容性。
- Java过去被认为比C语言慢,但近年来这一点变得不那么重要了,因为计算机的速度更快了。
- Java有异常处理功能,需要程序员处理输入/输出错误等错误条件。
- 在一个Java平台上编译的代码可以在其他支持Java的平台上运行,而无需修改源代码或字节码。这意味着,一个人可以为Windows计算机制作一个Java程序,并让它运行在Linux计算机或Mac计算机上。
批评
Java也受到了批评。其中一些批评是:
- 通用性被添加到Java中,这样一来,现有的代码仍然可以继续运行。这是用类型擦除来实现的。这意味着在编译过程中,通用参数的实际类型被删除。这可能导致Java解释器有时会以意想不到的方式表现出来。
- Java没有C等语言大量使用的无符号整数类型。这也意味着,C语言和Java程序之间不可能直接交换数值数据。密码学在一定程度上也依赖于这种类型;这使得在Java中编写使用密码学的应用程序更加困难。
- IEEE定义了一个浮点运算的标准,IEE 754。Java只支持这个标准的部分功能。
问题和答案
问:Sun Microsystems创建的编程语言的名称是什么?答:由Sun Microsystems创建的编程语言叫做Java。
问:目前谁支持并保持Java的最新状态?
答:甲骨文公司目前支持并使Java保持最新状态。
问:当前长期支持(LTS)的Java版本有哪些?
答:目前长期支持(LTS)的Java版本是17、11和8。
问:最新版本的Java是什么时候发布的?
答:最新版本的Java,即19版,是在2022年9月发布的。
问:除了甲骨文,还有其他公司支持Java吗?
答:有,Eclipse Adoptium也支持Java,8版至少在2026年5月,17版至少在2027年9月。
问:Java使用什么类型的代码?
答:Java 使用面向对象的代码,这意味着它是基于对象的,这些对象一起工作,使程序完成其工作。它看起来与C、C++或C#相似,但用这些语言编写的代码在大多数情况下不做修改就无法使用。
问:Java是如何使自己独立于平台的?
答:Java通过使编译器将代码变成一种特殊的格式,称为字节码,而不是机器码,使自己具有平台独立性。这意味着当程序被执行时,字节码可以被称为虚拟机的特殊程序解释,虚拟机将其翻译成机器码,因此它可以在不同的操作系统上运行,如Android。