首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java main()方法剖析

从语法上对main方法的理解 从JVM角度: 由于JVM需要调用类的main()方法,所以该方法的访问权限必须是public, 又因为JVM在执行main()方法时不必创建对象,所以该方法必须是static...从Java语法角度: 又因为main() 方法是静态的,我们不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员。...注:有很多初学者 ( 我也是 ) 可能会认为文件名应该也和 main 方法所在类有关系,其实不然。...main 方法只是程序的一个入口,老师讲“一个程序只能有一个入口”,好象是在说只能有一个 main 方法,其实,只要你高兴,就可以在所有类里都写上 main 方法,给程序提供N多个入口,但是最后你运行程序的时候也只能从其中的一个入口进去...,这就是 main 的作用( 程序入口 )。

55330
您找到你想要的搜索结果了吗?
是的
没有找到

Java main 方法三问

Java main 方法三问 main 方法是我们能刚开始学习 Java 时接触的第一个方法,在开发过程中我们都会直接和间接的使用到这个方法,那么你是否考虑过这三个问题: main 方法为什么是静态方法...零、main 方法为什么是静态方法 我们想象一下,如果 main 方法不是静态的,那么 JVM 在调用 main 方法前就必须先实例化 main 类,但是构造器可以被重载因此 JVM 就无法确认到底应该调用哪个...main 方法。...一、main 方法为什么是公有方法 在 Java 中定义了一些访问修饰符,程序中的每个方法都可以加上任何一种访问修饰符。...二、main 方法的返回值为什么是 void main 方法为什么没有返回值其实很简单,因为 main 返回任何值对于程序来说没什么用。

53440

Javamain方法详解

Java中的main方法,是一个java应用程序的入口,无论一个java的应用多么复杂庞大,或是多么的小,只要他是一个可以运行的java程序那么必然就要有一个main方法。...因此,为了保证JVM在任何情况下都可以访问到main方法,就用public修饰。 ans2:Java设计了几个访问修饰符,包括:private,protected,public。...在Java中声明为public的任何方法或变量都可以从该类的外部访问。 而JVM访问main方法显然不是在类的内部访问,因此main方法需要定义为public的方法。...3、为什么没有返回值(void) void表示main方法没有返回值,没有返回值的原因是因为Java不需要main方法向操作系统返回退出信息。...如果main方法正常退出,那么Java应用层序的退出代码为0,表示成功的运行了程序。

1.7K20

javamain方法的运行

学过java的都知道main方法是学习java的开始,也是程序的入口,不过你有多少个类或程序,线程,他们的入口方法都是main()。...main方法是一个静态的方法,所以这个方法是属于类的,而不是对象的;在 main() 方法中,参数类型是 “String[] args”, 意味着在启动Java应用的同时,传递一个 String 类型的数组来定制化应用的初始化属性...4. executed the main method(执行main方法) 实际上,装载的工作是由Java的 类加载器 完成的。当JVM启动的时候,会同时启动三个类加载器。 1....Extensions class loader(扩展加载器):负责加载位于 “/jar/lib/ext” 等目录下的扩展Java类库。 3....System class loader(系统加载器):负责加载位于 CLASSPATH 路径中的Java类。 所以,我们的 HelloWorld 类是被系统加载器加载的。

1.2K20

Java程序main方法执行流程

Java程序main方法执行流程 当我们编写完java源代码程序后,经过javac编译后,执行java命令执行这个程序时,是怎么一步步的调用到我们程序中的main方法的呢?...java可执行程序是由C++编写的,它的内部会启动一个Java虚拟机实例。 虚拟机启动入口函数位于src/java.base/share/native/launcher/main.c。...// src/java.base/share/native/launcher/main.c // java程序启动入口主函数 JNIEXPORT int main(int argc, char **argv...在文章开头说过,launcher/main.c中的main函数是java程序的启动函数,在main函数中调用了JLI_Launcher函数,在JLI_Launcher会调用LoadJavaVM函数加载虚拟机的动态链接库...当初始化工作完成后,会调用java应用程序的入口方法(static void main(String[] args)),然后根据main方法的类型从_entry_table数组中找出对应的解释器入口点,

1.1K30

探秘Java:从main函数启动开始

main函数开始 一、前言   不知道在座的各位朋友是否跟我一样,初学Java时写下的第一段代码就是类似下面这段代码: public static void main(String[] args...看到这里,想必大家应该明白为什么在编写Java程序时入口函数一定需要是main函数了。...2. main函数如何执行   了解了为什么Java程序的入口方法一定是main方法,下面我们再来了解一下一个包含main方法的Java程序到底是如何被执行的。   ...这行命令会启动 java.exec 这样一个可执行程序,在这个可执行程序中会执行 src/share/tools/launcher/java.c 文件中的main方法,进行JVM启动前的运行环境版本检查...、配置初始化并创建一个JVM进程来执行Java程序,执行Java程序的过程就是上面代码展示的寻找并调用入口类的main方法。

1.2K30

Exception in thread main java.lang.OutOfMemor...

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 其实这样的错误有时候并不是程序逻辑的问题(当然有可能是由于程序写的不够高效...作业的运行机制是:在jobtracker接到客户端来的job提交后,将许多的task分配到集群中各个tasktracker上进行分块的计算,而根据代码中的逻辑可以看出,其实是在tasktracker上启了一个java...进程进行运算,进程中有特定的端口和网络机制来保持map 和reduce之间的数据传输,所以,这些OOM的错误,其实就是这些java进程中报出了OOM的错误。...进程的max heap size加大,就能解决这样的问题:     mapred.child.java.opts    -Xmx1024m...默认为1000M 有时在eclipse中叶需要修改,具体如下: 原来发现是我查询时limit后面的变量形式不对,详见java中总结的一些重点那片文章)原来只要在eclipse中,Eclipse ->run

636100

广州三本Java实习经历

前言 只有光头才能变强 这阵子跑去面试Java实习生啦~~~我来简单介绍一下背景吧。 广州三本大三在读,在广州实习。大学开始接触编程,一个非常平庸的人。...我是在6月1号开始投的简历Java实习: 实习憎投了17份: ? 在前程无忧投了69份(没有算今天刚投的): ? 在boss直聘沟通51个,可以发送8份简历出去: ?...最后拿到了offer 二、公司B 2.1笔试单选题 关注Java3y公众号的概率是5%,收藏Java3y的文章概率是20%,收藏Java3y的文章后会关注Java3y的公众号的概率是20%,已知某开发者看到...public Employee(String name) { empId = id; } } class Test{ public static void main...class Example{ public static void main (String args[]){ boolean b=true; System.out.println

1.5K00

javamain方法是怎么运行的?

学过java的都知道main方法是学习java的开始,也是程序的入口,不过你有多少个类或程序,线程,他们的入口方法都是main() main方法是一个静态的方法,所以这个方法是属于类的,而不是对象的;...在 main() 方法中,参数类型是 “String[] args”, 意味着在启动Java应用的同时,传递一个 String 类型的数组来定制化应用的初始化属性。...4. executed the main method(执行main方法) 实际上,装载的工作是由Java的 类加载器 完成的。当JVM启动的时候,会同时启动三个类加载器。 1....Extensions class loader(扩展加载器):负责加载位于 “/jar/lib/ext” 等目录下的扩展Java类库。 3....随后,被调用的 println() 方法又会生成一个栈帧被推入到 “main” 线程所在的栈中。当 main() 方法执行完毕,整个的栈会被销毁,整个的应用也就正常结束了。

1.4K20
领券