Java测试题 2018年
QUESTION 1
(a)
33.7
-2.7
Tes#23
32#s+eT
(b1)找到最大数
public static void main(String[] args) {
double[] nums = {3, 2, 3, 4, 5, 3, 3, 4, 2, 5, 5, 4, 3, 3, 4, 5};
double max = nums[0];
int maxI = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] > max) {
max = nums[i];
maxI = i;
}
}
System.out.println(max);
System.out.println(maxI);
}
(b2)创建线程
public class Test03 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
MyTask task = new MyTask(i);
task.setPriority(Thread.MAX_PRIORITY);
task.start();
}
}
}
class MyTask extends Thread{
private int id;
MyTask(int id) {
this.id = id;
}
}
c.EventLogger
可以用单例模式,
只保持一个EventLogger实例
每当需要log的时候,就使用这个实例进行记录
d.RMI的使用
public class Test04 {
public static void main(String[] args) throws RemoteException {
Registry registry = LocateRegistry.getRegistry("rmi://rmi.cs.cf.ac.uk/citymap");
CityMap cityMap = (CityMap) registry;
double d1 = cityMap.getDist("Cardiff", "Newport");
double d2 = cityMap.getDist("London", "Newport");
System.out.println(d1 + d2);
}
}
interface CityMap extends Remote {
public double getDist(String city1, String city2) throws RemoteException;
}
QUESTION 2
a1.简述 Java Collection Framework
A collections framework is a unified architecture for representing and manipulating collections.
The Collection Interface
The List Interface
a2. 包装类
A Wrapper class is a class whose object wraps or contains a primitive data types.
public static void main(String[] args) throws RemoteException {
ArrayList<Float> list = new ArrayList<>();
list.add(1.1f);
list.add(2.2f);
}
a3. 泛型 generics
Generics were designed to extend Java's type system to allow "a type or method to operate on objects of various types while providing compile-time type safety".
优点
1.Stronger type checks at compile time.
2.Elimination of casts.
3.Enabling programmers to implement generic algorithms.
b. 继承父类
interface Pet {
public String eat();
public String talk();
public String toString();
}
class Dog implements Pet{
@Override
public String eat() {
return "dog food";
}
@Override
public String talk() {
return "bark";
}
}
class Boxer extends Dog{
}
class Poodle extends Dog{
}
QUESTION 3
查找名字
public class Find {
public static void main(String[] args) {
if (args.length != 2) {
System.err.println("Two arguments expected!");
System.exit(1);
}
// TODO: Complete the program
String filename = args[0];
String keyword = args[1];
File file = new File(filename);
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
int count = 0;
boolean output = false;
while ((line = reader.readLine()) != null) {
count++;
if (line.toLowerCase().contains(keyword)) {
System.out.println("The line number: " + count);
output = true;
}
}
reader.close();
if (!output) {
System.out.println("Sorry, no matches exist.");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
QUESTION 4
TCP
public class CalcServer {
public static double currentValue = 0;
public static void main(String[] args) {
// TODO: Complete the code here
while (true) {
try {
ServerSocket socket = new ServerSocket(6000);
Socket clientSocket = socket.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String[] split = in.readLine().split(" ");
String operator = split[0];
String numberString = split[1];
double number = Double.parseDouble(numberString);
if (operator.equals("+")) {
currentValue += number;
} else if (operator.equals("-")) {
currentValue -= number;
} else if (operator.equals("*")) {
currentValue *= number;
} else if (operator.equals("/")) {
if (number == 0) {
out.println("Error");
break;
} else {
currentValue /= number;
}
}
out.println(currentValue);
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
}
}