第一个java程序hello world

首先需要配置环境,没配置的请参考:详细配置教程http://www.cnblogs.com/qq1871707128/p/6047232.html

切入主题:

java基础首先得了解基本的dos命令

 基本操作dos(Disk Operating System:硬盘操作系统)

命令行的简单操作

dir(directory):列出当前目录下的文件及文件夹

md(make directory):创建目录

rd(remove directory):删除目录

cd(Change directory):进入指定目录

cd.. :退回到上一级目录

cd :退回到根目录

del(delete):删除文件

exit:退出

echo: 创建文件(因为这个java最基本的,经常使用,后面附上简单的使用效果图)

echo abc > 1.java 

在当前目录下创建包含abc内容的1.java 

edit:编辑文件

效果图:

桌面多了一个文件

双击打开

 

开始我们的第一个hello world的程序(鄙人用的是win7-64位)

cmd(win键)+R 打开运行,然后再在桌面上创建一个a.java的文件

然后右键->编辑(记事本打开),输入以下代码:

1  public class a{
2     /**
3     * 输出一行字符串“Hello World!”
4     * @param args
5     */
6     public static void main(String[] args){
7     System.out.println("hello world");
8    }
9 }

ctrl+S 保存,然后在终端输入指令:javac a.java        ----这条指令是编绎字java文件,编绎成功的话就会生成以.class为后缀的字节码文件
效果图:

然后运行a.class文件,输入指令为java a ,注意:是java a不是java a.class,我知道这里面有些人不理解,其实不用理解,这是sun公司的规定,哈哈,就打个比方,为什么我们在编绎时不输入javac.exe a.java 呢,这是一个道理。

效果图:

在这里第一个hello world的程序就运行成功了,我们再深入研究一下

把a.java里面的代码a改成b,保存:

1  public class b{      //这里原来是a,现在改成b
2     /**
3     * 输出一行字符串“Hello World!”
4     * @param args
5     */
6     public static void main(String[] args){
7     System.out.println("hello world");
8    }
9 }

运行:

然后报错了对吧,我们仅仅是改了一个类名而已,根据错误肯定有人猜:“类名和文件名一致”导致的,显然代码编写时,一个文件中可以有很多个类,所以这个猜测是错误的。那我们把代码里面的public删除看看:

1   class b{
2     /**
3     * 输出一行字符串“Hello World!”
4     * @param args
5     */
6     public static void main(String[] args){
7     System.out.println("hello world");
8    }
9 }

编绎:

编绎通过,并且生成一个b.class字节码文件

运行:

我们再测试一个,把生成的a.class与b.class字节码文件都删除掉:

然后在a.java文件里面加上以下代码:

 1   public class a{
 2     /**
 3     * 输出一行字符串“Hello World!”
 4     * @param args
 5     */
 6     public static void main(String[] args){
 7     System.out.println("aaaaa");
 8    }
 9 }
10   public class b{
11     /**
12     * 输出一行字符串“Hello World!”
13     * @param args
14     */
15     public static void main(String[] args){
16     System.out.println("bbbbbb");
17    }
18 }

编绎就报错了:

先别得出结论,我们再修改一下a.java里面的代码 :

 1   public class a{
 2     /**
 3     * 输出一行字符串“Hello World!”
 4     * @param args
 5     */
 6     public static void main(String[] args){
 7     System.out.println("aaaaa");
 8    }
 9 }
10   class b{
11     /**
12     * 输出一行字符串“Hello World!”
13     * @param args
14     */
15     public static void main(String[] args){
16     System.out.println("bbbbbb");
17    }
18 }

编绎成功并且生成两个字节码文件,分别是a.class、b.class:

然后我们分别运行一个a.class与b.class:

结论:

    每个编译单元(文件)只能最多有一个public类;如果有,其名称必须与含有这个编译单元的文件名相匹配,包括大小写。

 实际上,如果这个文件只有一个a类,或者有两个类,只要这个包括main()的类名与文件名一致,类名前不加public也是可以正常运行的,且调用的是与文件名一致的类的main()方法。但个人认为这不是良好的编程实践,编写a.java里面的代码如:

 1    class a{
 2     /**
 3     * 输出一行字符串“Hello World!”
 4     * @param args
 5     */
 6     public static void main(String[] args){
 7     System.out.println("aaaaa");
 8    }
 9 }
10   class b{
11     /**
12     * 输出一行字符串“Hello World!”
13     * @param args
14     */
15     public static void main(String[] args){
16     System.out.println("bbbbbb");
17    }
18 }

编绎通过,效果也是一样的:

 

原文地址:https://www.cnblogs.com/qq1871707128/p/6054598.html