
资深软件开发工程师业余马拉松选手。我们来编写第一个Java程序。打开文本编辑器输入以下代码public class Hello { public static void main(String[] args) { System.out.println(Hello, world!); } }在一个Java程序中你总能找到一个类似public class Hello { ... }称作class类的这个定义, 这里类名是Hello, 其大小写敏感, class用于定义一个类, 表明这个类是公开的, class都是Java的关键字并且必须小写, Hello是类的名字, 依照习惯首字母H要大写, 花括号{}中间是类的定义。注意到类的定义中我们定义了一个名为main的方法public static void main(String[] args) { ... }代码块是可被执行的方法, 一个方法, 除了名为main的方法名之外, 还有用括号括起来的方法参数, 在此处, main方法存在一个参数, 参数的类型是, 参数的名字是args, 用来修饰方法, 此处意味着它是一个公开的静态方式, void是方法的返回类型, 而位于花括号中间的部分便是方法的代码。方法的代码每一行用;结束这里只有一行代码就是System.out.println(Hello, world!);它用来打印一个字符串到屏幕上。按照Java的规定来讲, 有一个特定的条件, 那就是某个类所定义的void main( args)这个方法, 它是Java程序的固定入口方法, 基于此, 有这样一个结果, 那就是Java程序总是从main方法开始执行。留意到Java源码的缩进并非是必定要有的, 然而使用缩进之后, 格式显得美观, 极易发觉代码块的起始以及结束缩进通常是4个空格或者一个tab。之后, 在我们将代码存为文件之际, 文件的名称得是Hello.java, 并且文件名对于大小写也是需要留意的, 缘由在于要跟我们所定义的类名Hello全然保持一致。如何运行Java程序Java源码从本质而言是个文本文件, 我们得先用javac将Hello.java编译成字节码文件Hello.class, 接着, 运用java命令去执行这个字节码文件:┌──────────────────┐ │ Hello.java │── source code └──────────────────┘ │ compile ┌──────────────────┐ │ Hello.class │── byte code └──────────────────┘ │ execute ┌──────────────────┐ │ Run on JVM │ └──────────────────┘所以, 那可执行的文件javac属于编译器范畴, 然而那可执行文件java却是虚拟机。step1, 于存放Hello.java的那个目录里, 去执行名为javac Hello.java的命令。$ javac Hello.java若源代码不存在错误, 上述所提及的命令则不会出现任何输出情况, 并且在当前所处的目录之下将会生成一个名为Hello.class的文件, 由此可见。$ ls Hello.class Hello.java第一步, 先找到Hello.class文件, 第二步, 在找到该文件后, 调用命令java Hello来执行这个文件, 要注意的是, 这里使用的命令是java Hello, 而不是java Hello.class。$ java Hello Hello, world!需注意, 向虚拟机所传递的参数Hello, 它属于我们所定义的类名, 虚拟机自然而然地会去查找与之对应的class文件, 并且予以执行。如果执行java Hello报错$ java Hello Error: Could not find or load main class Hello Caused by: java.lang.ClassNotFoundException: Hello出现了on信息, 这表明在当下的目录里, 并不存在名为Hello.class的这个文件, 那么就要切换至Hello.class所在的目标目录, 之后再去执行java Hello。有些童鞋或许晓得, 直接去运行java, Hello.java这样做也是行得通的:$ java Hello.java Hello, world!这是一项从Java 11起才开始有的新增功能, 它能够直接去运行一个单文件源码能够留意到的是, 位于实际项目里, 单独一个不依靠第三方库的Java源码是极为少见的, 因而, 在大多数情形下, 我们没办法直接去运行一份Java源码文件, 缘由在于它需要依赖别的库。小结一个Java源码, 仅能够定义一种类型的class, 而且class的名称以及文件名, 必须要做到全然一致。借助javac, 能够把.java源码给予编译成.class字节码。使用java可以运行一个已编译的Java程序参数是类名。