4

第一个Java程序

你好,我是 BoBo
先来个自我介绍,快看这边,看这边,看这边,没错,这就是我 👉👉👉
勇敢而帅气,热情又洋溢!
我就是无忧无虑,风度翩翩的BoBo
做生活的主角,跟我一起说:HAKUNA MATATA!!!
image

导学:Java,你为何如此优秀?

从现在开始,让我来带你一起学习Java。

你可能要说了:为什么要学Java?

因为,Java如此优秀!

且听我为你一一道来。。。

你可以使用Java做什么

Java语言应用广泛,从诞生之初就广受欢迎。Java应用无处不在,几乎渗透了各行各业:金融、网站、嵌入式领域、大数据技术、高频交易空间、科学应用、移动设备、车载设备以及风靡的万物互联、人工智能等领域。

image

没错,Java无处不在。甚至连我们吃饭、喝水、走路。。。都离不开Java提供的服务。

Java:定位高端的风云人物

正是因为Java如此优秀,同时又有数以千万计的开发者为 Java 的不断完善添砖加瓦,让 Java 这门编程语言从诞生之初就炙手可热,并长期霸占编程语言排行榜第一和第二的位置(谦虚地说,与C语言不相上下):

May 2020May 2019ChangeProgramming LanguageRatingsChange
12changeC17.07%+2.82%
21changeJava16.28%+0.28%
34changePython9.12%+1.29%
43changeC++6.13%-1.97%
56changeC#4.29%+0.30%
65changeVisual Basic4.18%-1.01%
77 JavaScript2.68%-0.01%
89changePHP2.49%-0.00%
98changeSQL2.09%-0.47%
1021changeR1.85%+0.90%
1118changeSwift1.79%+0.64%
1219changeGo1.27%+0.15%
1314changeMATLAB1.17%-0.20%
1410changeAssembly language1.12%-0.69%
1515 Ruby1.02%-0.32%
1620changePL/SQL0.99%-0.03%
1716changeClassic Visual Basic0.89%-0.43%
1813changePerl0.88%-0.51%
1928changeScratch0.83%+0.32%
2011changeObjective-C0.80%-0.83%

下面是长期以来Java语言的市场占有率(黑色线条),可以明显看出Java语言一直名列前茅:

05

(数据来源:https://www.tiobe.com/tiobe-index/

Java在企业服务、移动设备、大数据等多个领域拥有不可撼动的市场份额,这也是它作为风云人物的重要依据。Java定位高端,薪资高昂,简单易学却功能强大。无论是对当作入门语言的新手,还是对于作为终生职业的开发者,都是货真价实的不二之选

你还在等什么,快上车!

课程内容

本节课程为你介绍Java语言概况,然后完成你的第一个Java程序。
主要内容包括:

  • Java是什么
  • 你可以使用Java做什么
  • Java有什么特点
  • Java的发展历程是怎样的
  • 你该怎么开始?
  • 你的第一个Java程序
  • Java程序是怎么工作的?(选学)
  • 集成开发环境搭建
  • 总结

内容看起来很多,其实一点都不难。仔细看,只有一个加粗的重点任务哦!

学完本节课程,你会有以下两个收获:

  • 了解Java语言的概况
  • 能够使用IDEA编写、运行HelloWorld程序

怎么样,是不是看起来很简单?

动动手指就能完成,快来开始你的新手任务吧!

第一关 Java及其“风云人生”

1.1 Java是什么

Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。由James Gosling(詹姆斯 · 高斯林)和同事们共同研发,并在1995年正式推出。由于该公司在2009年被Oracle公司收购,所以,Java现在是Oracle公司的一部分。Java的官网:https://www.oracle.com/java/

06

Java应用程序可运行于不同的操作系统,如Windows,Mac OS,及其他多种UNIX版本的系统。根据Java不同的用途,分为三个版本:

  • JavaSE:Java Platform Standard Edition,Java平台标准版,开发桌面应用程序,比如一些小游戏、音乐播放器、安卓系统和安卓手机的App
  • JavaEE:Java Platform,Enterprise Edition,Java平台企业版,开发企业级应用,比如天猫、京东、百度之类的大型网站
  • JavaME:Java Platform Micro Edition,Java平台微型版,嵌入式设备开发,比如数字电视、机顶盒、电冰箱、车载电子设备

闯关练习

1、Java语言的作者是谁?

A. Mark Zuckerberg(马克扎克伯格)
B. Elon Musk(埃隆马斯克)
C. Bill Gates(比尔盖茨)
D. James Gosling(詹姆斯高斯林)

答案:

James Gosling(詹姆斯高斯林)

错误提示:往上翻一翻,聪明绝顶的老爷爷叫什么名字!

1.2 Java有什么特点

Java 的设计者已经编写了颇有影响力的“ 白皮书”,用来解释设计的初衷以及完成的情况,并且发布了一个简短的摘要, 这个摘要用下面 11 个关键术语进行组织:

07Java的优点如此之多,通过不断地学习,你将逐渐体会到。下面简单介绍下几个重要的特点:

  • Java语言是简单的: Java 语法是 C++ 语法的一个“ 纯净” 版本,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换,这也使得大多数程序员很容易学习和使用。 简单的另一个方面是小。 Java 的目标之一是支持开发能够在小型机器上独立运行的软件。 基本的解释器以及类支持大约仅为 40KB,再加上基础的标准类库和对线程的支持(基本上是一个自包含的微内核) 大约需要增加 175KB,在当时,这是一个了不起的成就。
  • Java语言是面向对象的:面向对象设计是一种程序设计技术, Java是一个纯的面向对象程序设计语言。 我们几乎可以透过现实生活去理解Java语言中的一切,这大大减少了编程语言与现实之间的阻隔。
  • Java语言是安全的: Java通常被用在网络或分布式环境中,为此,Java提供了一个安全机制以防恶意代码攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类加载器),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
  • Java是高性能的: 尽管对解释后的字节码性能已经比较满意, 但在有些场合下还需要更加高效的性能。 字节码可以(在运行时刻 )动态地翻译成对应运行这个应用的特定 CPU 的机器码。 与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
  • Java语言是多线程的: 多线程可以带来更好的交互响应和实时行为,来确保用户界面不会“ 冻住”。如今,我们非常关注并发性,因为摩尔定律行将完结。我们不再追求更快的处理器,而是着眼于获得更多的处理器,而且要让它们一直保持工作。 在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制。

