-
2022-02-21 15:35:59
- public static void mian (Sring[ ] args)
- public :提供给JVM调用的
- static:jvm在调用这个方法是,不需要创建对象
- void:没有放回值
- (Sring[ ] args) :因为字符串数组,相当于在运行java 程序是输入的一些参数,这个参数会封装到数组中
- 在 main()方法中,我们可以直接调用 main 方法所在类的静态方法或静态属性。
- 但是,不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员。
-
public class Main01 {
//静态的变量/属性
private static String name = "123";
//非静态的变量/属性
private intn1 = 10000;
//静态方法
public static void hi() {
System.out.println("Main01 的 hi 方法")
}
//非静态方法
public void cry() {
System.out.println("Main01 的 cry 方法");
}
public static void main(String[] args) {
//可以直接使用 name
//1. 静态方法 main 可以访问本类的静态成员
System.out.println("name="+ name); //123;
hi(); //Main01 的 hi 方法
//2. 静态方法 main 不可以访问本类的非静态成员
//System.out.println("n1=" + n1);//错误
//cry();
//3. 静态方法 main 要访问本类的非静态成员,需要先创建对象 , 再调用即可
Main01 main01 = new Main01();
System.out.println(main01.n1);//ok
main01.cry();
}
}
更多相关内容 -
解决AndroidStudio无法运行java中的mian方法问题
2021-01-20 08:33:21在3.0版本之前是可以直接运行mian方法来测试的。 今天写了一个java文件准备运行着mian方法时却突然报错了,本想着是升级到4.1版本的问题?后来找到了问题所在,默认配置问题。 如下图: 系统提示app配置有误,无法... -
java mian方法详解
2021-03-15 01:07:23main() 方法定义的语法如下所示。publicstaticvoidmain(String[]args){//方法体}其中,使用 main() 方法时应该注意如下几点:● 访问控制权限是公有的(public)。●main() 方法是静态的。如果要在 main() 方法中调用...main() 方法定义的语法如下所示。public static void main(String[] args)
{
//方法体
}
其中,使用 main() 方法时应该注意如下几点:
● 访问控制权限是公有的(public)。
●main() 方法是静态的。如果要在 main() 方法中调用本类中的其他方法,则该方法也必须是静态的,否则需要先创建本类的实例对象,然后再通过对象调用成员方法。
●main() 方法没有返回值,只能使用 void。
●main() 方法具有一个字符串数组参数,用来接收执行 Java 程序的命令行参数。命令行参数作为字符串,按照顺序依次对应字符串数组中的元素。
●除了形参变量名可以任意设置以外,main() 方法中的其他内容都是固定不变的。
下面的示例代码演示了如何在 main() 方法中调用本类的静态和非静态方法。public class Student
{
public void Speak1()
{
System.out.println("你好!");
}
public static void Speak2()
{
System.out.println("Java!");
}
public static void main(String[] args)
{
//Speak1(); //错误调用
Speak2(); //可以直接调用静态方法Speak2()
Student t=new Student();
t.Speak1(); //调用非静态方法,需要通过类的对象来调用
}
}
例 1
创建一个 Java 程序,编写代码实现程序执行时统计传递参数的数量及每个参数值。示例代码如下:public class TestMain
{
//@param args
public static void main(String[] args)
{
//TODO Auto-generated method stub
int n=args.length; //获取参数数量
System.out.println("一共有 "+n+" 个参数");
if(n>0)
{
//判断参数个数是否大于0
for(int i=0;i
{
System.out.println(args[i]);
}
}
}
}
(1) 将代码保存到 TestMain.java 文件中,然后用如下 Java 命令对程序进行编译:javac TestMain.java
(2) 程序编译成功后用如下 Java 命令执行 Test 程序:java TestMain 参数列表 //多个之间用空格隔开
这里使用如下三个语句执行程序:java TestMain
java TestMain apple banana
java TestMain one two three four five six
(3) 执行结果如下所示:D:\2HHT\ShuGao\ch08\bin>java TestMain
一共有 0 个参数
D:\2HHT\ShuGao\ch08\bin>java TestMain apple banana
一共有 2 个参数
apple
banana
D:\ZHHT\ShuGao\ch08\bin>java TestMain one two three four five six
一共有 6 个参数 one
three
four
five
six
D:\ZHHT\ShuGao\ch08\bin>
由此可见,main() 方法可以以字符串的形式接收命令行参数,然后在方法体内进行处理。
-
JAVA学习笔记13:java中的mian方法详解
2019-07-10 06:38:23在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型...本文转自 https://blog.51cto.com/lavasoft/53263
没做任何修改,只想保存作为复习
Java中的main()方法详解
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等。
在看Java中的main()方法之前,先看一个最简单的Java应用程序HelloWorld,我将通过这个例子说明Java类中main()方法的奥秘,程序的代码如下:
/** * Java中的main()方法详解 */ public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } }
一、先说类:
HelloWorld 类中有main()方法,说明这是个java应用程序,通过JVM直接启动运行的程序。
既然是类,java允许类不加public关键字约束,当然类的定义只能限制为public或者无限制关键字(默认的)。
二、再说main()方法
这个main()方法的声明为:public static void main(String args[])。必须这么定义,这是Java的规范。
为什么要这么定义,和JVM的运行有关系。
当一个类中有main()方法,执行命令“java 类名”则会启动虚拟机执行该类中的main方法。由于JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不实例化这个类的对象,而是通过类名直接调用因此需要是限制为public static。
对于java中的main方法,jvm有限制,不能有返回值,因此返回值类型为void。
main方法中还有一个输入参数,类型为String[],这个也是java的规范,main()方法中必须有一个入参,类细必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。因此,main()方法定义必须是:“public static void main(String 字符串数组参数名[])”。
三、main()方法中可以throw Exception
因此main()方法中可以抛出异常,main()方法上也可以声明抛出异常。
比如,下面这个写法是正确的:
public class TestMain { public static void main(String[] args) throws Exception { System.out.println("哈哈哈哈哈"); throw new Exception(""); } }
运行结果:
哈哈哈哈哈Exception in thread "main" java.lang.Exception: at maintest.TestMain.main(TestMain.java:11) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) Process finished with exit code 1
四、main()方法中字符串参数数组作用
main()方法中字符串参数数组作用是接收命令行输入参数的,命令行的参数之间用空格隔开。
下面给出一个例子,看看如何初始化和使用这个数组的。
/** * 打印main方法中的输入参数 */ public class TestMain { public static void main(String args[]){ System.out.println("打印main方法中的输入参数!"); for(int i=0;i<args.length;i++){ System.out.println(args[i]); } } }
执行方法和运行结果
D:\Study\basetest\src>javac TestMain.java
D:\Study\basetest\src>java TestMain 1 2 3
打印main方法中的输入参数!
1
2
3五、给出HelloWorld的另外一个版本
/**
- 变态版的HelloWorld.呵呵
*/
public class HelloWorld2 {
static {
System.out.println(“Hello Wordld!”);
}
public static void main(String args[]){
System.exit(0);
}
}
这个main()方法执行的内容就一句"System.exit(0);" ,目的是让程序正常结束。那“HelloWorld!”是从哪里打印的,秘密就是在static打印的,因为static代码块的内容会在main调用前调用。
总结:
main方法作为一个特殊的规范,与普通的方法有很大区别,限制很多,理解其原理需要学习JVM相关知识。是Java中学习中大障碍。这是我对main原理和使用的总结,欢迎各位在此讨论。 - 变态版的HelloWorld.呵呵
-
java中指定jar包中的某个mian方法执行
2020-01-12 15:53:271、确保pom文件中打包方式为jar 2、pom文件中添加maven的打包插件 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <...1、确保pom文件中打包方式为jar
2、pom文件中添加maven的打包插件
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2-beta-5</version> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <!--mainClass可以设置,也可以不设置--> <mainClass>com.itfeiyue.jvm.Hello</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>assembly</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
3、执行java -cp命令
java -cp XX.jar com.itfeiyue.jvm.Hello
-
Java基础-----mian方法的格式详细解释
2018-12-07 16:25:50mian方法的格式讲解 public static void main(String[] args){…} public:公共的,访问权限最大。由于mian方法是被jvm调用,所以权限要够大。 static:静态的,不需要创建对象,通过类名就可以。方便jvm调用。 void... -
mian方法报错
2022-03-26 22:30:31今天用方法报错的时候才发现,main是一个方法,里面不能再次声明方法。System.out.println()也是一个输出方法 这是计算一个阿克曼函数的算法 import java.util.Scanner; public class Main { public static ... -
python mian 方法传递参数个数判定 | 简记
2021-05-21 18:18:23斐波那契数,Python 实现 import sys def fib(n): v = [0, 1] for i in range(2,n+1): v.append(v[i-1] + v[i-2]) return v[n] if __name__ == '__main__': if(len(sys.argv) !... print("Need input one ... -
java中mian方法中为什么要添加参数
2016-12-17 11:20:12之前面试的时候面试官问我mian方法中为什么要有参数,醉了,还真不知道,今天回来试了一下,这应该算是java中的一种标准规范吧,我在eclipse中试了一下没写String[] args参数会怎样,结果报错了,出现如下红字错误: ... -
解决AndroidStudio无法运行java中的mian方法问题。
2020-10-29 10:01:46解决AndroidStudio无法运行java中的mian方法问题。 前言:我们都知道Android开发者的必备工具:AndroidStudio。是开发人员用来编译、测试的专用工具。 今天在使用Androidstudio时发现了些问题。在3.0版本之前是可以... -
IEDA中有mian方法运行不了,String导入问题
2020-08-10 16:44:33问题描述: 没有run键 原因: 在导入String类时操作失误 解决办法: 删除该导入 -
和mian方法同级创建的内部类只能是静态内部类吗?
2021-10-22 20:52:30创建了一个和main方法同级的内部类,去掉static报错,要求加上static,在这个位置创建内部类只能是静态的吗? -
IDEA JDK配置(无法启动mian方法)
2018-07-02 11:14:47今天因为第一次使用IDEA,一直启动不了main方法,后查阅资料解决。先配置好JDK https://www.cnblogs.com/bongxin/p/6103850.html配置完成后点击图片黄色条纹后的按钮,点击OK,等待几秒钟就可以了... -
python中执行该文件,就调用 mian 方法
2018-12-13 11:41:00代码: test.py import student def ...= student.student(1001, ...): #表示在命令行中输入 python test.py 时就会执行 main()...注意,main()方法并没有特殊含义,只是因为在 C,Java中程序的入口一般为 main()而已 -
关于#java#的问题:这些只能当mian方法调用是才会获取到正确的项目路径,当非main法调用时获取的是eeclipse...
2021-11-26 09:38:26Java中怎样获取项目路径,从网上找了几种比如: File f = new File(this.getClass().getResource("/").... 这些只能当mian方法调用是才会获取到正确的项目路径,当非main法调用时获取的是eclipse的安装路径,求指教 -
mian()方法;代码块
2018-08-04 18:42:05mian()方法 public static void main(String[] args){ //方法体 } //1.main()是一个方法,是主方法,为程序的入口 //2.权限修饰符:public protected 缺省 private ---面向对象的封装性 //3.对于方法来讲:... -
rocketmq的消费者在生产环境是怎么监听消息并执行的的,官网的demo都是通过mian方法来调用
2021-01-06 09:57:16rocketmq的消费者在生产环境是怎么监听到消息的,官网的demo都是通过mian方法来调用,实际环境中肯定不能用main方法调用, 我写的demo是自己手动调用接口执行消费者代码,那如果不去手动调用,消费者的代码如何自动... -
eclipse 主类中明明有main方法且没有写成mian,还老是提示找不到main方法。
2021-11-09 16:49:24想了半天也不明白是为什么,但其实很简单,因为我创建类的时候没有附带一个main方法,然后写完代码以后没有保存就编译,所以自然找不到主方法,因为IDEA默认是自动保存的,所以每次写完就编译,也不用手动保存,才... -
gradle踩坑 能正常启动,但是不能用mian方法
2019-12-12 15:01:31下午2:55:38: Executing task ‘Test1.main()’… FAILURE: Build failed with an exception. Where: Initialization script ‘/private/var/folders/2w/tt1p_4td3yq9xlbl7c2t4jn00000gn/T/Test1_main__.gradle’ ... -
java中mian方法的参数问题
2015-12-02 10:46:10main( String[ ]args)和main(String args[ ]) 有和区别 java中mian方法的参数问题 -
写一个类,在该类的三个方法中抛出三种不同的异常 然后在mian方法中调用这个类的不同方法,尝试用try ...
2020-06-23 23:02:01然后在mian方法中调用这个类的不同方法,尝试用try catch捕获你写的异常。 public class Work { public static void main(String[] args) throws ExceptionType01, ExceptionType02 { TestException test = new ... -
创建服务执行exe 文件时向exe程序mian方法传参
2018-04-26 17:21:14sc create ZSDSSrv binpath= "%~dp0ZSDSSrv.exe serviced" type= own start= auto displayname= ZSDSSrv serviced 作为参数传递给min方法的args -
mian()方法详细分析(面向对象的体现)
2021-05-11 08:59:37public static void main(String[] args){//方法体} public:权限修饰符 另外三个权限修饰符为:private 缺省 protected ---->体现了面向对象中的封装性 static:修饰符,可以用来修饰方法,另外还有final \... -
Linux上执行带main方法的java文件
2016-04-13 13:58:34linux下执行java项目 main方法 打成的jar包,java -jar TestDemo.jar。具体过程请查看文档。 -
我向debug方法体,可以光提示我找不到mian方法
2016-09-14 11:16:36[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif][/img]请问,我该如何做,我不需要mian,我向调试方法体里的参数 -
Java300StudyNote(3)-Java动态编译(DynamicCompile)、动态运行、反射调用mian方法、JavaCompiler.run()空...
2017-09-19 12:19:25Java动态编译与动态运行,如何通过反射调用main方法,JavaComile.run()空指针异常处理,字符串代码动态编译 -
关于Spring注解@Async引发其他注解失效的解决
2020-08-27 19:21:06主要介绍了关于Spring注解@Async引发其他注解失效的解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