21xrx.com
2024-11-25 12:10:19 Monday
登录
文章检索 我的文章 写文章
Java 面试必备问题:反射机制
2023-06-11 06:05:53 深夜i     --     --
Java 面试 反射机制

在这里,我想分享我经历过的一些 Java 面试问题,这些问题都是我曾经或者现在工作中真实遇到过的。我希望这些问题能对正在寻求工作的 Java 开发人员有所帮助。以下是我记得的一些 Java 面试问题:

1. 请解释 OOP 的核心概念。

2. 请介绍一下 Java 中的多线程编程,并给出一个例子。


public class MyThread implements Runnable {

 String name;

 public MyThread(String n)

  name = n;

 

 

 public void run() {

  for(int i = 0; i < 10; i++) {

   System.out.println(name + " count: " + i);

   try {

    Thread.sleep(100);

   } catch (InterruptedException e) {

    e.printStackTrace();

   }

  }

 }

}

public class Main {

 public static void main(String[] args) {

  MyThread obj1 = new MyThread("Thread 1 ");

  MyThread obj2 = new MyThread("Thread 2 ");

  Thread t1 = new Thread(obj1);

  Thread t2 = new Thread(obj2);

  t1.start();

  t2.start();

 }

}

3. 请解释 Java 中的反射机制,并给出一个例子。


public class MyClass {

 private int number;

 public String name;

 public MyClass(int number, String name)

  this.number = number;

  this.name = name;

 

 public void printDetails() {

  System.out.println("Number: " + number + " Name: " + name);

 }

}

public class Main {

 public static void main(String[] args) {

  try {

   Class clazz = Class.forName("MyClass");

   Constructor constructor = clazz.getConstructor(int.class, String.class);

   Object obj = constructor.newInstance(123, "John");

   Field field = clazz.getField("name");

   field.setAccessible(true);

   field.set(obj, "Peter");

   Method method = clazz.getMethod("printDetails");

   method.invoke(obj);

  } catch (Exception e) {

   e.printStackTrace();

  }

 }

}

以上就是我分享的 Java 面试问题。希望这些问题对您有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复