1.3 Java的发展历程

那么它是如何一步步发展到现在的样子的?

08

  • 1995年5月23日,Java语言正式发布
  • 1999年6月,SUN公司发布三个Java版本:标准版(J2SE,)、企业版(J2EE)和微型版(J2ME)。
  • 2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
  • 2004年9月30日18:00PM,J2SE1.5发布,新增了枚举、泛型、可变参数、自动装箱/拆箱、For-each循环、注解等多个重要而实用新特性,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0
  • 2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字"2":J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
  • 2009年04月20日,甲骨文74亿美元收购Sun,取得Java的版权。
  • 2014年3月18日,Oracle公司发表 Java SE 8,里程碑版本,发布了大量的优秀特性,如Lambda表达式,方法引用,函数式编程,Stream API,Date Time API,全新的Nashorn javascript引擎,以便我们在JVM上运行特定的JavaScript应用,
  • 2018年9月25日,Java SE 11 发布,里程碑版本,最近的长期支持(LTS,Long Term Support)版本,Oracle承诺会一直维护到2026年。这个版本除了对之前发布的8、9、10中的特性进行优化之外,还新增了类型推断、HTTP Client API、集合类的增强、ZGC(低功耗可扩展GC)、嵌套访问控制、堆分析能力增强(JVMTI)、新增并优化一些加密算法,同时,Oracle宣布将不再单独发布JRE和Server JRE,统一名称为Oracle JDK,并宣布以后每6个月发布一次新版本,每三年发布一次LTS版本。
  • 2021年9月,最新的LTS版本Java SE 17 发布,敬请期待。

闯关练习

2、Java现在(2020年)最新的LTS(长期支持)版本是?

A. Java 8
B. Java 9
C. Java 11
D. JDK 14

答案:

Java 11


第二关 你该怎么开始?

2.1 找到JDK

你该怎么开始使用Java进行程序设计呢?

Java的设计者们也考虑到了这个问题。为了方便广大开发者方便的使用Java语言开发应用,设计者们提供了大量的开发工具,通过使用这些工具,我们能够以非常简单的方式开发Java程序(其中最典型的就是javajavac两个命令,稍后介绍)。

那么,这些工具在哪里呢,如何使用呢?

设计者们把这些工具打包在一起,叫做 JDK, Java Development Kit,即Java开发工具包。一般情况下,我们开发了程序之后,肯定是要运行一下看看效果的,所以,设计者们把Java程序的运行环境一并打包进了JDK里面,这个运行环境就叫 JRE,Java Runtime Environment,所以 JDKJRE 之间是包含关系。

09

现在,我们要想办法获取 JDK

