主函数 大家都会写吧。

大家一直都不知道为何这样设计,这样设计有什么好处呢?

白话解释:

main函数的修饰符是public: 公共的

为何不用private 等等的修饰符 而规定只用public呢?

public修饰符的权限在 其他 修饰符中 权限是最大的

用public来修饰main  是为了让java虚拟机能访问这个主函数(程序入口),是在任何状态中都能调用,所以才不用private,   你假设下   你把main函数用private修饰的话,java虚拟机能访问到这个主函数(程序入口)吗? 答案是不能     你想想看  连main都进不去了  谈何编译你的程序。。。。

main函数的详解:

public : 公共的。 权限是最大,在任何情况下都可以访问。 private  
原因: 为了保证让jvm在任何情况下都可以访问到main方法。

static:  静态。静态可以让jvm调用main函数的时候更加的方便。不需要通过对象调用。

void:  没有返回值。 因为返回的数据是 给 jvm,而jvm使用这个数据是没有意义的。所以就不要了。

main: 函数名。   注意: main并不是关键字,只不过是jvm能识别的一个特殊的函数名而已。

arguments :担心某些程序在启动需要参数。

下面大括号区域只做了解,不懂以后的章节我会点出的。。别急哈  我现在只是顺便提出来说说

{比如说QQ    启动的时候需要用户输入一些数据,所以sun公司想的挺周到。不过一般录入数据  我们都是用Scanner  用Scanner  能让用户随时随地的输入数据  相比args 比较灵活, 现在很少人使用args 来输入数据了}

那么我们怎么给args数组传参呢?

测试代码1(查看args数组的长度):

class Demo1
{
public static void main(String[] args)
{
System.out.println("数字的长度:"+args.length);
}
}

运行结果:

(给args数组传参):

1.先把测试代码1编译:

2.

java Demo1 参数1 参数2 参数3               我传了 1 2 3           3个参数  ,下面我们来看下是不是真的传进去了

测试代码2(遍历args数组的参数):

class Demo1
{
public static void main(String[] args)
{
System.out.println("数字的长度:"+args.length);
for(int i = 0 ; i < args.length ; i++){
System.out.print(args[i]+",");
}
}
}

运行结果:

JAVA_SE基础——37.main方法的详解的更多相关文章

  1. main方法的详解

    格式 * public static void main(String[] args) {} 针对格式的解释 public 被jvm调用,访问权限足够大. static 被jvm调用,不用创建对象,直 ...

  2. 虚方法virtual详解

    虚方法virtual详解   从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行期间是不发生变化的,也就是写死了的!而虚函数在 ...

  3. C#操作SQLite方法实例详解

    用 C# 访问 SQLite 入门(1) CC++C#SQLiteFirefox  用 C# 访问 SQLite 入门 (1) SQLite 在 VS C# 环境下的开发,网上已经有很多教程.我也是从 ...

  4. 集合类 Contains 方法 深入详解 与接口的实例

    .Net 相等性:集合类 Contains 方法 深入详解 http://www.cnblogs.com/ldp615/archive/2009/09/05/1560791.html 1.接口的概念及 ...

  5. C#虚方法virtual详解

    转: http://www.cnblogs.com/jason_yjau/archive/2009/08/25/1553949.html C#虚方法virtual详解 在C++.Java等众多OOP语 ...

  6. 4.C#虚方法virtual详解

    C#虚方法virtual详解 在C++.Java等众多OOP语言里都可以看到virtual的身影,而C#作为一个完全面向对象的语言当然也不例外. 虚拟函数从C#的程序编译的角度来看,它和其它一般的函数 ...

  7. 基础 | batchnorm原理及代码详解

    https://blog.csdn.net/qq_25737169/article/details/79048516 https://www.cnblogs.com/bonelee/p/8528722 ...

  8. 2020你还不会Java8新特性?方法引用详解及Stream 流介绍和操作方式详解(三)

    方法引用详解 方法引用: method reference 方法引用实际上是Lambda表达式的一种语法糖 我们可以将方法引用看作是一个「函数指针」,function pointer 方法引用共分为4 ...

  9. Java工程师 基础+实战 完整路线图(详解版)

    Java工程师 基础+实战 完整路线图(详解版)   Java 基础 Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的 oop 特性:封装.继承.多态.此外还有泛型.反射 ...

随机推荐

  1. 配置linux软件下载跟新地址

    /etc/yum.repos.d/CentOS-Base.repo 直接到mirrors.aliyum.com下载 diff:比较

  2. Pluto - iOS 上一个高性能的排版渲染引擎

    WeTest 导读 Pluto 是 iOS 上的一个排版渲染引擎,通过 JSON/JS 文件可以很方便地描述界面元素,开发效率很高,并且在流畅度,内存等方便有保证.pluto.oa.com 上有更多详 ...

  3. Linux 学习(01):Linux Shell

    进入命令行 在图形化桌面出现之前,与Unix系统进行交互的唯一方式就是借助由shell所提供的文本命令行界面(command line interface,CLI).CLI只能接受文本输入,也只能显示 ...

  4. Atlas安装配置

    准备环境 192.168.1.1(Altas) 192.168.1.2(MySQL主) 192.168.1.3(MySQL从) 官方链接:https://github.com/Qihoo360/Atl ...

  5. 深入理解Java虚拟机(第2版) 笔记目录

    本篇为读深入理解Java虚拟机(第2版)一书的笔记目录. Java 运行期数据区 Java 垃圾回收算法 Java 内存分配策略 Java 类文件结构 Java 加载.链接.初始化 Java 类加载器

  6. 1-1 struts2 基本配置 struts.xml配置文件详解

    详见http://www.cnblogs.com/dooor/p/5323716.html 一. struts2工作原理(网友总结,千遍一律) 1 客户端初始化一个指向Servlet容器(例如Tomc ...

  7. R语言-用户细分

    案例:通过使用R语言的聚类算法将用户进行合理的划分,找出对超市贡献度,光临度最高的优质客户,对后期的推广有更深远的影响 1.导入包 library(dplyr) library(reshape2) l ...

  8. 笔记:Struts2 的 JSON 插件

    安装插件,将其复制到Web应用的WEB-INF/lib 目录下 Struts2-json-plugin-2.3.16.3.jar json-lib-2.3-jdk15.jar commons-bean ...

  9. cloneNode和replaceChild

    node.cloneNode(deep) var node=document.getElementById("myList2").lastChild.cloneNode(true) ...

  10. 【Python】 更棒的Excel操作模块xlwings

    [xlwings] 说到Python操作Excel,有好多模块都可以支持这个工作.比如最底层的win32模块不仅可以操作Excel,还可以操作其他一众windows的软件. 其他的比较熟悉的有xlrd ...