为什么main方法是public static void?
main方法是我们学习java接触到的第一个方法,当时学的时候就规定main方法的写法是固定的:
public static void main(String args[])
那么,为什么main方法一定要是public static void 类型的呢,
在JVM启动的时候,会寻找public static void main(String args)方法作为入口,如果找不到该方法就抛出错误NoSuchMethodError:main 程序终止。
Java指定了一些可访问的修饰符如:private、protected、public,任何方法或变量都可以声明为public,Java可以从该类之外的地方访问。因为main方法是公共的,JVM就可以轻松的访问执行它。
为什么main方法是静态的(static)
- 正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个main方法的实例。
- 因为C和C++同样有类似的main方法作为程序执行的入口。
- 如果main方法不声明为静态的,JVM就必须创建main类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。
- 静态方法和静态数据加载到内存就可以直接调用而不需要像实例方法一样创建实例后才能调用,如果main方法是静态的,那么它就会被加载到JVM上下文中成为可执行的方法。
<strong>为什么main方法没有返回值(Void) </strong>
因为main返回任何值对程序都没任何意义,所以设计成void,意味着main不会有任何值返回
<strong>总结</strong>
main方法必须声明为public、static、void,否则JVM没法运行程序
如果JVM找不到main方法就抛出NoSuchMethodError:main异常,例如:如果你运行命令:
java HelloWrold
JVM就会在HelloWorld.class文件中搜索public static void main (String[] args) 放法
main方式是程序的入口,程序执行的开始处。
main方法被一个特定的线程”main”运行,程序会一直运行直到main线程结束或者non-daemon线程终止。
当你看到“Exception in Thread main”如:
<strong>Excpetion in Thread main:Java.lang.NullPointedException</strong>,意味着异常来自于main线程
为什么main方法是public static void?相关推荐
- 为什么 main 方法是 public static void ?
main 方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么 main 方法是 public.static.void 的.当然,很多人首先学的是C和C++,但是在Java中main ...
- 详解java的主方法main方法:public static void main(String[] args){}
main方法是java程序的主方法,是java程序的入口,public static void main(String[] args){--} 那么这个方法是如何起作用的呢?下面我们就来探讨一下. p ...
- main方法中args_public static void main(String [] args)– Java main方法
main方法中args public static void main(String[] args) is the most important Java method. When you start ...
- 今天终于搞懂了:为什么 Java 的 main 方法必须是 public static void?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:suo.im/6v9d64 为什么 main 方法是 ...
- 你知道为什么Java的main方法必须是public static void?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://suo.im/6v9d64 Main 方法是我 ...
- main方法_你知道为什么Java的main方法必须是public static void?
来源:http://suo.im/6v9d64 Main 方法是我们学习 Java 编程语言时知道的第一个方法,你是否曾经想过为什么 main 方法是 public.static.void 的.当然, ...
- 为什么Java的main方法必须是public static void?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://suo.im/6v9d64 Ma ...
- java中main方法前的public static void及其后面的(String[] args)【笔记自用】
为什么Java的main方法必须是public static void? 一. void 如下,像C, C++一样,将返回值类型改为int,再返回一个0,虽然编译通过,但是运行时会报错. 找到一种可理 ...
- 有初学的同学问你为什么Java的main方法必须是public static void?请告诉ta!
相信这个问题你也思考过?但是如果让你说起来,你知道怎么叙述吗?或者说怎么说明白. 问题:为什么Java的main方法必须是public static void? 科班出身的话,相信大家都是先学习的C ...
最新文章
- Linux疑难杂症解决方案100篇(六)-SHELL编程条件判断和流程控制
- 2019-12-03 有用的学术网站
- 这是我见过最全面的Python装饰器详解!没有学不会这种说法
- 使用mysql做saas_一种SaaS企业平台数据库系统及其连接方法与流程
- pyecharts第五节、关系图
- php 获取localstorage,浅谈localStorage的本地存储
- 福昕风腾pdf导出为html,福昕风腾PDF套件快速指引.pdf
- Java中内存泄漏八种情况的总结
- 译者后记 ——《DOOM启示录》读后感(二)
- 《编译原理》画 DAG 图与求优化后的 4 元式代码- 例题解析
- “21 天好习惯”第一期-2 2021牛客暑期多校训练营10 F、Train Wreck
- openstack Juno安装——之手动安装
- LUP分解方法,矩阵求逆
- socks5 python_用Python写socks5服务器端
- Python数据分析中 DataFrame axis=0与axis=1的理解
- monthcalendar控件
- 开源按键组件Multi_Button的使用,含测试工程
- JRTPLIB使用实例
- AMD天下!10款超性价比S754闪龙主板
- WeX5 BeX5 页面框架核心之数据绑定2021-11-15
热门文章
- h5 右下角浮动按钮_意派Epub360丨国庆黄金周将至,分享9个H5互动营销思路
- Android实现飘动的旗帜效果实例
- nginx在windows无法停止所有服务_这5项windows服务项目很常见,关于它们的设置建议请仔细参考...
- qtreewidgetitem 文字内存太长换行_table文字溢出显示省略号问题
- (计算机组成原理)第二章数据的表示和运算-第二节4:定点数的加减运算和溢出判断
- 64bit centos如何编译 32bit的程序
- Java编写简单密码问题
- vtkpolydata图形着色
- 5404. 用栈操作构建数组
- 使用Xshell连接Ubuntu详解