同时由David发表在天码营
Java是一种可以用于编写跨平台应用的面向对象编程语言。Java语言的雏形是Sun公司的James Gosling等人于1990开发的Oak语言,其目标针对是家用电器等小型系统的编程语言,应用于电视机、电话、烤面包机等家用电器的控制和通讯。随着90年代互联网的飞速发展,Sun公司顺应趋势改造Oak语言,并于1995年以Java的名称正式发布。Sun公司称Java编程语言是一种简单、面向对象、分布式、解释型、健壮安全、与系统无关、可移植、高性能、多线程和动态的语言。如今Java已经广泛应用于各个领域的编程开发,拥有全球最大的开发者社群。Java目前也是开发Web应用最为广泛的一种选择。
作为开发者,除了掌握Java语言,最重要的事情是首先把Java开发环境建立起来。Java为开发者提供了Java Development Kit(JDK),这是Java 语言的软件开发工具包。工欲善其事,必先利其器,首先我们需要把JDK安装好。
访问Oracle官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html;
目前JDK的最新版本为Java SE 8u71 / 8u72,进入下载页面,点击Java SE Development Kit XXX 下 Windows x86 / Windows x64对应的下载链接;
安装文件下载后,双击.exe文件启动安装程序,一路点击下一步即可安装完成;
JAVA_HOME
和 C:\Program Files\Java\jdk1.8.0_51
(之前jdk的安装目录) ,点击【确定】CLASSPATH
和.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
,点击【确定】Path
变量,点击新建,输入%JAVA_HOME%\bin
注:windows 10以上版本支持图片所示方式编辑Path
,windows 10 以下版本编辑Path
的方式和上述CLASSPATH
的方式一致,此时需要在Path
的最后添加JAVA_HOME%\bin
进入【开始菜单】,在搜索栏输入cmd
, 回车进入命令行,在命令中输入java -version
可以查看到当前的Java版本。如果可以看到下图中的信息,则表示安装成功。
注意,实际显示的版本号可能会有所区别,只要是1.8系列的版本就没有问题。
下面以最流行的Ubuntu桌面版本为例(其他Linux版本请参考相应的官方wiki)。在Ubuntu默认的软件仓库中不包含Oracle官方提供的JDK,但我们仍然能够通过添加第三方仓库来安装,首先打开终端(Terminal),执行:
sudo apt-get install python-software-properties sudo add-apt-repository ppa:webupd8team/java sudo apt-get update
经过一小段时间的等待,Oracle的JDK就已经能够通过apt-get
来安装了:
sudo apt-get install oracle-java8-installer
安装完成会将系统默认的Java版本更新为对应的安装版本,通过在Terminal中输入java -version可以查看到当前的Java版本,如果看到下面信息,则说明JDK安装成功:
~$ java -version
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)
注意,实际显示的版本号可能会有所区别,只要是1.8系列的版本就没有问题。
访问Oracle官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html;
目前JDK的最新版本为Java SE 8u71 / 8u72,进入下载页面,点击Mac OS X对应的下载链接;
安装文件下载后,双击.dmg文件启动安装程序,一路点击下一步即可安装完成;
安装完成会将系统默认的Java版本更新为对应的安装版本,通过在Terminal中输入java -version
可以查看到当前的Java版本。如果可以看到下图中的信息,则表示安装成功。
注意,实际显示的版本号可能会有所区别,只要是1.8系列的版本就没有问题。
Java是一门编程语言,同时也是一个运行平台和开发平台。大家进入Java开发领域,一定会经常与JDK、JRE和JVM三个名词打交道。我们梳理一下这三个名词,对整个Java平台也会有更清晰的理解。
简单来说,这三者是逐层包含的关系。来看一个Java官方介绍Java的图:
从图中可以看到:
JDK在包含JRE之外,提供了开发Java应用的各种工具,比如编译器和调试器。
JRE包括JVM和JAVA核心类库和支持文件,是Java的运行平台,所有的Java程序都要在JRE下才能运行。
JVM是JRE的一部分,Java虚拟机的主要工作是将Java字节码(通过Java程序编译得到)映射到本地的 CPU 的指令集或 OS 的系统调用。JVM回根据不同的操作系统使用不同的JVM映射规则,从而使得Java平台与操作系统无关,实现了跨平台的特性性。
上面这张图包含了太多元素,我们用一张更加简化的图就能更清晰得看到三者之间的关系:
在实际开发过程中,我们首先编写Java代码,然后通过JDK中的编译程序(javac)将Java文件编译成Java字节码,JRE加载和验证Java字节码,JVM解释字节码,映射到CPU指令集或O的系统调用,完成最终的程序功能。
参考
https://docs.oracle.com/cd/E19455-01/806-3461/6jck06gqd/index.html
http://docs.oracle.com/javase/8/docs/