1.题目分析
这是一篇关于10个经典的Java main方法面试题的攻略,主要包括以下内容:
- Java main方法的特点;
- 10个常见的Java main方法面试题;
- 每道题目的详细分析和解答;
- 示例说明。
2.Java main方法的特点
Java main方法是一个程序的入口点,是程序运行的起点。它的定义格式如下:
public static void main(String[] args) {}
Java main方法有以下几个特点:
- 必须是public、static、void类型;
- 方法名必须是main;
- 方法的参数必须是一个String数组,表示命令行参数。
3.10个常见的Java main方法面试题
下面列举了10个常见的Java main方法面试题:
-
写一个main方法并打印字符串"Hello world!"。
-
写一个main方法并打印出命令行参数。
-
写一个main方法并打印从命令行参数中接收到的数字的和。
-
写一个main方法并接收一个文件名作为命令行参数,然后打印出该文件的内容。
-
写一个main方法并接收三个整数作为命令行参数,然后打印它们的最小值、最大值和平均值。
-
写一个main方法并接收一个字符串作为命令行参数,判断该字符串是否是回文串。
-
写一个main方法并接收一个整数作为命令行参数,然后打印出该整数的二进制、八进制和十六进制表示。
-
写一个main方法并接收一个字符串和一个整数作为命令行参数,然后打印出该字符串的前n个字符。
-
写一个main方法并接收一个字符串作为命令行参数,然后将其中的所有单词反转并打印出来。
-
写一个main方法并接收两个数字作为命令行参数,然后计算出它们的最大公因数。
4.每道题目的详细分析和解答
1.题目要求:写一个main方法并打印字符串"Hello world!"。
代码如下:
public static void main(String[] args) {
System.out.println("Hello world!");
}
解答:这道题目其实并不难,只需要调用println方法即可输出"Hello world!"字符串。
示例说明:
假设执行该程序的命令是java MainApp,则输出如下:
Hello world!
2.题目要求:写一个main方法并打印出命令行参数。
代码如下:
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
解答:这道题目要求读取从命令行传入的所有参数,并将它们逐个打印出来。这里使用了Java 5引入的增强的for循环。
示例说明:
假设执行该程序的命令是java MainApp apple orange banana,则输出如下:
apple
orange
banana
3.题目要求:写一个main方法并打印从命令行参数中接收到的数字的和。
代码如下:
public static void main(String[] args) {
int sum = 0;
for (String arg : args) {
sum += Integer.parseInt(arg);
}
System.out.println(sum);
}
解答:这道题目要求读取从命令行传入的所有参数,并将它们解析成整数,然后累加求和。
示例说明:
假设执行该程序的命令是java MainApp 1 2 3,则输出如下:
6
4.题目要求:写一个main方法并接收一个文件名作为命令行参数,然后打印出该文件的内容。
代码如下:
public static void main(String[] args) throws IOException {
String fileName = args[0];
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
解答:这道题目要求读取从命令行传入的文件名,然后打开文件并输出文件内容。这里使用了Java的文件读写操作,将文件内容存放到缓冲区中,然后逐行读取并打印。
示例说明:
假设执行该程序的命令是java MainApp test.txt,则输出test.txt文件的内容。
5.题目要求:写一个main方法并接收三个整数作为命令行参数,然后打印它们的最小值、最大值和平均值。
代码如下:
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int min = Math.min(Math.min(a, b), c);
int max = Math.max(Math.max(a, b), c);
double avg = (a + b + c) / 3.0;
System.out.println("最小值:" + min);
System.out.println("最大值:" + max);
System.out.println("平均值:" + avg);
}
解答:这道题目要求读取从命令行传入的三个整数,并计算它们的最小值、最大值和平均值。
示例说明:
假设执行该程序的命令是java MainApp 1 2 3,则输出如下:
最小值:1
最大值:3
平均值:2.0
6.题目要求:写一个main方法并接收一个字符串作为命令行参数,判断该字符串是否是回文串。
代码如下:
public static void main(String[] args) {
String str = args[0];
boolean isPalindrome = true;
for (int i = 0; i < str.length() / 2; i++) {
if (str.charAt(i) != str.charAt(str.length() - i - 1)) {
isPalindrome = false;
break;
}
}
System.out.println(isPalindrome ? "是回文串" : "不是回文串");
}
解答:这道题目要求读取从命令行传入的字符串,并判断它是否是回文串。
示例说明:
假设执行该程序的命令是java MainApp "abccba",则输出如下:
是回文串
7.题目要求:写一个main方法并接收一个整数作为命令行参数,然后打印出该整数的二进制、八进制和十六进制表示。
代码如下:
public static void main(String[] args) {
int num = Integer.parseInt(args[0]);
System.out.println("二进制表示:" + Integer.toBinaryString(num));
System.out.println("八进制表示:" + Integer.toOctalString(num));
System.out.println("十六进制表示:" + Integer.toHexString(num));
}
解答:这道题目要求读取从命令行传入的整数,并输出它的各种进制形式。
示例说明:
假设执行该程序的命令是java MainApp 10,则输出如下:
二进制表示:1010
八进制表示:12
十六进制表示:a
8.题目要求:写一个main方法并接收一个字符串和一个整数作为命令行参数,然后打印出该字符串的前n个字符。
代码如下:
public static void main(String[] args) {
String str = args[0];
int n = Integer.parseInt(args[1]);
System.out.println(str.substring(0, n));
}
解答:这道题目要求读取从命令行传入的字符串和一个整数n,然后输出该字符串的前n个字符。
示例说明:
假设执行该程序的命令是java MainApp "Hello, world!" 5,则输出如下:
Hello
9.题目要求:写一个main方法并接收一个字符串作为命令行参数,然后将其中的所有单词反转并打印出来。
代码如下:
public static void main(String[] args) {
String str = args[0];
String[] words = str.split("\\s+");
for (int i = words.length - 1; i >= 0; i--) {
System.out.print(words[i] + " ");
}
}
解答:这道题目要求读取从命令行传入的字符串,并将其中的每个单词反转输出。
示例说明:
假设执行该程序的命令是java MainApp "Hello, world!",则输出如下:
world! Hello,
10.题目要求:写一个main方法并接收两个数字作为命令行参数,然后计算出它们的最大公因数。
代码如下:
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int gcd = getGcd(a, b);
System.out.println(gcd);
}
private static int getGcd(int a, int b) {
if (b == 0) {
return a;
} else {
return getGcd(b, a % b);
}
}
解答:这道题目要求读取从命令行传入的两个整数,并计算它们的最大公因数。这里使用了递归算法求解最大公因数。
示例说明:
假设执行该程序的命令是java MainApp 15 25,则输出如下:
5
5.总结
面试中经常会出现关于Java main方法的面试题目,虽然这些题目看似简单,但是有时候需要考虑到一些细节,如果在准备面试的过程中能够掌握这些问题,并且根据不同题目提供有力的解答,那么能够给面试官留下深刻的印象。同时,也能够对我们在日常开发中需要使用的main方法有更加深入的理解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:10个经典的Java main方法面试题 - Python技术站