zoukankan      html  css  js  c++  java
  • java程序入口main()方法浅析

    java程序入口main()方法浅析

    main()方法的方法签名

    public static void main(String[] args)

    方法签名讲解

     public修饰符:java类由java虚拟机(JVM)调用,为了没有限制可以自由的调用,所以采用public修饰符。
     static修饰符:JVM调用这个主方法时肯定不是先创建这个主类的对象,再通过对象来调用方法,而是直接通过该类来调用这个方法,因此需要使用static修饰符修饰这个类。
     void返回值:主方法被JVM调用,将返回值返回给JVM没有任何意义,因此该方法没有返回值,所以使用void。
     扩展:
     public:该修饰符表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用。
     static:该修饰符表示静态的意思,简单理解被static修饰符修饰的成员都属于类本身,而不属于类的某个实例,静态成员不能能直接访问非静态成员。
     void:使用void说明没有返回值。

    这时会发现我没有说字符串数组形参内容,这里我们首先知道,谁调用方法,谁去传递形参,所以args形参由JVM负责赋值,JVM给args赋了什么值?

    我们先看一段程序:

    public class args {
        public static void main(String[] args){
            for (String s:args) {
                System.out.println(s);
            }
            System.out.println("-------------------" );
            System.out.println(args.length);
        }
    }
    

    输出:

    -------------------
    0
    

     这里输出数组长度为0,这是因为,程序没有给args设定参数值,所以JVM也就不知道args数组中的元素,然后JVM给args数组设置为一个长度为0的数组。
     如果我们使用dos命令运行程序时,在类名后加上一个或者多个字符串(以空格隔开),这时JVM会依次将这些数值赋给args数组。
    例如:

    λ java lzjarg lzj why
    lzj
    why
    -------------------
    2
    
  • 相关阅读:
    转载:SqlServer数据库性能优化详解
    复杂事件处理技术概览(一)
    Netty : writeAndFlush的线程安全及并发问题
    如何在RCP程序中添加一个banner栏
    AChecker + Selenium2对需要登录的页面进行自动化可访问性测试
    5分钟开启Esper之旅
    使SWT/JFace支持跨平台
    Ubuntu上Docker安装Trouble Shooting
    使Docker Container支持运行SWT程序
    Xcode5中如何切换Storyboards为xib
  • 原文地址:https://www.cnblogs.com/lzjwhy/p/11221890.html
Copyright © 2011-2022 走看看