首页 > Java知识 > JavaSE > 01-Java环境搭建 > 第一行代码
2022
03-14

Hello Java, Hello World!

几乎所有语言的第一个程序都是“Hello world”,因为最初C语言出现的第一个程序编写的就是这个内容。下面我们会提一下这个典故的来历,现在我们首先先看我们学习Java的第一行代码。

 public class HelloWorld{
     public static void main(String[] args){
         System.out.println("Hello world!");
     }    
 }
程序执行结果
Hello Java, Hello world!!

程序执行流程

Java程序是需要经过两次处理后才可以正常执行的:

  • 对源代码程序进行编译:javac HelloWorld.java,会出现有一个HelloWorld.class的字节码文件
    |-利用JVM进行编译,编译出一套与平台无关的字节码文件(*.class);
  • 在JVM上进行程序的解析执行:java HelloWorld
    |-解释的就是字节码文件,字节码文件的后缀不需要编写;

为了更加方便的理解Java程序的主要结构,我们对第一个程序完整的解释一下:

1.在Java程序开发之中,最基础的单元是类,所有的程序都必须封装在类中执行。

[public] class 类名称{} 

在这个程序中,定义的类名称为“HelloWorld”,而类的定义有两种形式:

  • public class 类名称{}:要求类名称和文件名一致
  • class 类名称{}:不要求类名称和文件名一致
 public class Hello{
     public static void main(String[] args){
         System.out.println("Hello world!");
     }    
 }
程序执行结果
HelloWorld.java:1: 错误: 类 Hello 是公共的, 应在名为 Hello.java 的文件中声明

public class要求类名称和文件名保持一致,如果不一致就一定会报错,而class定义类名称则不需要这种约束,但是生成的字节码文件一定是和类名称保持一致而不是和文件名保持一致。而且,class在一个文件中可以有多个,也就是说可以在一个文件中有多个class定义的类,但是每个class最终都会被编译为单独的字节码文件存放在目录中。

 public class Hello{
         public static void main(String[] args){
             System.out.println("Hello Java, Hello World!");
         }       
 }
 class A{}
 class B{}
 class C{}
 ​

这时候,如果想要执行,就必须执行Hello.class才能得到结果。

那么可不可以定义多个public class类呢?public class是指定当前文件名去寻找同名的类进行执行的定义方式,所以如果有多个public class定义的类,则无法匹配当前文件名的单一性,所以不会出现多个public class的情况。

2.主方法是所有程序的入口,起点,必须定义在类中,而且是固定的。

 public class 类名称{
     public static void main(String[] args){
     //程序的代码由此开始执行
     }
 }

Java的主方法名称定义非常长,具体解释在后期会详细讲解,在今后我们将拥有主方法的类称为主类,而主类都必须采用public class来定义。

3.屏幕打印(系统输出)

可以直接在命令行方式下进行内容的显示,有两类语法形式:

 输出之后追加换行: 
     System.out.println(输出内容);
 输出之后不追加换行:
     System.out.print(输出内容);

ln就是line的意思,行的意思。

 public class HelloWorld{
     public static void main(String[] args){
         System.out.println("Hello Java, Hello world!!");
         System.out.println("Hello Java, Hello world!!");
         System.out.println("Hello Java, Hello world!!");
     }
 }
程序执行结果
Hello Java, Hello world!!
 public class HelloWorld{
     public static void main(String[] args){
          System.out.print("Hello Java, Hello world!!");
      System.out.print("Hello Java, Hello world!!");
      System.out.print("Hello Java, Hello world!!");
     }
 }
程序执行结果
Hello Java, Hello world!!Hello Java, Hello world!!Hello Java, Hello world!!

经典的Hello world

“Hello, world”程序是指在计算机屏幕上输出“Hello,world”这行字符串的计算机程序,“Hello, world”的中文意思是“你好,世界”。这个例程在Brian Kernighan 和Dennis M. Ritchie合著的《The C Programme Language》使用而广泛流行。因为它的简洁,实用,并包含了一个该版本的C程序首次在1974年Brian Kernighan所撰写的《Programming in C: A Tutorial》出现:

printf("hello, world\n");    

实际上将“Hello”和“World”一起使用的程序最早出现于1972年,在贝尔实验室成员Brian Kernighan撰写的内部技术文件《Introduction to the Language B》之中:

main()
 {
    extern a,b,c;
    putchar(a);putchar(b);putchar(c);putchar('!*n');
 }
    a'hell';
    b'o,w';
    c'orld'; 

最初的”hello, world”打印内容有个标准,即全小写,有逗号,逗号后空一格,且无感叹号。不过目前,完全遵循传统标准形式的反而很少出现。

编程的误区

有很多人说编程就要用记事本来敲代码,这样才能练出技术。其实这是一个误区。第一代的编程大神们之所以使用记事本来敲代码,是因为那时候还没有可以用来编辑的软件,不得已只能使用记事本,在没有windows的DOS年代,那时候连记事本都没有,大神们只能通过DOS的copy命令创建一个文件编写代码,然后在DOS环境下进行测试,工作量相当之大不可言喻,估计问问这些大神当初如果有像eclipse等软件存在的话,他们当时还要不要像之前一样写代码,我想100%的答案是不想吧。所以在有了各种编辑软件存在的前提下,使用这些软件学习和编程,可以大大减少编程时间,提高工作效率,并不是一个什么不好的事情。

但是,IDE最大的坏处就是会给初学者养成一些不良的习惯,毕竟IDE就是为了方便代码输入产生的一些辅助软件,过度的依赖IDE,很可能将来在写代码的时候,如果离开了IDE就一句代码也写不出来。

因此,建议在初学的时候,最好还是使用编辑器编辑代码,使用DOS下的javac和java进行编译和执行,在很熟练代码之后再使用IDE替换编辑器。

尽管如此,在多年的教学过程中,绝大多数的学员都是只学不练。一开始有一个想要学好的热情,慢慢的被自己的懒惰击溃,久而久之发现什么也没学会,最终选择了放弃。

所以无论是IDE的使用还是编辑器的使用,其目的都是要敲代码,如果不敲代码,选择哪种编辑方式还有什么意义?


留下一个回复