Java是什么?

Java是一门通用性编程语言,其特征包括但不限于面对对象、跨平台、多线程、高性能等等。虽然近几年Python和JavaScript的受欢迎程度飙升,但是这不影响Java在企业级产品的霸主地位,它依然是就业市场最大的编程语言。

Java的最大的特点是跨平台,同样的源代码可能在任何平台运行。这不仅仅提高了软件的可移植性,也简化了开发者的工作。得益于Java强大的社区和业界的受重视程度,基于Java的框架百花齐发,不仅仅轮子多,轮子的质量也极高。著名的企业级开发框架Spring就是基于Java的,大数据平台Hadoop、Spark、Flink等也都是基于Java开发的。

以下是编程语言流行度相关的链接:

为什么学习Java?

Java是一门设计优良的编程语言,其中的语法特性对于我们理解编程语言十分重要。掌握Java之后,也能帮助我们更快地上手其他的编程语言。最重要的是,Java是一门面对对象编程语言,而面对对象编程是一种重要的编程思维,对于我们构建复杂系统起到积极的作用。学习Java的同时,我们便会慢慢领悟这种抽象的编程思维,增加我们的抽象思维能力。

除了语言本身语法特性的优点,另外一个学习Java的重要原因就是语言平台的强大,Java能跨平台得益于Java虚拟机(Java Virtual Machine)的精良设计。Java虚拟机工业级的稳定性和高度优化的性能,让Java软件在各个平台的运行速度和稳定性都得到了极大的保障。编辑开发Java的工具也十分强大,比如Eclipse和Intellij这两个集成开发环境,不仅仅简化了开发环境搭建的过程,也提升了我们的开发体验(智能补全,语法报错)。

简而言之,Java语言设计很精良,语言平台牛逼,社区也给力,轮子多而精,快学Java吧!

Java的版本简介和环境搭建

在正式学习Java之前,我们来简单了解一下Java的历史。Java最早是由SUN公司开发的,最早被命名为Oak,最初主要针对于小型家电的嵌入器应用。后来互联网崛起,SUN改造了Oak,在1995以Java的名称正式发布,随着互联网的快速发展,Java也成了最受欢迎的语言。

从1995到现在(2019),Java已经从最早的版本1发展到最新的版本13,每个版本会有少许的改动,添加一些新的语法特性。在我的教程中,我们会学习Java最重要和核心的语法特征,所以不用担心所学的在其他版本不适用。

Java版本和JDK

Java的库和API及其丰富,SUN也给Java分出了三个不同版本:Java SE (Standard Edition),Java EE (Enterprise Edition) ,和Java ME (Micro Edition),这三者的关系如下图所示:

简单来说,Java SE是标准版本,其他包含了JVM和常用的库,Java EE是企业版本,在Java EE的基础上加了更多的库和API,提供了Web应用、数据库和消息服务等等的库,方便了企业级应用的开发。Java SE是这个Java平台的核心,也是学习Java EE的必备知识。所以我的教程也是基于Java SE的,帮助大家在最短的时间内掌握Java最核心的语法特征。

在创建我们第一个Java程序之前,我们要弄清楚三个重要名词:JDK(Java Development Kit),JRE(Java Runtime Environment),和JVM(Java Virtual Machine):

简单来说,JRE包含了JVM和Java程序运行时依赖的一些库,JVM是能够运行Java字节码的虚拟机。JDK包含了JRE,还额外提供了编译器、调试器等等开发工具,编译器的一大作用就是帮助我们将源代码转化成字节码。所以我们要想在电脑上运行Java,则必须先安装JDK。

下载安装JDK

首先登入Oracle的官网下载最新版本的JDK:

然后找到与你电脑操作系统对应的安装包,安装即可。

设置环境变量

下载完JDK后,我们需要设置JAVA的环境变量,这样系统运行Java代码时,才能从正确的路径调用程序来运行代码。

使用Mac的朋友可以使用以下的步骤来设置环境变量:

将下载好的安装包解压缩后,记住安装目录的路径,然后在~/.bach_profile中设置新的环境变量:

export JAVA_HOME=/Users/haozheng/Java/jdk-13.0.1.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

在上面的步骤中,我们将JAVA_HOME的bin(binary)目录添加到PATH是为了在任意文件夹下都可以运行java。

最后在Terminal中运行 java -version 如果出现以下信息就代表Java安装成功了!

$ java -version
java version "13.0.1" 2019-10-15
Java(TM) SE Runtime Environment (build 13.0.1+9)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)

使用Windows的同学可以按照以下步骤来设置路径:

然后打开cmd输入 java -version 得到以下信息就代表安装Java成功了:

C:\Users\Your Name>java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

第一个Java程序

安装完JDK后,我们就能来编辑第一个Java程序啦,首先打开文本编辑器,创建一个 Main.java 文件,然后在其中输入以下的内容:

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

简单来说,我们创建一个Main类,在其中写了一个main函数,然后打印出”Hello World“字符串,注意大小写和分号。(要注意的是,类的名字必须和文件名一样)

运行Java程序

写完源代码后,我们如何运行它呢,下面的示意图则十分清晰明了地展示了运行过程:

Image result for java bytecode and jvm

源代码被Java编译器转化成字节码(Byte Code),然后通过JVM这个虚拟机,字节码就能在各个平台上运行。

首先我们使用javac编译器将源代码转化成字节码,在Main.java的目录下执行命令 javac Main.java(源代码):

$ javac Main.java

如果没有任何的语法错误,那么当前目录中就会多出一个 Main.class 文件(字节码):

$ ls 
Main.java Main.class

接下来我们就能使用 java Main 来运行程序:

$ java Main 
Hello World!

Java 集成开发环境(IDE)

为了提升我们的开发效率,我们需要安装Java的集成开发环境,IDE的好处有以下几点:

  1. 编辑器的自动提示和补全,提高了代码编辑的效率和准确度
  2. 修改代码后,自动编译并直接运行,简化我们运行程序的步骤
  3. 设置断点测试十分方便,让我们更好地Debug

目前最受欢迎的编辑器有以下三个,我强力推荐有条件的朋友使用IntelliJ:

  1. Intellij(需要付费,也可使用学校邮箱免费使用,是目前最强大的Java集成开发环境)
  2. Eclipse(免费,功能齐全)
  3. VSCode(介于文本编辑器和IDE之间的产物,近几年程序员的新宠)

下载和安装IDE的步骤我这里就不写了,大家可以看自行Google或百度,步骤十分简单。

《Java入门教程》大纲

在这个教程中,我希望大家能够在最短的时间内,全面掌握Java最核心的语法特征和功能,我们的内容主要包括以下:

  • 变量和基本数据类型(Variable,Data types)
  • 条件判断和循环(Conditional statement, Loop)
  • 类和函数(Method, Class)
  • 文件处理(File Operation)
  • 面对对象编程( Object Oriented Programming)
  • 异常处理(Exception Handling)

实践练习

编辑自己的第一个Java程序,编辑一个 Hello.java 的文件,这个程序的功能就是打印出 “I am the best!” 字符串。