1. Java中如何实现多线程?
Java中实现多线程有两种方法:继承Thread类和实现Runnable接口。前者是使用的Thread类,而后者则是实现了Runnable接口的类对象。继承Thread类的方式中,线程的代码逻辑和线程本身是紧密结合在一起的。而实现Runnable接口的方式,线程可以独立于自身的代码逻辑。因此,当需要同时继承其他类时,建议使用实现Runnable接口的方法。
// 继承Thread类 class MyThread extends Thread { public void run() { // 线程逻辑 System.out.println(\"Thread running...\"); } } MyThread myThread = new MyThread(); myThread.start(); // 实现Runnable接口 class MyRunnable implements Runnable { public void run() { // 线程逻辑 System.out.println(\"Runnable running...\"); } } MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); thread.start();
2. 如何在Java中实现序列化和反序列化?
Java中序列化和反序列化主要是通过实现java.io.Serializable接口。序列化可以把一个对象的状态信息转化为字节序列,从而方便对对象进行存储或者网络传输。反序列化则是将序列化后的字节序列重新转化为一个对象。
// 序列化方法 public static void serialize(Object obj, String fileName) throws IOException { FileOutputStream output = new FileOutputStream(fileName); ObjectOutputStream objOut = new ObjectOutputStream(output); objOut.writeObject(obj); objOut.flush(); objOut.close(); } // 反序列化方法 public static Object deserialize(String fileName) throws IOException, ClassNotFoundException { FileInputStream input = new FileInputStream(fileName); ObjectInputStream objInput = new ObjectInputStream(input); Object obj = objInput.readObject(); objInput.close(); return obj; }
3. 如何使用Java集合类来进行数据操作?
Java中有多种集合类,包括List、Set和Map等。集合类可以用来操作数据,例如添加、删除、查找等操作。List类是一种有序集合,可以通过下标访问元素;Set类是一种无序集合,不允许重复元素;Map类是一种具有映射关系的键值对集合。
// List Listlist = new ArrayList<>(); list.add(\"A\"); list.add(\"B\"); list.add(\"C\"); System.out.println(list.get(1)); // \"B\" list.remove(\"B\"); System.out.println(list.size()); // 2 // Set Set set = new HashSet<>(); set.add(\"A\"); set.add(\"B\"); set.add(\"C\"); set.add(\"A\"); System.out.println(set.size()); // 3 System.out.println(set.contains(\"D\")); // false // Map Map map = new HashMap<>(); map.put(\"A\", 1); map.put(\"B\", 2); map.put(\"C\", 3); System.out.println(map.get(\"B\")); // 2 System.out.println(map.containsKey(\"D\")); // false