主函数 大家都会写吧。

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

白话解释:

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. python 想搞加密算法吗?快戳这里

    加密算法介绍 一,HASH Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换 ...

  2. scrapy 爬虫基础

    Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. 安装Scrapy的 ...

  3. 用Go自己实现配置文件热加载功能

    说到配置文件热加载,这个功能在很多框架中都提供了,如beego,实现的效果就是当你修改文件后,会把你修改后的配置重新加载到配置文件中,而不用重启程序,这个功能在日常中还是非常实用的,毕竟很多时候,线上 ...

  4. Java 英文面试题

    1. Q: What is HashMap and Map?A: Map is Interface and Hashmap is class that implements that. 2. Q: D ...

  5. 笔记:Maven 项目基本配置

    Maven 的基本设置包含项目基本信息和项目信息,基本信息主要用于设置当前包的归属项目.当前项目等,配置文件结构如下: <project xmlns="http://maven.apa ...

  6. SAS9.2的增强编辑器注册解决方案

    系统环境:Win10,64位,SAS9.2破解版 问题: 原win7换成win10后,重装SAS9.2,增强编辑器无法使用. 解决方案: 方案一: 点击"视图"-选择程序编辑器,这 ...

  7. 【Python】 闭包&装饰器

    python中的函数本身就是对象,所以可以作为参数拿来传递.同时其允许函数的层级嵌套定义,使得灵活性大大增加. 闭包 闭包的定义:将函数的语句块与其运行所需要的环境打包到一起,得到的就是闭包对象.比如 ...

  8. linux下tomcat无法访问问题(换一种说法:无法访问8080端口)

    有时候linux下的tomcat其他机器无法访问,比如主机无法访问linux虚拟机的tomcat,这是因为tocat的端口,linux没有对外开放,所以只能localhost访问,但是别的机器访问不了 ...

  9. 详细说明手工创建oracle数据库实例

    手工建库比起使用DBCA建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好地理解Oracle数据库的体系结构.手工建库须要经过几个步骤,每一个步骤都非常关键.它包括:1. 创建必 ...

  10. MySQL升级-5.6升级到5.7版本&切换GTID模式

          目前未在生产环境中升级过数据库版本,倒是在测试环境跟开发环境升级过.       可以通过mysqldump sql文件进行升级,也可以通过mysql_upgrade升级,前者耗时较长,且 ...