public static void main(String[] args)

原创 2016年08月29日 23:35:07

最近刚开始学习JAVA,下面是遇到的一些问题,在网上查看了很多资料和一些牛人的技术博客,自己才稍稍领悟,在这里做些总结和整理。有些牛人对知识点的理解很完美,这里就直接借鉴了。

注:本人菜鸟一枚,错误之处望留言指正。

  • 1、写JAVA代码时,最先写的这两行到底是什么意思?

    1. public class HelloWorld {
    2.     public static void main(String[] args) {
    3. 
    4.     }
    5. }
    
  • 在这里首先说下,定义一个方法的语法:

        访问修饰符  返回值类型  方法名(参数列表) {
                方法体
        }
    
    1. 访问修饰符:方法允许被访问的权限范围,比如,public、protected、private 或者省略。其中public表示该方法可以被其它任何代码调用
    2. 返回值类型:定义方法的返回值的类型,如果方法不需要返回任何值,则返回值类型指定为void;如果方法需要返回值,则需要指定返回值的类型,并且在方法体中添加一条return语句用来返回值
    3. 方法名:定义的方法的名字,必须使用合法的标识符
    4. 参数列表:传递给方法的参数列表,参数可以有多个,也可以没有,多个参数之间用逗号隔开。每个参数由参数类型和参数名组成,以空格隔开
  • 在这里先来了解一些与Java相关的名词:

Java Virtual Machine,简称JVM;它是运行所有Java程序的抽象计算机,是Java语言的运行环境,JVM读取并处理编译过的与平台无关的字节码(class)文件。
Java语言是跨平台的,就是因为有JVM的存在。而JVM不是跨平台的,不同的操作系统需要安装与此对应的JVM。在需要运行Java应用程序的操作系统上,先安装一个Java虚拟机,由Java虚拟机负责Java程序在该系统中的运行。

在Java编程中,JVM会首先查找类中的main方法,因为main方法是Java程序的入口(关于程序的入口,其它的情况在这里不讨论),如果找不到main方法,程序会报错(我是在DOS界面中分布运行Java程序的,在程序的编译阶段不会报错,在程序的执行阶段会报错,提示:“在类中找不到main方法,请将main方法定义为:public static void main(String[] args) …”Java程序的执行阶段是由JVM参与的,编译阶段JVM是不管的)

main方法的public修饰符

public表明允许系统中任何位置的类都可以访问它。当然,JVM也可以轻松的访问执行它。

main方法的static修饰符

这里先说说类的实例化

如果被调用的方法声明为static,可以在其它方法中直接调用。如果被调用方法没被static修饰(不是静态方法),调用时需要通过类的实例化进行调用(因为静态方法随着类的加载而加载,其先存在,对象后存在。一个已经存在的方法去调用还不存在的方法(没被static修饰),就要先创建那个方法的对象,创建对象的过程,就称为实例化。然后通过对象去调用那个方法。这个过程就是类的实例化)
1. 因为main方法是静态的,JVM调用这个方法时就不需要创建任何包含这个main方法的实例。
2. 如果main方法不声明为静态的,JVM就必须创建main类的实例,但是构造器可以被重载(个人理解,“构造器”就是,和类名相同但无返回值的方法),JVM就没法确定调用哪个main方法。

main方法返回值为void

main方法作为程序的入口和出口,是没有返回值的,main方法不同于其它方法,其它方法可以有返回值,这样在程序中调用该方法是,可以获取返回值,而main方法是由JVM调用的,如果main有返回值,那这个返回值返回给谁呢,肯定返回给JVM,那么这个返回还有意义吗。

(String[] args)

函数的参数,参数类型是一个数组,该数组中的元素是字符串。JVM在调用主函数时,传入的是new String[0];

程序第一行的“public class HelloWorld”也就很好理解了,指定类名Helloworld的权限为public(公有的)

版权声明:本文为博主原创文章,未经博主允许不得转载。

java中为什么需要public static void main(String[] args)这个方法

此方法为java程序的入口方法,jvm在运行程序时,会首先查找main()方法。其中public是权限修饰符,表明任何类或对象都可以访问这个方法,static表明是静态方法,及方法中的代码是存储在静态...
  • aym_fuhong
  • aym_fuhong
  • 2016年09月05日 09:55
  • 1021

【java】Static解读和public static void main(String[] args)详细分析

首先问一个问题: publicstatic void main(String[] args)代码代表了什么含义?以及思考为什么java程序一开始就会进入main()函数,其实c、c++也是如此?后面一...
  • lzm18064126848
  • lzm18064126848
  • 2015年11月27日 20:29
  • 6516

public static void main(String[] args){}函数诠释

主函数的一般写法如下:   public static void main(String[] args){…}   下面分别解释这些关键字的作用:   (1)public关键字,这个好理解,声明...
  • zsm653983
  • zsm653983
  • 2012年10月16日 14:01
  • 2377

《Java程序员面试笔试宝典》之为什么需要public static void main(String[] args)这个方法

public staticvoid main(String[] args)为Java程序的入口方法,JVM在运行程序的时候,会首先查找main方法...
  • xdhehao
  • xdhehao
  • 2014年05月04日 22:15
  • 4293

public static void main(String[] args){} 关于Java main()方法

是Java程序的入口方法,JVM在运行程序时,会首先查找main()方法。   public是权限修饰符,表明任何类或对象都可以访问这个方法;   static表明main()方法是一个静态方法,即方...
  • kzadmxz
  • kzadmxz
  • 2017年06月30日 15:02
  • 980

关于main函数的传参数介绍 public static void main(String[] args)

/* * //这里要对main函数讲解一下,参数String[] args是一个字符串数组,接收来自程序执行时传进来的参数 如果是在控制台,可以通过编译执行将参数传进来,命令行如下: javac H...
  • woshiluoye9
  • woshiluoye9
  • 2017年02月22日 09:09
  • 1823

Java之public static void main(String[] args)

public static void main(String[] args)是Java程序的入口方法,JVM在运行程序时,会首先查找main()方法。其中,public是权限修饰符,表明任何类或者对象...
  • SHENNONGZHAIZHU
  • SHENNONGZHAIZHU
  • 2016年07月14日 16:51
  • 1285

public static void main(String[] args){}函数诠释

主函数的一般写法如下:  public static void main(String[] args){…}  下面分别解释这些关键字的作用:  (1)public关键字,这个好理解,声明主函数为pu...
  • chensong0708
  • chensong0708
  • 2011年07月25日 11:30
  • 7212

Java里public static void main(String[] args)与public static void main(String args[])的区别(by 星空武哥)

他们的最终结果是没有什么不同,但是从语法上是有不同的。 点击链接支持一下,非常感谢!http://www.2345.com/?kqq420605794 String args[]单从类型上来讲属于...
  • lsyz0021
  • lsyz0021
  • 2015年07月21日 21:55
  • 1633

java的main函数为什么是public static void main(String[] args)

这个问题困扰我好久了,今天就一查究竟,毕竟我好奇心比较重1. why “public”   因为java程序是通过jvm虚拟机调用的,所以main()函数要是想被调用,必须是public2.why “...
  • gshengod
  • gshengod
  • 2015年01月09日 15:36
  • 7399
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:public static void main(String[] args)
举报原因:
原因补充:

(最多只允许输入30个字)