既然Java现在属于Oracle公司,那么我们去Oracle的官网应该就能获取到 JDK。在浏览器输入Oracle的官方网址:https://www.oracle.com/,进入首页之后,你可以在搜索框里输入 “Java”进行搜索,也可以在导航栏里找到Products并进入 Java频道:

10

进入Java频道之后,是关于Java优势的宣传。你可以在这个页面了解到Java的优势。在页面的下半部分,找到“ Java”,可以看到 “Java SE”,点击“Download Java now”:

011

进入Java SE详情页面,你可以看到最新版本以及Oracle官方推荐使用的版本,这些版本都是当前市场上使用量比较高,而且比较稳定的版本。你当然可以下载最新版的JDK软件包尝尝鲜,如果是生产环境,还是更推荐使用上一个稳定的LTS(长期支持)版本,或者你的公司指定使用的版本。这里我们以JDK11版本为例(目前最新的LTS版本),点击Java SE 11的“Download”连接,进入下面的页面:

013

继续点击上图中的“JDK Download”链接,进入JDK安装包下载列表,在这里,你可以根据自己操作系统的版本来选择适合的JDK,比如下载64位Windows版本的JDK安装包:

014

tips: 下载后缀名为.zip的免安装版本也是可以的。直接将压缩包解压到指定目录,进行配置之后就可以直接使用了,省去了安装的过程。但是该版本文件包比较大,在下载过程中要考虑网络因素。

选择你的安装包之后,点击链接,页面弹出提示框,直接勾选接受协议的复选框(好像也没有别的选择):

015

点击弹出框的下载按钮就可以开始下载了。

还有一个细节要注意,Oracle网站要求下载JDK的用户必须是登录用户,如果你没有登录或者没有帐号,需要注册一个合法的帐号才能下载,这里不作介绍。

下载完成后,双击软件包安装即可。你可以一直点击 “next” (或 “下一步”)安装到默认路径下,也可以选择将JDK安装到指定目录,以方便管理。比如我的安装路径(DevelopTools是所有开发软件安装的目录):

D:\DevelopTools\Java\jdk-11.0.8\

2.2 如何以及为何配置JDK

JDK安装完成后看起来并不会有什么变化,一般情况下,你也看不到桌面会有快捷方式。想要正常使用JDK,还需要一些配置。

你可以打开JDK安装后的bin目录,里面并不止一个应用程序:

016

这里面包含 Java 大量的开发命令(即Java开发工具,下同)和运行命令,要想使用这些命令,需要将它们配置到操作系统的环境变量 Path 中,当我们需要系统运行 JDK 的命令时,就可以通过 Path 配置的路径找到并执行它们。

tips:

环境变量:系统或应用程序运行过程中使用到的一些信息(参数),可能是某个值,也可能是某个路径。

2.3 如何配置JDK

  1. 打开系统高级设计,找到“高级选项卡”

    在桌面“计算机”或“此电脑”图标上右键,选择“属性”,进入控制面板的计算机系统页面后,点击“高级系统设置”,打开系统属性-高级选项卡:
    017

  2. 点击“环境变量”按钮,新建系统变量“JAVA_HOME”,值为JDK安装的根目录

    进入环境变量配置窗口,在“系统变量”下点击“新建”按钮,创建一个新的环境变量:

    018

  3. 使用新建的系统变量“JAVA_HOME”,将JDK安装目录下的 bin目录 添加到 Path 系统变量的最前面:

    选中“系统变量”下的Path变量,选择“编辑”按钮,弹出编辑环境变量的窗口后,点击“新建”按钮,输入“%JAVA_HOME%\bin”后确定,使用“上移”按钮将我们新建的内容移到最上面:

    019

  4. 如何验证是否配置成功?

    配置完成后,依次点击确定关闭那些窗口。然后同时按住win + R,输入cmd,回车:

    020

    进入DOS命令行窗口后,分别输入命令:java javac 然后回车,如果能够显示一些信息,说明配置成功:

    021

    022

注意事项:

若输入java命令或者javac命令后提示“不是内部或外部命令,也不是可运行的程序或批处理文件”,则JDK安装失败,需卸载后重装。

关于Mac版的环境配置,可以点开链接自己学习一下。

2.4 考一考

请用一句话描述配置环境变量的目的是什么?

答案:

将bin目录配置到Path中,是为了当需要系统运行bin目录下的命令时,可以方便的找到它们并运行。

第三关 你的第一个Java程序

3.1 认识在线编辑器

说了这么多,快来开始写代码吧。不过再给彭彭1分钟时间,带你认识一下代码编译器——它是你在基础学习过程中的重要小助手。

