Java基础教程(2)--Java开发环境

一.JVM、JRE和JDK的概念

??对于初学者来说,这三个术语出现的频率很高,而且有关这它们的问题在面试题中也会经常出现。因此,理解它们的定义、区别和联系就显得尤为重要。在学习这几个专业术语之前,我们先来了解一下Java代码的编译运行过程。

??机器语言是用二进制代码表示的,能够被计算机直接识别和执行的一种机器指令的集合。也就是说,通过机器语言,我们可以直接操控电脑去做任何我们想要执行的操作。但是,由于机器语言是用二进制表示的,这就导致了它学习成本高、代码晦涩难懂、不便于调试等缺点。试想一下,写代码只用0和1,每个指令都要查手册,而且一旦手误写错一个数字,很难靠肉眼识别出来,这对于程序员来说,无疑是一件非常痛苦的事。

??高级语言是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),它的学习成本相对于机器语言来说大大降低,从而使程序编写更容易,亦有较高的可读性。编译器是将高级语言翻译成机器语言的软件,使用高级语言编写的代码经过编译器翻译以后得到电脑可以直接执行的机器语言代码,这就相当于变相地编写机器语言。电脑领域已经发明了成百上千种编程语言,每种语言都有对应的编译器。在编写高级语言之前,首先要确保电脑上已经安装了对应的编译器。

??高级语言大体上可分为编译型语言和解释型语言。编译型语言首先将源代码通过编译器生成机器语言代码,再由电脑运行生成的机器语言代码。像C和C++等都是编译型语言。解释型语言不需要事先编译,直接将源代码解释成机器语言并立即执行,每次执行都需要重新翻译。像Python和JavaScript等都是解释型语言。

??Java语言是一种特殊的存在。Java源代码(文件后缀名为.java)首先经过编译之后转换为一种称为Java字节码的中间语言(文件后缀名为.class),再由Java虚拟机对字节码进行解释和执行。如果说它是编译型语言,它编译之后得到的并不是机器语言代码,无法直接运行,这与编译型语言的定义相矛盾;但是如果说他是解释型语言,似乎也不太合理,因为它在解释之前有一个编译过程。因此,可以说它既是编译型语言,又是解释型语言,也可以说它既不是编译型语言,又不是解释型语言。

??现在回过头来看JVM、JRE和JDK的概念。JVM(Java Virtual Machine,Java虚拟机)是将Java字节码解释给本地系统运行的软件。JVM是Java实现其平台无关性特点的关键。Java语言使用JVM屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

??但是只有JVM还不能执行字节码,因为在解释字节码的时候JVM需要调用解释所需要的类库。JRE(Java Runtime Environment,Java运行时环境)是运行Java程序所必需的环境的集合,包含JVM标准实现及Java核心类库。也就是说,如果要运行Java程序,那么电脑上必须安装JRE。

??安装JRE之后,我们就可以在电脑上运行编译好的Java程序了。这对于Java程序的用户来说足够了,但是如果是Java开发人员,那么只安装JRE将无法进行Java开发,因为无法将Java源代码编译成字节码。JDK(Java Development Kit,Java开发工具包)中包含了编译Java源代码的工具javac,提取Java文档的工具javadoc等工具和JRE。因此,安装JDK以后,我们既可以进行Java的开发,也可以运行Java程序。下面这张图很好地说明了这三者之间的关系:

二.安装JDK

1.下载JDK

??正如上一篇文章中所说,我们选择安装JDK11。这里是它的下载地址。个人比较喜欢压缩包的安装方式,所以这里选择windows64位的zip文件。注意要勾选Accept License Aggrement。

将下载的压缩包解压至任何你想要安装的位置。这里我将解压出的jdk-11文件夹放在了F盘的env文件夹下。

2.配置环境变量

