第一章 第四节 Hello World程序

1、第一个HelloWorld程序

  上节完成Java环境变量配置之后,我们就可以写第一个程序了。

  首先,我们在硬盘上创建一个test.txt文件,并把test.txt文件改成后缀为.java的test.java文件,并用记事本打开,写下如下代码:

  

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

  代码写完记得保存哦。然后在命令行模式下进入这个.java文件所在的目录,使用javac test.java命令进行编译:

  在编译完成之后,会在目录下生成一个相应的HelloWorld.class文件,如下图:

之后,在命令行上,用下面命令来执行:

java HelloWorkd

执行结果如下:

这是,会在屏幕上打印出一个"Hello World"的字符串。如果你是一个初学者,从本微博第一章第一节开始学习,请务必看到Hello World 字符串在继续学习。

1.1、深入了解Hello World程序

  我们首先来研究和分析一下test.java这个程序中的代码:

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

  首先,第一行:class HelloWorld,这句话定义了一个名字叫做HelloWorld的类。其中,class是Java语言的关键字,而HelloWorld则是定义这个类的名字。

  至于什么是类,这个概念在此不做多于的介绍,会在后面的文章中做出解释,如果你是一个初学者,那么,你可以理解为:类是代码的容器。也就是说,在Java中绝大部分代码都要写在类的范围内,要写代码就必须先定义一个类。

  在定义完HelloWorld之后,后面有一对花括号,花括号中内容表示的是这个类中的内容。

  在这个花括号中,下面的就是这行:

  public static void main(String[] args)

  这一行定义了一个主方法(也叫主函数)。主方法的定义比较长,但是非常有用,如果你是一个初学者,这行代码必须记住,也许你现在无法理解这些内容,但是我会在之后的文章中会解释。那么主方法有什么作用呢?我们通常把主方法称之为:程序执行的入口。也就是说,java程序在执行的时候,会执行类中的主方法,当主方法执行完毕之后,程序也就退出了。

  在主方法内部,就是下面这句代码:

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

  这是Java的一个语句。注意,每一个Java语句都应当以分号结尾。这个语句含义是在屏幕上打印出一个字符串。这个字符串的内容就是括号中的"Hello World"。并且,这个语句打印完字符串之后,还会进行自动换行,如果不换行,则是 System.out.print("Hello World");代码如下:

class HelloWorld{
    public static void main(String[] args){
        System.out.print("learn java");
        System.out.print("Hello World");
    }
}

输出结果:

输出完learn java之后并没有换行。

1.2、类与.class文件

  我们注意到,在编译test.java之后,会产生一个名为HelloWorld的.class文件,这个.class文件的文件名与我们在test.java中定义的类名一模一样。换句话说,一个.java文件中定义的每一个类,在编译之后,都会生成一个和类名完全一样的.class文件。这个.class文件不是可执行文件,是"二进制字节码文件"。用文本编辑器是无法正常打开的。

  我们在test.java文件中定义两个类。

class HelloWorld{
	public static void main(String[] args){
		System.out.print("learn java");
		System.out.print("Hello World");
	}
}
class Welcome{
	public static void main(String[] args){
		System.out.println("Welcom to learn java");
	}
}

  我们在命令行中进行编译test.java文件。编译之后,会生成两个.class文件,一个是HelloWorld.class文件和Welcome.class文件。如图:

编译之后,运行时,运行的是.class文件,但是需要注意的是,使用的是java + 类名运行,而不能有.class这个后缀。比如,我们要运行Welcome类,则使用的命令是java Welcome而不是java Welcome.class命令,这是很多初学者经常犯的错误。还有要注意的是:我们使用java Welcome运行Welcome类时,JVM需要在硬盘上找到相应的Welcome.class文件。此时,JVM会通过CLASSPATH变量的指示,来寻找.class文件。由于我们把CLASSPATH配置成了一个".",这表示当前目录,因此,JVM就会在当前目录下寻找Welcome.class文件。

1.3、类与公开类

  如果我们给HelloWorld类增加一个前缀:public,则此时,HelloWorld就不是一个普通模的类了,而变成一个公开类。代码如下:

public class HelloWorld{
    public static void main(String[] args){
        System.out.print("learn java");
        System.out.print("Hello World");
    }
}

  公开类有自己的特殊性,此时在编译test.java时,则会产生一个编译时的错误,错误如下:

  这个错误说明,如果要使用一个公开类,则公开类的类名必须和源文件名相同(包括大小写)。为了修正这个错误,我们必须把源文件的名字test.java改成HelloWord.java,再次编译才能通过。由于一个.java文件只能有一个文件名,因此一个.java文件中最多只能有一个公开类,当然,如果不是公开类的话,一个.java文件中可以有多个类。

  对于从本微博学习的初学者,建议一些忠告:动手敲代码,前期不要使用IDE等强大的编译器,建议使用notepad++等文本编译器。这对你对java初级语法理解十分重要,打下扎实的基础。对你的成长十分重要。。。

    