代码编辑器界面如下图所示,其中:

  • 代码输入区:用来输入或编辑已有的代码
  • 代码执行区:用来展示代码运行后的结果
  • 重置:将代码输入区中内容还原为初始内容
  • 运行:执行编译代码,在代码执行区输出运行结果

img

点击这里,可以使用在线编译器边学边练,无需自己安装环境,用于学习Java基础知识非常方便。

但如果你是立志学好Java,以后从事Java相关工作,拍前浪于沙滩上的后浪少年,那么一定要在自己电脑上安装更专业的编译器,老师在第五关会教你怎么安装。加油吧,后浪!

3.2 写一写,运行一下

说了这么多,快来开始写代码吧。

几乎每一种编程语言的第一个程序,都是大名鼎鼎的“Hello world”,好像是在向全世界宣告:我来了。

Java也不例外,下面这段代码,就是Java语言的Hello world程序:

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

这段代码的输出结果:

Hello World

快来试一试

3.3 为什么这么写

Java程序为什么是这样的?每个部分代表什么意思呢?

现在就告诉你答案。

上面的HelloWorld程序一共有5行,事实上,只有前三行是可以执行的代码,那么,我们就来分别看看这三行是什么意思:

第一行:

public class HelloWorld {}

这段代码【声明】了一个类,或者说,创建了一个类,这个类叫做 HellWorld。而前面紧挨着的单词 class,它的中文意思就是类,第一个单词 public 意思是“公共的”,所以 HellWorld 是一个“公共的类”,这就是这段声明的意思。至于类的具体含义,我会在“面向对象”章节详细的为你介绍,现在,你需要知道的是:
在Java中,一个最小的Java程序,至少包含一个类,或者说,类是Java程序的最小单位
这就是为什么要创建一个 类(class) 的原因。

第二行:

public static void main(String[] args) {}

这行代码【声明】了一个方法,或者说,创建了一个方法,这个方法叫 mainmain方法是Java程序的入口,也就是说,Java程序是从这个方法开始运行的。main方法的格式是固定的,不能随意修改,这是Java语言的约定(或者说规范)。所以,建议你先把main方法的格式记住,我会通过后面的知识为你介绍它每一部分的含义。

对比第一行,这一行代码也有一对括号,而刚才我们编写的代码里,花括号开始 { 和结尾 } 并没有紧紧挨在一起,为什么这样?其实,花括号代表了类和main方法的范围。也就是说,类的花括号中的内容,才是属于这个类的,而如果在一个类的结尾花括号外面编写代码,这些代码是不属于这个类的。由此可见,main方法是HelloWorld类的一部分,同样的,第三行代码也是main方法的一部分。

Java中的括号,都是成对出现的,比如:( )、[ ]、{ },所以在编写代码的时候一定要注意哦!

第三行:

System.out.println("Hello World");

要把这行代码分成两部分:System.out.println();"Hello World" 。第一部分,我们称为“输出语句”,它的格式也像main方法一样是固定的,它的作用在于 输出内容;而第二部分,也就是双引号中间的Hello world,就是输出语句要输出的内容。这么说来,双引号里面的内容是可以修改的,快去试试自己的名字?

Java中的引号,无论是双引号还是单引号,一般都要成对出现,而且都是英文输入法下的,其它符号同理。

3.4 一幅图的总结

好记性不如烂笔头,赶紧把它们记下来:

023

第四关 Java程序是怎么工作的?

看起来,编写一个Java程序非常简单,但是,Java程序的运行过程,是非常复杂的。这部分知识 不要求 你掌握,你只需要了解它的大致过程就可以了。现在,为你介绍的内容是:Java程序的开发与运行原理。大致分为三步:
编写源文件 ——> 编译 ——> 运行

4.1 编写源文件

上面编写的代码,称为“源代码”或“源码”。一般情况下,我们会把源代码保存到后缀名为 .java 的文本文件里,这样的文件叫“源文件”。为了方便,我们会保持文件名与类的名字一致(包括大小写):

024

4.2 编译

源文件是程序员编写的,我们能够轻松识别每一行代码的意思,但是,在计算机中,CPU只能识别二进制指令。所以,现在要做的工作就是,需要在源文件和计算机指令之间进行转换。由于Java语言的结构和特性,设计者们先将源文件转换成一种特殊的二进制文件,然后将这个二进制文件交给Java运行时环境(JRE)去执行。转换成二进制文件的过程,叫做编译(这个过程使用了 javac 命令),生成的二进制文件,叫做字节码文件(后缀名是 .class )。这个过程全部由Java编译器自动完成,不需要程序员进行任何特殊操作:

025

