java面试上机题
时间: 2025-05-04 20:44:06 浏览: 12
### Java 编程语言面试上机练习题
以下是关于Java编程语言的一些常见面试上机练习题,涵盖了基础语法、字符串处理、集合框架以及多线程等内容:
#### 字符串比较
```java
public class Test {
public static void main(String[] args) {
String s1 = "HelloWorld";
String s2 = new String("HelloWorld");
if (s1 == s2) {
System.out.println("s1 == s2");
} else {
System.out.println("s1 != s2");
}
if (s1.equals(s2)) {
System.out.println("s1 equals s2");
} else {
System.out.println("s1 not equals s2");
}
}
}
```
上述代码的输出结果为 `s1 != s2` 和 `s1 equals s2`[^4]。
#### 数组操作
编写一个方法来反转整型数组中的元素顺序并返回新的数组。例如输入 `[1, 2, 3, 4]` 输出应为 `[4, 3, 2, 1]`。
```java
public int[] reverseArray(int[] array) {
int n = array.length;
int[] reversed = new int[n];
for (int i = 0; i < n; i++) {
reversed[i] = array[n - 1 - i];
}
return reversed;
}
```
#### 多线程实现
创建两个线程分别打印奇数和偶数,要求按照顺序依次打印出来,比如先打印1再打印2以此类推直到指定的最大数值为止。
```java
class OddEvenPrinter {
private boolean isOddTurn = true;
synchronized void printOdd(int number) throws InterruptedException {
while (!isOddTurn) wait();
System.out.print(number + " ");
isOddTurn = false;
notifyAll();
}
synchronized void printEven(int number) throws InterruptedException {
while (isOddTurn) wait();
System.out.print(number + " ");
isOddTurn = true;
notifyAll();
}
}
public class ThreadExample {
public static void main(String[] args) {
final OddEvenPrinter printer = new OddEvenPrinter();
Runnable oddTask = () -> {
try {
for (int i = 1; i <= 100; i += 2) {
printer.printOdd(i);
}
} catch (InterruptedException e) {}
};
Runnable evenTask = () -> {
try {
for (int i = 2; i <= 100; i += 2) {
printer.printEven(i);
}
} catch (InterruptedException e) {}
};
new Thread(oddTask).start();
new Thread(evenTask).start();
}
}
```
#### 集合框架应用
给定一组单词列表,请统计每个单词出现的次数并将结果存储到Map中。
```java
import java.util.*;
public class WordCount {
public Map<String, Integer> countWords(List<String> words) {
Map<String, Integer> wordCounts = new HashMap<>();
for (String word : words) {
wordCounts.put(word, wordCounts.getOrDefault(word, 0) + 1);
}
return wordCounts;
}
}
```
阅读全文
相关推荐

