原文地址:https://www.cnblogs.com/zhiweijq/p/9859163.html

时间: 2024-10-03 20:02:21

第一章 第四节 Hello World程序的相关文章

NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译

NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译 第一章第二节Mapping a class with XML第一章第三节Creating class hierarchy mappings第一章第四节Mapping a one-to-many relationship第一章第五节Setting up a base entity class Handling versioning and concurrency

Solr In Action 中文版 第一章(四、五)

1.1             功能概览1. 4 最后,让我们再按照下面的分类,快速的过一下Solr的主要功能: ·用户体验 ·数据建模 ·Solr 4的新功能 在本书中,为你的用户提供良好的搜索体验会一直贯穿全书的主题.所以我们就从用户体验开始,看看Solr是如何让你的用户感觉到爽的. 1.4.1             用户体验类功能 Solr提供了一系列的重要功能来帮助你搭建一个易用的,符合用户直觉的,功能强大的搜索引擎.不过你需要注意的是Solr仅仅是提供了类REST风格的HTTP AP

软件构造 第七章第四节 调试

第七章第四节 调试 [bug的常见类型] 数学bug:例如 零除法,算术溢出 逻辑bug:例如 无线循环和无限递归 源头bug:例如 使用了为被定义的变量.资源泄漏,其中有限的系统资源如内存或文件句柄通过重复分配耗尽而不释放.缓冲区溢出,其中程序试图将数据存储在分配存储的末尾. 团队工程bug:例如 评论过时或者评论错误.文件与实际产品的区别 ## 调试的基本过程 Debug是测试的后续步骤:测试发现问题,debug消除问题:当防御式编程和测试都无法挡住bug时,我们就必须进行debug了: D

Git帮助文档阅读笔记----第二章-第四--节远程仓库的使用

管理这些远程仓库,以便推送或拉取数据 添加远程库 移除废弃的远程库 管理各式远程库分支 定义是否跟踪分支 查看当前的远程库 可以用 git remote 命令,它会列出每个远程库的简短名字 也可以加上 -v 选项(译注:此为 --verbose 的简写,取首字母),显示对应的克隆地址: 如果有多个远程仓库,此命令将全部列出.比如在我的 Grit 项目中,可以看到: 添加远程仓库 要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname

微信小程序教学第三章第四节(含视频):小程序中级实战教程:下拉更新、分享、阅读标识

下拉更新.分享.阅读标识 本文配套视频地址:https://v.qq.com/x/page/h0554... 开始前请把 ch3-4 分支中的 code/ 目录导入微信开发工具 这一篇中,我们把列表这块的剩余功能做完:下拉更新.分享.阅读标识. 下拉更新功能 下拉更新这个功能与我们在第一章中写的小 demo 所用方法一致:onReachBottom. 当用户滚动过程中触发了 上拉 这个动作时候,微信小程序会自动监听到并执行 onReachBottom 这个函数,所以我们只需要把这个监听事件写好就

NHibernate.3.0.Cookbook第一章第五节Setting up a base entity class

Setting up a base entity class设置一个实体类的基类 在这节中,我将给你展示怎么样去为我们的实体类设置一个通用的基类. 准备工作 完成前面三节的任务 如何去做 1.在Entity.cs中,为我们的Entity类输入如下代码: public abstract class Entity<TId>{public virtual TId Id { get; protected set; }public override bool Equals(object obj){ret

现代软件工程讨论第一章-第四章

第一章 1.代码如下 #include <iostream> #include <cstdio> #include <time.h> using namespace std; int main(){ srand(time(0)); while(1){ printf("随机生成的一个小学四则运算题目,除法省去余数\n"); int num1 = rand() % 10; int num2 = rand() % 10; int index = rand(

算法(第四版)Java 第一章1.2节 题解

前言 整本<算法>Java版的题解已经托管在Github上:https://github.com/Mereder/Algorithms_4th ,大家根据README.md的导航可以迅速定位章节. 书中代码用到了很多<算法>官方提供的依赖:https://algs4.cs.princeton.edu/home/  大家可以去官网多逛逛,图书章节配合官网内容一起看效果很好. 欢迎大家站内私聊交流!小白一枚,还请前辈们多多指教! 本部分内容全部以代码形式展示,编译器为IDEA 2018

第一章-第四题(软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?)--By梁旭晖

引用 http://baike.baidu.com/link?url=z_phkcEO4_HjFG_Lt163dGFAubdb68IbfcfzWscTOrrZ55WbJEQKzyMQ5eMQKyatDYyY7lK3_TjQGlncSEj6G5W3nxn8P8UR2S8vymnRddi 随着电脑的普及,软件的应用场景越来越多,越来越广泛,随着这几年大数据等话题的掀起,软件更是成为一个大众所关注的方向,软件工程也在越来越多的学校里作为正式课程所教授. 软件一般情况下, 公认的定义为“程序+数据+文档