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

Java main方法

语言学习第一个方法,也是每个java使用者最熟悉方法,每个Java应用程序都必须有且仅有一个main方法。...正是这种简单而特殊性质,往往容易让人对它产生忽视以及疑惑。下面就详细谈谈java main方法: 根据Java语言规范,main方法必须声明为public。...但是在JavaSE1.4以前版本中,当main方法不是public时,有些版本Java解释器也可以执行Java应用程序。...如果有人说Java main方法从来只能用public,那样说实际上还是错,因为以前出过这么个BUG。...void表示main方法没有返回值,没有返回值原因是因为Java不需要main方法向操作系统返回退出信息。如果main方法正常退出,那么Java应用层序退出代码为0,表示成功运行了程序。

68330

关于javamain函数

我们刚开始写java 程序最常见除了System.out.println( );之外应该就是 public static void main( String arg[ ] ){ …… }了。...我们通常称之为主函数或者main函数。公共和静态就不用说了,这是java程序一个入口,而String args [ ]里面是一些命令参数。...一点解释: 其中main()是一个前台线程,前台进程是程序中必须执行完成,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面。...前台线程和后台线程区别和联系: 后台线程不会阻止进程终止。属于某个进程所有前台线程都终止后,该进程就会被终止。所有剩余后台线程都会停止且不会完成。...前台线程一般用于处理需要长时间等待任务,如在Web服务器中监听客户端请求程序,或是定时对某些系统资源进行扫描 程序。

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

Java main()方法剖析

从语法上对main方法理解 从JVM角度: 由于JVM需要调用类main()方法,所以该方法访问权限必须是public, 又因为JVM在执行main()方法时不必创建对象,所以该方法必须是static...从Java语法角度: 又因为main() 方法是静态,我们不能直接访问该类中非静态成员,必须创建该类一个实例对象后,才能通过这个对象去访问类中非静态成员。...public类名称必须完全与含有该编译单元文件名相匹配,包括大小写。所以对于Widget而言,文件名称必须是Widget.java,而不是widget.java或WIDGET.java。...main 方法只是程序一个入口,老师讲“一个程序只能有一个入口”,好象是在说只能有一个 main 方法,其实,只要你高兴,就可以在所有类里都写上 main 方法,给程序提供N多个入口,但是最后你运行程序时候也只能从其中一个入口进去...,这就是 main 作用( 程序入口 )。

59130

javamain方法运行

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

1.2K20

Java main 方法三问

Java main 方法三问 main 方法是我们能刚开始学习 Java 时接触第一个方法,在开发过程中我们都会直接和间接使用到这个方法,那么你是否考虑过这三个问题: main 方法为什么是静态方法...main 方法为什么是公有方法? main 方法返回值为什么是 void ? 针对上面的三个问题我分别进行一一解答。...并且静态方法和数据加载到内存中后就可以直接调用,而不需要先实例化类后才能调用实例化方法。简单说就是静态 main 方法会被加载到 JVM 上下文中成为可直接执行方法。...一、main 方法为什么是公有方法 在 Java 中定义了一些访问修饰符,程序中每个方法都可以加上任何一种访问修饰符。...对于 main 方法来说因为需要在 main 类之外地方也能访问到因此就需要指定为公有方法。

54140

Javamain方法详解

Javamain方法,是一个java应用程序入口,无论一个java应用多么复杂庞大,或是多么小,只要他是一个可以运行java程序那么必然就要有一个main方法。...在Java中声明为public任何方法或变量都可以从该类外部访问。 而JVM访问main方法显然不是在类内部访问,因此main方法需要定义为public方法。...3、为什么没有返回值(void) void表示main方法没有返回值,没有返回值原因是因为Java不需要main方法向操作系统返回退出信息。...如果main方法正常退出,那么Java应用层序退出代码为0,表示成功运行了程序。...JVM内部有两种线程,非守护线程和守护线程,main方法属于非守护线程,守护线程通常由JVM自己使用,Java程序也可以表明自己线程是守护线程。当程序中所有的非守护线程终止时,JVM退出。

1.7K20

javamain方法是怎么运行

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

1.4K20

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

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

1.3K30

Java程序main方法执行流程

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

1.2K30

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

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

642100

10个经典 Java main 方法面试题

1.不用main方法如何定义一个类? 不行,没有main方法我们不能运行Java类。 在Java 7之前,你可以通过使用静态初始化运行Java类。但是,从Java 7开始就行不通了。...main()方法一定是静态。 如果main()允许是非静态,那么在调用main方法时,JVM就得实例化它类。 在实例化时,还得调用类构造函数。...可以,我们可以重载main()方法。一个Java类可以有任意数量main()方法。...为了运行java类,类main()方法应该有例如“public static void main(String[] args)”声明。如果你对此声明做任何修改,编译也是可以成功。...是的,main方法可以在Java中同步,synchronized修饰符允许用于main方法声明中,这样就可以在Java中同步main方法了。

62810
领券