在上一篇文章中,我们已经编写了第一个Java程序——HelloWorld,并且对它进行了编译和运行。虽然这个例子很短小,但是它具有一个完整的Java程序所应该具有的结构。在这篇文章中,我将会对这个最简单的程序进行详细的解析,以便读者能够更清楚地认识到Java程序的结构。

  现在来回顾一下这段代码:

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

  这个HelloWorld程序由三个基本结构组成:类定义、main方法和注释。本文将会给你提供一个对于这段代码的最基本的理解,但是更深层次的理解将会在你学完剩余的教程之后慢慢浮现。

一.注释

  下面加粗的文本定义了HelloWorld程序中的注释:



  注释会被编译器忽略,但是对于自己和其他程序员来说非常有用。Java支持三种注释:

  • 单行注释:编译器将会忽略从//到行尾之间的任何文本,语法:
// This is a single-line comment.
  • 多行注释:编译器忽略/*到*/之间的任何文本,语法:
/* This is a multi-line comment.
Everything in this area will be ignored.
*/
  • 文档注释:编译器也会忽略这种注释,但是可以通过javadoc工具从源代码中将文档注释提取出来,形成API文档供使用者参考。有关文档注释的内容这里暂时不做介绍,感兴趣的读者可以自己去网上查阅相关的内容。语法:
/** This is documentation comment.
* Documentation can be generated by javadoc tool.
*/

二.HelloWorld类定义

  下面加粗的文本块中是HelloWorld类的定义部分:



  就像上面显示的那样,一个类定义的最基本形式是:

class name {
...
}

  关键字class开始了一个名为name的类的定义,具体的定义类的代码被其后的一对花括号包裹起来。后续的文章将会详细地介绍有关类的概念,现在只需要知道每个程序都是以类的定义开头就够了。

三.main方法

  下面加粗的文本块中定义了main方法:



  每个Java程序都必须包含一个main方法,它的格式如下:

public static void main(String[] args)

  main方法就像C和C++中的main函数一样,它是程序的入口。JVM会自动调用main方法,在main方法中可以调用其它自己编写的方法。

  修饰符public和static的顺序可以颠倒,但是习惯上我们还是按照public static的顺序书写它们。

  main方法接受一个字符串类型的数组作为唯一的参数,这个参数的名字也可以修改,但是大部分程序员还是会选择args。可以在运行时将参数传递给应用程序,例如:

java MyApp arg1 arg2

  arg1和arg2将会被传递给args数组args,你可以在程序中通过args[0]和args[1]访问它们。HelloWorld程序没有传递命令行参数,但是你要知道可以通过这种方式在运行程序时将参数传递进去。

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

  最后一行使用核心类库(也称为Application Programming Interface或API)中的System类将“Hello World!”输出到控制台上。有关核心类库的其他部分将会在后续文章中进行介绍。

Java基础教程(3)--回顾HelloWorld的更多相关文章

  1. Java基础教程(5)--变量

    一.变量 1.变量的定义   正如上一篇教程<Java基础教程(4)--面向对象概念>中介绍的那样,对象将它的状态存在域中.但是你可能仍然有一些疑问,例如:命名一个域的规则和惯例是什么?除 ...

  2. Java基础教程(18)--继承

    一.继承的概念   继承是面向对象中一个非常重要的概念,使用继承可以从逻辑和层次上更好地组织代码,大大提高代码的复用性.在Java中,继承可以使得子类具有父类的属性和方法或者重新定义.追加属性和方法. ...

  3. Java基础教程(12)--深入理解类

    一.方法的返回值   当我们在程序中调用方法时,虚拟机将会跳转到对应的方法中去执行.当以下几种情况发生时,虚拟机将会回到调用方法的语句并继续向下执行: 执行完方法中所有的语句: 遇到return语句: ...

  4. Java基础教程:注解

    Java基础教程:注解 本篇文章参考的相关资料链接: 维基百科:https://zh.wikipedia.org/wiki/Java%E6%B3%A8%E8%A7%A3 注解基础与高级应用:http: ...

  5. Java基础教程:网络编程

    Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...

  6. Java基础教程:Lambda表达式

    Java基础教程:Lambda表达式 本文部分内容引用自OneAPM:http://blog.oneapm.com/apm-tech/226.html 引入Lambda Java 是一流的面向对象语言 ...

  7. Java基础教程:泛型基础

    Java基础教程:泛型基础 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚 ...

  8. Java基础教程:多线程基础(1)——基础操作

    Java:多线程基础(1) 实现多线程的两种方式 1.继承Thread类 public class myThread extends Thread { /** * 继承Thread类,重写RUN方法. ...

  9. Java基础教程:反射基础

    Java基础教程:反射基础 引入反射 反射是什么 能够动态分析类能力的程序称为反射. 反射是一种很强大且复杂的机制. Class类 在程序运行期间,Java运行时系统始终为所有对象维护一个被称为运行时 ...

随机推荐

  1. 打开win8及以上操作系统的系统已安装程序目录

    Windows 8 的“Metro 界面”里不能像XP和Win7那样,点击“开始”->“程序”,显示系统所有安装的程序,这个功能还是非常有用的,可以帮助我们快速查看系统已经安装的程序!我编写了这 ...

  2. 解决:sql server无法在C盘下创建database/操作系统错误5(拒绝访问)

    问题: ——无法在C盘的任何位置创建数据库文件 ——在非系统盘的F盘可以创建数据库文件 解决方法1:禁用“以管理员批准模式运行所有管理员" 解决方法2:打开C盘对Users用户的完全控制权限 ...

  3. “全栈2019”Java第一章:安装JDK11(Mac)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 文章原文链接 “全栈2019”Java第一章:安装JDK11(Mac) 下一章 “全栈2019”Java ...

  4. 抓包工具Fiddler使用教程

    一.基本原理 Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888 二.Fiddler抓取https设置 1.启动Fiddler,打开菜单栏中的 Too ...

  5. CentOS运行C++语言的Hello World

    1,编写代码,hello.cpp #include <iostream> using namespace std; int main(){ cout<<"hello ...

  6. php 对比两个数组中的值是否相等

    $a = ['1','2','4','3'];//提交答案 $b = ['2','1','3'];//正确答案 $state = $this->diffArray($b, $a); echo ' ...

  7. 搭建一个ES6开发环境

    一.首先先建立一个项目工程目录,并在目录下建立两个文件夹:src和dist src:书写ES6代码的文件夹,写的js程序都放在这里. dist:利用Babel编译成的ES5代码的文件夹,在HTML页面 ...

  8. [Objective-C语言教程]数据封装(27)

    所有Objective-C程序都由以下两个基本要素组成 - 程序语句(代码) - 这是执行操作的程序的一部分,它们被称为方法(函数). 程序数据 - 数据是受程序功能影响的程序信息. 封装是一种面向对 ...

  9. 浅谈Android选项卡(四)

    前面几篇介绍的选项的用法,基本上使用TabActivity.ViewPager.已经基本上满足开发需求了.但是这里再介绍一种小技巧,在有的时候,感觉使用前面的ViewPager和Fragment时候, ...

  10. C#-WebForm-组合查询(Queryable延迟查询、Intersect交集)、分页展示基础

    组合查询: 方法一:Queryable<> 延迟查询 其特点是:读到词句代码时不会立即执行,而是在进行数据绑定时执行 优点:此期间可以进行添加查询条件,以减少数据库查询内容,来减少内存占用 ...