我的第一个JAVA程序
HEELO WORLD
相信每学一门编程语言,写的第一个程序都是Hello word,该词来自《The C Programming Language》中的第一个演示程序。
而我的第一个Java程序也是Hello word。其实单说这个程序是很简单的,但是从他而引申出来的点却不是那么简单。
下载JDK
若想在你的电脑上写下一个最简单的Hello word代码,首先需要的是一个JDK(Java Development Kit) ,中文名Java开发工具包,说白了也就是一个开发java的工具。
如何下载我并不是很想谈,网上有很多的教程,包括图文博客,视频等。我更想谈的是一些有关JDK的知识。
值得一提的是,如果你要学习,建议下载JDK9的版本,如果要切实的做项目,建议下载JDK8版本,因为JDK8版本是最稳定的版本,没有明显BUG。因为不同版本的JDK会添加新的特性,而新的东西总是不那么容易被人们所接受。现在JDK最新版本已经出到了JDK12。
而且JDK版本是向下兼容的,即如果你用JDK8写了一个项目,是可以用JDK9运行的,而用JDK9写的项目,用JDK8大概率是运行不了的。
JDK/JRE/JVM
JDK大家已经知道是什么东西了,那么JRE和JVM又是什么呢?JRE(Java Runtime Environment)是Java运行时环境,有了开发环境,那肯定得有运行环境,所以JDK中包含有JRE,当然,你单独下载JRE用于运行java软件也是可以的。
那么JVM有是什么呢?JVM(Java Virtual Machine)叫做java虚拟机,它是java实现跨平台的根本,即一次编译,处处运行。而他又被包含在JRE中,所以这三者是层层嵌套的关系。
有关他的知识,拿出来又是一大块了,推荐在学习完框架,再返回来学习虚拟机的知识,不然有点事倍功半之嫌。
在这里,我推荐一本有关JVM的书籍,供大家阅读,这本书是 《深入理解Java虚拟机》,周志明著。他从核心理论和实际应用两个角度,化繁为简的阐述了JVM的原理,可以说是java学习的必读书籍。
环境变量的作用
下载好JDK后,下一步就是配置环境变量,如何配置自然不必多言,在这里,我想讲讲环境变量的两个参数(取自默认路径):
JAVA_HOME:C:\Porgram File\Java\jre1.8.0_181
Path:%JAVA_HOME%\bin
有些博客中还会配置一个叫做classpath的参数,需要说明的是,在JDK1.6后是不需要配置classpath参数的。
JAVA_HOME是JDK的安装目录,那为什么要把该目录从Path中单独拆分开来呢?原因是Eclipse、IDEA等集成开发工具就是通过该变量来找到安装好的JDK的。
Path命令指的是可执行文件的搜索路径,即提供命令行中的全局可执行命令。默认Windows 目录(C:\windows)和系统目录(C:\windows\system32),最直观的表现为可以在cmd控制台直接打开该目录下的程序。
那为什么后面还要有bin这个子文件夹呢?因为bin目录代表可执行文件,JDK所有的可执行文件都在这个文件夹下。所以,当配置好环境变量后,就可以直接在控制台使用java的命令行了。那么,什么又是命令行呢?
java命令行
该内容参考自简书用户(是王威啊),侵删
java命令行是用来启动一个java应用,有以下两种用法:
- 从指定的java类开始启动:
java [options] mainClass [args…] - 从可运行的jar开始启动
java [options] -jar jarfile [args…]
各部分的含义如下:
- options 由空格分隔的命令行选项
- mainClass 待启动类包含包路径的类全名,其中需要有main()方法
- jarfile 待启动的jar包的路径名称
- args 传给启动类的main()方法的参数,用空格分开
特别注意args这个参数。有关命令行的内容就介绍到这里,想要获取更多,请转到上方链接。
测试JDK版本
那么,我们现在就可以使用Window+R,输入cmd打开控制台,检测JDK的环境变量是否配置正确。一般输入 java -version查看JDK的版本信息即可。
第一个java程序
准备了这么多前置工作,终于到了写代码的环节了。那么代码写在哪里呢?其实,写在哪里都是可以的,我在这里描述两种写代码的地方:一种在文本文档写代码并运行,一种在工程开发时,写在集成环境中并运行。
代码
package com.ztc.demo;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
代码具体含义(对于初学者来说,不必过多的纠结每个单词的含义,只需有个大致的印象即可,后续的博客会有更详细的阐述):
package com.ztc.demo;
- package:关键字,包路径,即该类在哪个包中。
- com.ztc.demo:具体的包路径,也叫做类的全限定名。
public class HelloWorld {
}
这段代码意味着这是一个类:
- public:关键字,权限修饰符,表示该类在整个项目下可见。
- class:关键字,表示这是一个类。
- HelloWord:类名,自己定义,首字母大写且遵从驼峰原则。
public static void main(String[] args) {
}
这段代码意味着这是该类中的一个方法,不过该方法比较特殊,是可运行的主方法,即程序运行的入口:
- static:关键字,静态的。
- void:关键字,代表该方法无返回值。
- main:主方法的名字
- String[] args:形式参数,表示该方法要传入的参数,在主方法中传入的为命令行参数。
System.out.println("Hello World");
在方法体中写入具体的方法,这行代码的含义为在控制台输出()中的内容:
- System:一个类,不能被继承。
- out:System类中的成员属性,使用static、final修饰,是PrintStream类的声明。
- println:PrintStream类中的方法。
- "Hello World"为输出内容,如果输出为字符串,需写入双引号中,如果输出数字,则不需要双引号。
在文本文档中运行
如图所示,即为文本文档中的java程序。但需要注意的是:该文件的名字要与类名一致,即HelloWorld,并且后缀名要改为 .java,如下图所示:
当更改后,文件会自动检测你电脑中的java正规编辑工具,并将图标改变,不必惊慌,可以用记事本正常打开。
此时代码已经准备好了,那么如何运行呢?
-
打开命令行界面(Windows+R,输入cmd);
-
使用cd命令进入该文件所在的文件夹;
很明显,我的文件很明显存在D盘csdnStudy文件夹中,事实也是如此: -
使用javac命令将 .java文件编译为字节码文件,即 .class文件。
而此时,在.java文件所在的文件夹中,就会自动多出以class为后缀的文件: -
使用java命令执行字节码文件(.class后缀文件),即会运行出结果(注意:现在命令行中没有后缀名.class);
由此就可以看出java运行机制:
- 先编写后缀名为.java的源文件;
- 使用javac将源文件编译为字节码文件;
- 使用java解释运行字节码文件。
在集成开发工具中运行
现在java的集成开发工具有很多,这些集成工具集合了运行、调试、代码联想等等功能,是学习和开发中必不可少的工具。你也可以将这些工具理解为复杂的记事本。
虽然这种工具复杂,但他使开发项目变的简单了。常见的Java集成开发工具有intellij IDEA(简称IDEA)、Eclipse,轻量级的开发工具有notpad++。
intellij IDEA是目前公认最好的开发Java的集成工具,强烈推荐使用。但该软件有个缺点,即收费,而且还很贵,所以你可以下载个正(dao)版(ban)的。
如果嫌麻烦,可以使用万能的taobao购买激活码。如果不想掏钱,这里链接一个可以手动破解一百年的博文(需两篇文章结合起来看),可以根据该博文手动激活,但仅限2019.2版本之前的,亲测有效。
激活链接1(作者:知了)
激活链接2(该博文参照了链接1中的博文)(作者:不忘初心)
具体运行
下载好了IDEA,就可以在集成开发工具中写代码了。首先,我们略过如何创建项目,具体的创建项目以及关于IDEA的使用,我会另写一篇博文的。
不过值得一说的是,如果你创建下的项目没有包,默认是无,一般要在项目下创建包,包名一般是com.公司域名.包名,比如com.csdn.demo,再在包下创建具体的类。
点击main方法左边的绿色三角按钮即可运行。运行结果如下:
下方的控制台中即为运行的结果。
至此,第一个JAVA程序运行完毕。