海上生明月,天涯共此时。
Java
是一种通用的计算机编程语言,它具有卓越的通用性、高效性、平台移植性和安全性。它旨在让应用程序开发人员“write once, run anywhere”
(WORA
),这意味着编译的Java
代码可以在支持Java
的所有平台上运行,而无需重新编译。
例如,你可以在UNIX
上编写和编译Java
程序,并在Microsoft Windows
,Macintosh
或UNIX
计算机上运行它,而无需对源代码进行任何修改。WORA
是通过将Java
程序编译成称为字节码的中间语言来实现的。字节码的格式与平台无关。称为Java
虚拟机(JVM
)的虚拟机用于在每个平台上运行字节码。
Java
最初是由Sun Microsystems
的James Gosling
开发的(后来被Oracle Corporation
收购),并于1995年作为Sun Microsystems
Java
平台的核心组件发布。该语言的大部分语法来自C
和C ++
,但它比它们任何一种都简单易学。
在2010年1月27日收购Sun Microsystems
之后,Oracle Corporation
成为Java SE
平台官方实施的当前所有者。此实现基于Sun
最初的Java
实现。Oracle
实施适用于Microsoft Windows
,Mac OS X
,Linux
和Solaris
。
Oracle
实现打包成两个不同的发行版:
Java
运行时环境(JRE
),包含运行Java
程序所需的Java SE
平台部分,面相大多数用户。Java Development Kit(JDK
),面向软件开发人员,包括Java
编译器,Javadoc
,Jar
和调试器等开发工具。Java
使用自动垃圾收集器来管理对象在内存中的生命周期 。程序员只需要确定何时创建对象,并且Java
运行时负责在对象不再使用时恢复内存。一旦没有对对象的引用,无法访问的内存就有资格被垃圾收集器自动释放。
如果程序员的代码保存对不再需要的对象的引用,则通常会发生类似于内存泄漏的事情,通常是当不再需要的对象存储在仍在使用的容器中时。如果调用不存在的对象的方法,则抛出“NullPointerException”
。
垃圾收集可能随时发生。理想情况下,它会在程序空闲时发生。如果堆上的可用内存不足以分配新对象,则可以保证触发;这可能导致程序暂时失速。Java
中不可能进行显式内存管理。
传统的“Hello,world!”
程序可以用Java编写:
public class HelloWorldApplication {
public static void main(String[] args) {
System.out.println("Hello World!"); // Prints Hello World! to the console.
}
}
Java
源文件必须以它们包含的公共类命名,并附加后缀.java
,例如HelloWorldApplication.java
。Java
编译器将其编译为字节码,从而生成名为HelloWorldApplication.class
的文件。只有这样才能执行或“启动”。“public”
,并使用该公共类名称命名源文件。