??接下来需要配置环境变量Path和JAVA_HOME。首先介绍一下为什么需要配置这两个环境变量。Path环境变量用来指定cmd中可执行文件的搜索路径。编译Java源代码需要使用javac.exe,运行字节码需要使用java.exe,如果没有配置这两个可执行文件的路径,那么在cmd中使用这两个命令时将会出现“xxx不是内部或外部命令”的错误。而JAVA_HOME环境变量则是用来定义JDK的安装路径。在一个环境变量中可以使用其他环境变量的值,使用时需要在其他环境变量前后加%。例如,JDK的安装路径是F:\env\jdk-11,那么JAVA_HOME也需要配置为F:\env\jdk-11。javac.exe和java.exe的路径为F:\env\jdk-11\bin,那么Path中只需要配置%JAVA_HOME%\bin即可。这样做的一个好处是,如果要切换或修改JDK的路径,只需要修改JAVA_HOME的值。另外一个需要配置JAVA_HOME的原因是,许多组件依赖于Java的环境,如果不配置JAVA_HOME环境变量,这些组件将会因为找不到Java的安装路径而报错,例如tomcat、maven等。

??在许多其他有关配置JDK环境变量的教程中都配置了CLASSPATH,但是从Java1.5开始就可以不配置这个环境变量了,而且每篇教程里CLASSPATH的值都不一样,有配置rt.jar的,有配置dt.jar的,也有配置tools.jar的,这对于初学者来说非常不友好。这里我们选择不配置CLASSPATH变量。

??最后再来介绍一下系统变量和用户变量。在配置每个环境变量时,既可以将其配置在系统变量里,又可以配置在用户变量里。但是系统变量对所有用户都有效,而用户变量只对当前用户有效。并且系统变量的优先级高于用户变量,也就是说如果一个环境变量在系统变量和用户变量中都进行了配置,那么电脑将优先使用系统变量。因为系统变量中有许多比较重要的环境变量,所以我选择在用户变量中配置Path和JAVA_HOME变量。

??如果是使用IDEA(一个JDK的集成开发环境,下文会讲到)进行开发的话,Path变量是没有必要配置的,因为可以在IDEA中配置Java的安装路径。但是为了演示在cmd中使用javac和java命令,我们将同时配置Path和JAVA_HOME变量。

??下面是具体的配置步骤:

(1)右键我的电脑,属性,找到高级系统设置;

(2)高级,环境变量;

(3)在用户变量中新建JAVA_HOME变量,复制JDK的安装路径并粘贴到变量值,确定;

(4)在用户变量中编辑Path变量(如果没有就新建),填入%JAVA_HOME%\bin,确定;

??之后一直点击确定即可退出环境变量的配置。至此,JDK的环境变量就全部配置完成了。此时可以打开cmd测试一下(如果配置前已经打开了cmd,需要关闭并重新打开,因为环境变量会在下一次打开cmd时才生效)。输入javac -version和java -version,看到如下输出则表示配置成功:

三.第一个Java程序

??下面我们将编写一个非常简单的Java程序来体验Java代码的编写、编译和运行。

??首先新建一个文本文档,然后编写以下代码:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

??保存,然后将文件名修改为“HelloWorld.java”。打开cmd,切换到这个文件所在的目录(我将这个文件放在了F盘的根目录下),然后运行javac HelloWorld.java进行编译,此时会在目录中看到生成了一个HelloWorld.class文件,这个文件就是编译之后生成的字节码。接着运行java HelloWorld(这里不用加.class后缀),命令行将会输出“Hello,World!”。

??这里看不懂没有关系,我们会在后面的文章中对每一个语法进行介绍。

四.集成开发环境

??上一节中,我们已经了解了如何从命令行编译和运行一个Java程序,这是一个很有用的技能。但是每次编译和运行都要手动输入命令则会显得有点麻烦。集成开发环境(Integrated Development Environment,以下简称IDE)集成了这些功能,在编写完代码后只需要点击运行按钮,IDE将会在后台自动为我们执行这些命令并将输出显示在控制台上。当然,IDE的功能远不止于此,它还提供了调试、分析、自动补全、语法检测等许多功能,它使得我们的开发工作更加轻松高效。

??Java的IDE有很多,其中最出名的要属eclipse和Intellij IDEA了。eclipse是一个开源的、免费的集成开发环境。笔者刚开始学习Java使用的就是这款IDE,直到后来遇到了IDEA。个人更加喜欢IDEA,功能非常强大,界面也很美观。网上有很多人就eclipse和IDEA哪个更好展开了激烈的讨论,在我看来这是没有必要的。IDE只是一个工具,每个人选择自己用着顺手的工具就可以了,我们真正关注的编程语言本身,而不是使用什么工具并且说服别人一定要去用什么工具。在后面的教程中我都会使用IDEA进行讲解。

