目录
- 分析main方法
- 形参为String[] 那么实参到底是什么?
- 可变参数
- 实例
分析main方法
在Java中,main
方法是程序的入口点。当你运行一个Java程序时,JVM(Java虚拟机)会寻找一个名为main
的方法,并从这里开始执行。以下是对Java中main
方法的全面介绍:
-
定义:
public static void main(String[] args)
-
参数:
String[] args
: 这是一个字符串数组,它包含了从命令行传递给程序的参数。
-
返回类型:
void
:main
方法没有返回值。
-
访问修饰符:
public
: 这意味着任何其他类都可以访问它。static
: 这意味着你不需要创建类的实例就可以调用它。这也是为什么JVM可以调用它,因为JVM是静态链接的。
-
用途:
- 作为程序的入口点。当你运行一个Java程序时,JVM会查找并执行这个
main
方法。 - 用于测试和调试代码。
- 你可以从
main
方法中调用其他方法,从而组织你的代码。
- 作为程序的入口点。当你运行一个Java程序时,JVM会查找并执行这个
-
使用示例:
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}
当你运行这个程序时,它会输出“Hello, World!”到控制台。
7. 注意事项:
* 每个Java应用程序都必须有一个`main`方法。如果你尝试编译一个没有`main`方法的类,你会得到一个错误。
* `main`方法必须是`public`的,这样JVM可以访问它。但是,它也可以是`private`的或`protected`的,但这通常不推荐,因为这可能会限制其他类访问它。
* `main`方法必须是静态的,因为JVM启动程序时还没有创建任何对象实例。因此,不能调用非静态的方法或访问非静态的字段。
形参为String[] 那么实参到底是什么?
public class TestArray10{public static void main(String[] args){//从侧面验证://int[] arr1; //如果对数组只声明,没有后续操作,那么相当于 白定义了。//int[] arr2 = null; //System.out.println(arr2.length);//Exception in thread "main" java.lang.NullPointerException//int[] arr3 = new int[0];//System.out.println(arr3.length);//int[] arr4 = new int[4];//System.out.println(arr4.length);//System.out.println(args.length);//0//从这个结果证明,参数是String[],实参是 new String[0] //默认情况下,虚拟机在调用main方法的时候就是传入了一个长度为0的数组System.out.println(args.length);for(String str:args){System.out.println(str);}}
}
- 从这个结果证明,参数是String[],实参是 new String[0]
- 默认情况下,虚拟机在调用main方法的时候就是传入了一个长度为0的数组
可变参数
在Java中,可变参数(Variable Arguments)允许您在方法中定义一个参数列表,该列表可以接受任意数量的参数。使用可变参数可以方便地传递多个参数给方法,而不需要创建数组或使用其他集合类。
要声明一个可变参数,您需要在参数类型后面添加三个点(…)。例如,如果您想定义一个方法,该方法接受任意数量的整数作为参数,您可以这样声明:
public void myMethod(int... numbers) {// 方法体
}
现在,您可以在调用myMethod
方法时传递任意数量的整数参数:
myMethod(1);
myMethod(1, 2);
myMethod(1, 2, 3, 4);
在方法体内部,可变参数被视为数组。您可以使用常规的数组操作来访问和操作这些参数。例如,您可以使用for-each循环来遍历参数:
public void printNumbers(int... numbers) {for (int num : numbers) {System.out.println(num);}
}
除了整数之外,您还可以使用其他数据类型(如String
、Object
等)作为可变参数。需要注意的是,一个方法中只能有一个可变参数,并且它必须是方法签名的最后一个参数。
实例
public class Example {public static void main(String[] args) {printSum(1, 2, 3, 4);printSum(5, 6);printSum(7);}public static void printSum(int... numbers) {int sum = 0;for (int num : numbers) {sum += num;}System.out.println("Sum: " + sum);}
}
在这个例子中,我们定义了一个名为printSum
的方法,它接受一个可变参数numbers
,该参数可以接受任意数量的整数。在方法体内部,我们使用for-each循环来遍历参数,并将它们相加得到总和。然后,我们打印出总和。在main
方法中,我们调用printSum
方法并传递不同数量的参数来演示其用法。