Java(请不要与 JavaScript 搞混)是一种设计为与 Java 虚拟机 (JVM) 一块儿使用的多用途编程语言。通常将安装了相关工具能够开发并运行 Java 程序的电脑系统称为 “Java 运行平台”。使用这个标签能够(在StackOverflow上)查找有关 Java 编程语言或者 Java 平台工具的问题。javascript
Java 是一种高性能、跨平台、面向对象的编程语言和运行环境。Java 大部分语法起源于 C 和 C++,可是其对象模型比 C++ 简单,而且减小了底层功能。Java 应用均被编译为字节码(被称为 class 文件),能够被 JVM(Java 虚拟机)执行,并独立于不一样的计算机体系。JVM 经过一个垃圾收集器(查看 garbage-collection)帮助管理内存,当对象再也不使用时能够将其从内存中移除。Java 的系统类型是静态、强类型、安全、声明类型和显式的。Java 支持反射、接口等与 C 和 C++ 类似的功能,例如 JNI(The Java Native Interface)。html
Java 被设计为尽量减小与电脑系统的依赖关系,能够容许应用开发者 “一处编写,到处运行”(WORA):在一个平台上执行的代码不需从新编译就能在其余机器上运行。Java 最初由 James Gosling 在 Sun Mircosystems 公司(2009年4月20日已被 Oracle 并购)设计,最初是于 1995 年做为 Sun Microsystems公司 Java 运行平台的核心组件发行。java
安装工具用于开发和运行 Java 的计算机系统被 Sun(现为 Oracle)命名为 Java 平台。各类具备平台特性的工具能够帮助开发者更有效率地使用 Java 程序语言开发。linux
平台包含两个基本的软件包:android
Java 运行环境(JRE):用于运行 Java 应用和程序;算法
Java 开发工具包(JDK):用于开发 Java 应用和程序。JDK 老是伴随着一个 JRE。spring
在本节中,咱们将进一步探讨这两个软件包做为 Java 平台的组成部分产生的做用。编程
背景api
做为参考的大部分 Java 实现方式都是开源的(OpenJDK),由包括 Oracle、Apple、SAP 与 IBM 在内的大型企业提供支持。数组
极少的电脑能够直接运行 Java 程序。所以,Java 环境一般要求安装合适的软件组件。在 Windows 系统上,通常能够从 java.com 下载免费的 Java 运行环境(JRE)。在 Macintosh 系统上,当应用须要 Java 运行环境时,会在启动时请求用户下载 Java。在类 Linux 系统上,Java 通常经过包管理器安装。
Windows 和 Mac 平台的开发者常常须要额外的工具,使用工具所需的免费 Java 开发包(JDK)必须从 Oracle下载并手动安装。
Java 会被编译为字节码,而后由 JVM 经过编译为原生代码进行解析。编译技术为即时编译(JIT)。最初这被视为下降性能的作法,可是随着 JVM 和 JIT 的发展,担心逐渐减小。在某些状况下,例如当一个旧版本的处理器须要向后兼容时,JVM 甚至快于原生代码编译速度。
注意:也有其余供应商存在,然而大部分都有受权费。对于 linux 和其余平台,请查阅相关的操做系统文档。
版本
主要的 Java 版本、代号和发布时间:
JDK 1.0 (1996/01/23)
JDK 1.1 (1997/02/19)
J2SE 1.2 [Playground] (1998/12/08)
J2SE 1.3 [Kestrel] (2000/05/08)
J2SE 1.4 [Merlin] (2002/02/06)
J2SE 5.0 [Tiger] (2004/09/30)
Java SE 6 [Mustang] (2006/12/11)
Java SE 7 [Dolphin] (2011/07/28)
Java SE 8 [JSR 337] (2014/03/18)
Java SE 9 [TBD ] (未发布)
最新的稳定版本:
Java Standard Edition 8 Update 51 (1.8.0_51) – (2015/07/14)
Java Standard Edition 7 Update 79 (1.7.0_79) – (2015/04/14)
更多的代号及发布日期请访问 J2SE Code Names。要查看 JDK 的版本发布日志请访问 Wikipedia 的 Java 版本历史文章。
Java SE 8 正在发布而且可下载。
公共更新的结束日期(之前称为生命周期终止)为:
J2SE 1.4 – 2008/10
J2SE 5.0 – 2009/10
Java SE 6 – 2013/02
Java SE 7 – 2015/04
Java SE 8 – 2017/09
新手帮助
你是 Java 初学者或者须要帮助使你的第一个 Java 程序运行?请参看 Oracle Java 教程开始部分。
询问问题前,请使用右上角的搜索栏查找是否已被询问(咱们有不少类似的问题),而且阅读《如何提出一个好的问题》,学习怎样吸引 Jon Skeet 回答你的问题。
命名规范
Java 程序须要坚持下列的命名规范以提升可读性并下降意外错误出现的可能性。遵照这些命名规范,可使他人阅读你的代码和帮助你时更加轻松。
类型名(类、接口、枚举等等)应以大写字母开头,随后的每一个单词首字母大写。例如:String、
ThreadLocal
和 NullPointerException
。有时被称为 pascal case(帕斯卡命名法)。
方法名应使用 camelCased(驼峰式命名法),即它们应以小写字母开头,随后的每一个单词首字母大写。例如:indexOf、printStackTrace、interrupt。
字段名应使用和方法名同样的驼峰式命名法。
常量表达式命名(static final
不可变对象)应被写为 ALL_CAPS形式,使用下划线分割每一个单词。例如:YELLOW
、DO_NOTHING_ON_CLOSE
。这一样适用于枚举类(Enum
)的变量命名。然而,static final
修饰可变对象时应使用驼峰式命名。
Hello World:你的第一个程序
Hello World 程序代码为:
1
2
3
4
5
|
public
class
HelloWorld {
public
static
void
main(String[] args) {
System.out.println(
"Hello, World!"
);
}
}
|
编译和调用 Hello world 程序:
1
2
|
javac -d . HelloWorld.java
java -
cp
. HelloWorld
|
Java 源代码被编译为中间代码(针对 Java 虚拟机 的字节码指令),而后能够被 java
命令执行。
更多信息:
开发Java经常使用的IDE
Spring Tool Suite(基于 Eclipse,包含用于 Spring 的插件)
Android Studio(基于 IntelliJ IDEA,主要用于 Android 项目开发)
初学者资源
Oracle 的 Java 教程 :在 Windows、Linux、Mac 上从零开始,覆盖大部分标准库。
Coding Bat (Java) :学习部分基础以后,经过 Coding Bat 磨练和完善你的 Java 技术。
平常帮助资源
进阶资源
免费 Java 编程图书与资源
常见问题
人们常问的 Java 问题:
通常问题:
环境变量:
String
,StringBuilder
与 toString
:
equals
与 hashCode
:
Java Platform SE API:
泛型:
类与对象:
算法与转换:
调试:
Thread
与多线程:
与操做系统交互:
(提交者们,请仅仅列出常常被询问的问题。)
聊天室
原文连接: stackoverflow 翻译: ImportNew.com - honoka
译文连接: http://www.importnew.com/16689.html
[ 转载请保留原文出处、译者和译文连接。]