??IDEA分为社区版(Community)和旗舰版(Ultimate),社区版免费,但是相对于旗舰版来说少了很多功能,不过对于Java初学者来说肯定是够用了。旗舰版收费,而且非常贵,第一年的价格是499美刀,之后每年便宜100美刀,第三年及以后都是299美刀。学生党可以凭借教育网邮箱(后缀为.edu.cn的邮箱)申请免费试用。如果不是学生党到但是还是想使用旗舰版的话,这里推荐一个提供免费注册码的网站,上面有详细的教程。

原文地址:https://www.cnblogs.com/maconn/p/9749733.html

时间: 2024-10-12 08:22:36

Java基础教程(2)--Java开发环境的相关文章

[java基础学习笔记]Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行

本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 主要内容: ---------------------------------------------------| 1.JDK的下载与安装                            | 2.编写第一个java程序HelloWorld     | 3.编译执行HelloWorld                      

Hadoop基础教程之搭建开发环境及编写Hello World

整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 1.下载 进入官网:http://eclipse.org/downloads/. 找到相应的版本进行下载,我这里用的是eclipse-SDK-3.7.1-linux-gtk版本. 2.解压 下载下来一般是tar.gz文件,运行: $tar -zxvf eclipse-SDK-3.7.1-linux-gtk.tar.gz -c ~/Tool 这里Tool是需要解

python入门基础教程03 Python开发环境基本使用

Hello Python 初识Python语言 Python(英语发音:/'pain/), 是一种面向对象.直译式计算机程序设计语言,由Guido van Rossum 于1989年底发明,第一个公开发行版发行于1991 年.Py- thon 语法简捷而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起.Python语言的发明者Guido Van Rossum 在90 年代初发明了Python 语言,Python是目前运

程序设计C语言二级考试教程 Java基础视频教程 安卓软件开发教程 Unity3D游戏制作入门教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

Android基础入门教程——1.2 开发环境搭建

Android基础入门教程--1.2 开发环境搭建 现在主流的Android开发环境有: ①Eclipse + ADT + SDK ②Android Studio + SDK ③IntelliJ IDEA + SDK 现在国内大部分开发人员还是使用的Eclipse,而谷歌宣布不再更新ADT后,并且官网也去掉了集成Android开发环境的Eclipse下载链接,各种现象都表示开发者最后都终将过渡到Android Studio,当然这段过渡时间会很长,但如果你是刚学Android的话建议直接冲And

Java基础教程:面向对象编程

Java基础教程:面向对象编程 Java语言概述 Java语言特点 1.Java为纯面向对象的语言,它能够直接反映现实生活中的对象.总之,Everything is object! 2.平台无关性.Java为解释型语言,编译器会把Java代码变成"""中间代码",然后在JVM上解释执行. 3.Java提供了很多内置的类库,这些类库简化了开发人员的程序设计工作,同时缩短了项目开发时间. 4.Java语言提供了对Web应用的支持. 5.Java语言提供了较好的安全性和健

Java基础教程:JDBC编程

Java基础教程:JDBC编程 快速开始 什么是JDBC JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库. JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法. 制作到数据库的连接. 创建 SQL 或 MySQL 语句. 执行 SQL 或 MySQL 查询数据库. 查看和修改所产生的记录. 从根本上来说,JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库,因此可以用 J

java基础学习总结——java环境变量配置(转)

java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之后,还需要在电脑上配置"JAVA_HOME”."path”."classpath"这三个环境变量才能够把java的开发环境 搭建好.在没安装过jdk的环境下,path环境变量是系统变量,本来存在的,而JAVA_HOME和classpath是不存在的. 一.配置JAVA_HOME变量 操作步骤(win7系统):计算机→右键“属性”→高

Java基础教程:HashTable与HashMap比较

Java基础教程:HashTable与HashMap比较 1.  关于HashMap的一些说法: a)  HashMap实际上是一个"链表散列"的数据结构,即数组和链表的结合体.HashMap的底层结构是一个数组,数组中的每一项是一条链表. b)  HashMap的实例有俩个参数影响其性能: "初始容量" 和 装填因子. c)  HashMap实现不同步,线程不安全.  HashTable线程安全 d)  HashMap中的key-value都是存储在Entry中的