1.3java第一个程序HellWorld

编辑java文件并运行

在 E:\java\workspace(自定义)路径下创建文件HelloWorld.java,使用编辑器notepad++打开,输入并保存

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

cmd命令提示行切到目标目录  E:回车 - cd java\workspace - dir查看当前目录下的文件和目录 - 执行javac HelloWorld.java 

- dir命令查看多了类文件HelloWorld.class - 执行 java HelloWorld 输出Hello World !字符 - 成功



HelloWorld程序详解

public class HelloWorld {                         // 一个文件中只能有一个共有的类,并且与文件名称一致,大小写注意,
                                                  //也可以去掉public,然后class名就可以和java文件名不一致了,这样编译出的类文件也和java文件名不一致。
public static void main (String[] args){      // 程序的入口
System.out.println("Hello World !");      // 向控制台输出信息 
}
}


/*
运行原理:
java文件  - javac编译 - class文件 - java命令运行

一个类想要执行必须有一个main方法, main方法是程序运行的入口,public static void main(String args[])这句话中除了args这个变量名可以自己定义外,其他的单词不能做任何改变和省略。

为什么一切都是从类开始?
Java程序是从类开始构建的, 每个方法和字段都必须在类里面。这是由于Java面向对象的特性: 一切都是对象,对象是类的一个实例。
面向对象编程语言相比函数式编程语言有许多的优势,比如更好的模块化、可扩展性等等。

为什么总有一个“main方法”?
main方法是程序的入口,并且是静态方法。static关键字意味着这个方法是类的一部分,而不是实例对象的一部分。为什么会这样呢? 为什么我们不用一个非静态的方法作为程序的入口呢?
如果一个方法不是静态的,那么对象需要先被创建好以后才能使用这个方法。因为这个方法必须要在一个对象上调用。对于一个入口来说,这是不现实的。因此,程序的入口方法是静态的。
参数 “String[] args”表明可以将一个字符串数组传递给程序来帮助程序初始化。

HelloWorld在JVM中是如何执行的?
现在的问题是JVM是怎样加载这个类并调用main方法?
在main方法执行之前, JVM需要加载、链接以及初始化这个类。
1. 加载将类/接口的二进制形式装入JVM中。
2. 链接将二进制类型的数据融入到JVM的运行时。链接由3个步骤组成:验证、准备、以及解析(可选)。验证确保类、接口在结构上是正确的;准备涉及到为类、接口分配所需要的内存;解析是解析符号引用。
3. 最后,初始化为类变量分配正确的初始值。

------------------------
public static void main (String[] args)
这是java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可理解为规定的格式
对于里面的参数及修饰符
public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样java虚拟机就可以找到main()方法,从而来运行javac程序
static:表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候main()方法也随着加载到内存中去
void:main()方法是不需要返回值的
main:约定俗成,规定的
String[] args:从控制台接收参数,args为任意参数,可修改。

--------------------------------
public static void main(String[] args)
这绝对不是凭空想出来的,也不是没有道理的死规定,而是java程序执行的需要。
jvm在试图运行一个类之前,先检查该类是否包含一个特殊方法。这个方法必须是公有的,以便在任何位置都能访问得到。这个方法必须是static的,因为这个方法不能依赖任何该类的实例即可运行,而非static的方法,在运行之前要先创建该类的实例对象。
这个方法没有返回值。和C/C++程序不一样,java的程序默认都以常态结束,所以main不返回int。如果要以非常态结束程序,可以用System.exit(1)。
这个方法必须可以接受数目不定的String类型的参数,因为运行者可能要附加运行参数。如java HelloWorld jack 100,这里的jack和100就是运行参数。
为什么是String呢?因为String具有普遍性。任何字面形式都可以解释成String,而其他类型则不然(如jack就不能解释成整数或浮点数),所以用String来存储参数最合适。而因为参数数目不限一个,所以用了数组,即String[]。在Java 1.5以后,还可以写成String...,表示数目不定。
至于参数的变量名可以任意,只要保证在方法内部按该变量名来获得参数就行了,从变量的作用角度来说,叫arguments或args当然是最合适的。
至于这个方法的名字为什么一定是main,有历史原因,因为最早的C以main函数作为程序入口,java沿用了这个历史传统。

*/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值