4.3 运行

Java程序的运行,并不是将字节码文件(.class文件)简单的交给操作系统去执行,那是因为不同的操作系统中数据的大小、范围和计算方式有很大不同,会导致同一段代码在不同系统之间运行效果差别很大,这不是设计者们想要看到的。Java的设计者们想到了一个聪明的办法,就是针对不同的操作系统,分别编写了一个可以正确执行Java程序的虚拟机(JVM),然后把这个虚拟机内置到 Java 的运行时环境(JRE)中,这样,同一段Java代码,就可以在不同的操作系统上运行出相同的效果了:

026

将字节码文件(.class)交给Java运行时环境(JRE)执行的过程,叫做Java程序的运行(这个过程使用了 java 命令)。

总的来说,从编写源代码,到程序输出结果,大致分为三步:

027

闯关练习

4、Java程序的入口是什么?

A. 类
B. main方法
C. System.out.println();语句
D. 以上都是

答案:

main方法


第五关 集成开发环境搭建

JDK安装目录下的bin目录,包含了很多开发工具(即各种命令),我们当然可以直接使用它们来开发Java程序,但是这样做带来的结果就是,无论从使用这些工具的方式,还是从管理代码的角度上看,都会显得非常不方便。如果能把这些工具集成在一个软件里,通过图形界面操作它们,就可以降低开发难度,大大提高开发效率。

工欲善其事,必先利其器。使用集成开发工具要简单、高效的多。所以,我特意为你准备了现在最受开发者欢迎的集成开发工具之一:Intellij IDEA,简称IDEA。

028

IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。官方网址为:https://www.jetbrains.com/idea/

关于IDEA的下载和安装,请参考文档:

IntelliJ IDEA的下载和安装.docx

IDEA的配置、以及常用快捷键,请参考文档:

IntelliJ IDEA开发工具配置.docx

5.1 在IDEA中创建Java项目

在IDEA中(包括很多其他的集成开发工具,比如eclipse),是以项目的形式来管理Java代码的,一个项目就是一个软件工程,或者理解成一个复杂的Java程序。点击“Create New Project”,创建一个新项目:

029

在New Project新项目创建窗口,选择Java项目类别,点击next

030

下面的页面提示是否从模板创建项目,不用管它,直接点击next:

031

输入项目名:HelloWorld,选择项目在本地磁盘的地址,点击finish

032

小贴士,对IDEA的操作技巧,每次启动IDEA时弹出,可以根据需要选择是否弹出。取消勾选“Show tips on startup”即取消弹出,点击close:

033

HelloWorld项目创建成功。展开项目结构,如图所示:

034

在src目录上右键->new->Java Class,并在弹出的对话框中输入HelloWorld(注意大小写)

035

这样就创建好了一个类,在类中编写代码即可。

5.2 编写Java程序并运行

在新建的HellWorld类中编写前面介绍过的代码之后,IDEA会自动保存,不需要我们手动 Ctrl + S

代码编写好了,就可以开始运行程序了:

036

可以看出,IDEA默认的字号非常小,你可以根据前面介绍的 IntelliJ IDEA开发工具配置.docx 对字体和字号进行配置。运行程序有多种方式,常见的方式比如:

  • 一,在左侧编辑区绿色三角形按钮上点击,选择“Run ‘HelloWorld.main()’”菜单运行HelloWorld程序;
  • 二,也可以在空白处右键,选择“Run HelloWorld.main()”菜单运行HelloWorld程序:

037

运行之后,窗口下半部分出现控制台窗口,并打印出“HelloWorld”:

038

哇,好棒呀,你居然可以开发完成一个Java程序了!

课程总结

这个小节的内容已经学习完了,是不是感觉收获多多!

刚才我们一起了解了Java的基本信息,同时完成了你的第一个Java程序:HelloWorld。

现在,我们一起做个总结。

  1. 了解Java的基本信息

    ​ Java的作者:詹姆斯 · 高斯林

    ​ Java语言目前最新的LTS版本:JDK11

  2. 能够编写HelloWorld代码,并成功运行

    ​ Java程序的最小单位:类

    ​ Java程序的入口:main方法

这就是今天学习到的内容,整体来说难度不大。相信你现在肯定已经掌握了上面的知识,你真的太棒了!

最后,去挑战一下今天的作业吧!

作业

1.使用IDEA完成HelloWorld程序,并成功运行。

2.练习IDEA的常用快捷键,看看能不能找到快速编写main方法和输出语句的办法。

(完)


博学谷
27 声望5 粉丝

有趣易学,人人都可以学编程


下一篇 »
认识Java程序