Java中的main方法,是一个java应用程序的入口,无论一个java的应用多么复杂庞大,或是多么的小,只要他是一个可以运行的java程序那么必然就要有一个main方法。

main方法的定义格式通常固定如下: (推荐学习:java课程)public class Demo {

public static void main(String[] args) {

System.out.println("Hello Word");

}}

1、为什么是公共的(public)

ans1:Java指定了一些可访问的修饰符如:private,protected,public。每个修饰符都有它对应的权限,public权限最大,为了说明问题,我们假设main方法是用private修饰的,那么main方法出了Demo这个类对外是不可见的。

那么,JVM就访问不到main方法了。因此,为了保证JVM在任何情况下都可以访问到main方法,就用public修饰。

ans2:Java设计了几个访问修饰符,包括:private,protected,public。 在Java中声明为public的任何方法或变量都可以从该类的外部访问。 而JVM访问main方法显然不是在类的内部访问,因此main方法需要定义为public的方法。

2、为什么是静态的(static)

静态可以让JVM调用main方法的时候更加方便,不需要通过对象调用。关于static关键字我们知道的是,static关键字修饰的方法,可以不用通过创建一个实例去访问,而是可以通过类名直接访问。并且static修饰的方法以及变量存储在虚拟机当中的方法区当中,而非堆内存当中。

那么,对于虚拟机来说也是一样的道理。main方法定义为static的,则对于虚拟机来说,在程序启动之后并不需要创建一个实例,就可以去调用这个main方法。

3、为什么没有返回值(void)

void表示main方法没有返回值,没有返回值的原因是因为Java不需要main方法向操作系统返回退出信息。如果main方法正常退出,那么Java应用层序的退出代码为0,表示成功的运行了程序。

4、main

main的名称不能变是为了JVM能够识别程序运行的起点,main方法可以被重载,重载的main方法不会被执行。main方法作为程序初始线程的起点,任何其他线程均由该线程启动。

JVM内部有两种线程,非守护线程和守护线程,main方法属于非守护线程,守护线程通常由JVM自己使用,Java程序也可以表明自己的线程是守护线程。当程序中所有的非守护线程终止时,JVM退出。也可以用Runtime类或者System.exit()来退出。

5、String [] args

String[] args,是main方法中唯一可以改变的地方!args是arguments的缩写,只是一个变量默认名,习惯性写作它,但是也可以改变的,只要符合命名规则随便你写成什么。

在使用集成开发工具的今天,String[] args更像是一种摆设了,很多初学者都不知道它的作用,其实它是程序运行传入的一个参数组。

java中main方法的作用是什么_java中main方法是什么相关推荐

  1. java static关键字的作用是什么_java中的static关键字

    一.static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概念,在Java中static表示"全局"或者 ...

  2. Java中static的作用详解_java中static作用详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  3. java域的控制修饰符可分为_Java中的类和方法的修饰符

    java 中的类和方法的修饰符Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性.类的修饰符分为访问控制符和非访问控制符两大类 ...

  4. java中的equals拿什么鞋的_Java中==和equals方法

    Java程序中测试两个变量是否相等有两种方式:1.== :2.equals()方法 当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是基本数值类型(不一定要求数据类型严格相同),则 ...

  5. java的import和python的import对比_Java中的Import和Pacakge作用生动详解(感觉python中的import作用差不多)...

    转自:http://apps.hi.baidu.com/share/detail/6510541 有些人写了一阵子Java,可是对於Java的package跟import还是不太了解很多人以為原始码. ...

  6. java中的post的作用,JSP、Servlet中get请求和post请求的区别总结

    在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...

  7. vue中组件的导出导入_5.2 vue中 keep-alive 组件的作用,详细解释keep-alive使用方法...

    问题:vue中 keep-alive 组件的作用 keep-alive:主要用于保留组件状态或避免重新渲染. 比如: 有一个列表页面和一个 详情页面,那么用户就会经常执行打开详情=>返回列表=& ...

  8. java 接口中的成员只有静态常量和_Java中抽象类和接口的具体区别是什么?

    谢邀,直接回答. 接口在面向对象编程中占着很重要的地位,它是对于一种事物行为的抽象提取,内部只需要持有接口的引用,外部可以根据具体事物做不同的扩展,而不修改内部的引用逻辑,它的主要作用是在框架中实现不 ...

  9. java可重入锁是什么意思_Java中的可重入(Reentrant)锁

    ## 什么是可重入锁? 可重入锁是一种特殊的互斥锁,它可以被同一个线程多次获取,而不会产生死锁. 1. 首先它是互斥锁:任意时刻,只有一个线程锁.即假设A线程已经获取了锁,在A线程释放这个锁之前,B线 ...

最新文章

  1. 为什么小批量会可以使模型获得更大的泛化
  2. 模拟ssh的远程网络传输
  3. 唐人街探案3观后感:大四学生的看法
  4. 出了本练内功的书:《完美软件开发:方法与逻辑》
  5. python把模块装到文件夹中_把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案...
  6. 如何判断模糊图像_深圳企业宣传片拍摄制作教你如何使用手动聚焦
  7. 我的MVVM框架 v3教程——todos例子
  8. spring boot 2.0 与FASTDFS进行整合
  9. Somer’s D(Somers’ Delta)-顺序变量相关性分析方法
  10. 并发编程常见面试题总结一
  11. 2022国内十大工业级三维视觉引导企业一览
  12. sonic云真机linux分布式部署
  13. win10无限重启服务器,Win10 1909系统解决电脑无限重启的方法
  14. 「教程」Windows程序未响应,怎么分析确认具体原因
  15. 解决OneNote同步失败的一种方法-使用DNSCrypt
  16. 【技巧总结】理解XXE从基础到盲打
  17. 用CMD命令查看局域网电脑IP地址,电脑名称及MAC地址
  18. 如何制定 - 测试计划和策略 (详细讲解)
  19. stm32 SWD调试接口的使用
  20. 一文看懂推荐系统:物品冷启05:流量调控

热门文章

  1. java thread.sleep单位_[译]Java Thread Sleep示例
  2. zbrush 制作麻绳
  3. 学计算机山西学校哪里好,山西太原计算机应用学校哪个好
  4. 深度学习讲座笔记:Deep Learning for Computer Vision - Andrej Karpathy at Bay Area Deep Learning School
  5. makefile内置函数patsubst
  6. 3G产品肢解“狂魔”剖析业内名品特色
  7. Flink run 参数解释
  8. 电脑文件里哪里能用计算机,文件夹选项在哪找,计算机文件夹选项在哪里
  9. 【比赛记录】国电投-风机叶片开裂故障预警比赛
  10. CSS3动画及3D初识