java中main方法的作用是什么_java中main方法是什么
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方法是什么相关推荐
- java static关键字的作用是什么_java中的static关键字
一.static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概念,在Java中static表示"全局"或者 ...
- Java中static的作用详解_java中static作用详解
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...
- java域的控制修饰符可分为_Java中的类和方法的修饰符
java 中的类和方法的修饰符Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性.类的修饰符分为访问控制符和非访问控制符两大类 ...
- java中的equals拿什么鞋的_Java中==和equals方法
Java程序中测试两个变量是否相等有两种方式:1.== :2.equals()方法 当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是基本数值类型(不一定要求数据类型严格相同),则 ...
- java的import和python的import对比_Java中的Import和Pacakge作用生动详解(感觉python中的import作用差不多)...
转自:http://apps.hi.baidu.com/share/detail/6510541 有些人写了一阵子Java,可是对於Java的package跟import还是不太了解很多人以為原始码. ...
- java中的post的作用,JSP、Servlet中get请求和post请求的区别总结
在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...
- vue中组件的导出导入_5.2 vue中 keep-alive 组件的作用,详细解释keep-alive使用方法...
问题:vue中 keep-alive 组件的作用 keep-alive:主要用于保留组件状态或避免重新渲染. 比如: 有一个列表页面和一个 详情页面,那么用户就会经常执行打开详情=>返回列表=& ...
- java 接口中的成员只有静态常量和_Java中抽象类和接口的具体区别是什么?
谢邀,直接回答. 接口在面向对象编程中占着很重要的地位,它是对于一种事物行为的抽象提取,内部只需要持有接口的引用,外部可以根据具体事物做不同的扩展,而不修改内部的引用逻辑,它的主要作用是在框架中实现不 ...
- java可重入锁是什么意思_Java中的可重入(Reentrant)锁
## 什么是可重入锁? 可重入锁是一种特殊的互斥锁,它可以被同一个线程多次获取,而不会产生死锁. 1. 首先它是互斥锁:任意时刻,只有一个线程锁.即假设A线程已经获取了锁,在A线程释放这个锁之前,B线 ...
最新文章
- 为什么小批量会可以使模型获得更大的泛化
- 模拟ssh的远程网络传输
- 唐人街探案3观后感:大四学生的看法
- 出了本练内功的书:《完美软件开发:方法与逻辑》
- python把模块装到文件夹中_把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案...
- 如何判断模糊图像_深圳企业宣传片拍摄制作教你如何使用手动聚焦
- 我的MVVM框架 v3教程——todos例子
- spring boot 2.0 与FASTDFS进行整合
- Somer’s D(Somers’ Delta)-顺序变量相关性分析方法
- 并发编程常见面试题总结一
- 2022国内十大工业级三维视觉引导企业一览
- sonic云真机linux分布式部署
- win10无限重启服务器,Win10 1909系统解决电脑无限重启的方法
- 「教程」Windows程序未响应,怎么分析确认具体原因
- 解决OneNote同步失败的一种方法-使用DNSCrypt
- 【技巧总结】理解XXE从基础到盲打
- 用CMD命令查看局域网电脑IP地址,电脑名称及MAC地址
- 如何制定 - 测试计划和策略 (详细讲解)
- stm32 SWD调试接口的使用
- 一文看懂推荐系统:物品冷启05:流量调控
热门文章
- java thread.sleep单位_[译]Java Thread Sleep示例
- zbrush 制作麻绳
- 学计算机山西学校哪里好,山西太原计算机应用学校哪个好
- 深度学习讲座笔记:Deep Learning for Computer Vision - Andrej Karpathy at Bay Area Deep Learning School
- makefile内置函数patsubst
- 3G产品肢解“狂魔”剖析业内名品特色
- Flink run 参数解释
- 电脑文件里哪里能用计算机,文件夹选项在哪找,计算机文件夹选项在哪里
- 【比赛记录】国电投-风机叶片开裂故障预警比赛
- CSS3动画及3D初识