21xrx.com
2024-09-17 03:34:15 Tuesday
登录
文章检索 我的文章 写文章
Java面试:常见问题解析与实例详解
2023-06-15 10:41:07 深夜i     --     --
Java面试 常见问题 代码案例

在面试中,面试官常会向面试者提出一些常见的Java问题,下面将会详细解析这些问题及提供相应的实例代码。

1. Java中的常用集合类型有哪些?它们之间有什么区别?

Java中常用的集合类型有List、Set、Map等。它们之间的区别主要在于其元素的存储方式、是否允许重复元素以及是否允许空值等。

List是一个有序的集合,允许存储重复元素,如ArrayList和LinkedList。

Set是一个不允许存储重复元素的集合,如HashSet和TreeSet。

Map是一种映射关系,存储键值对,不允许相同的键存在,如HashMap和TreeMap。

下面是相应的代码实例:

List list = new ArrayList<>();

list.add("apple");

list.add("banana");

list.add("apple");

System.out.println(list); // [apple, banana, apple]

Set set = new HashSet<>();

set.add("apple");

set.add("banana");

set.add("apple");

System.out.println(set); // [banana, apple]

Map map = new HashMap<>();

map.put(1, "apple");

map.put(2, "banana");

map.put(1, "orange");

System.out.println(map); // 1=orange

2. 什么是Java中的注解?它有什么作用?

Java中的注解是一种为代码添加元数据的方式,它可以用于编译时的检查、运行时的处理以及代码的生成等。我们可以使用注解来标记方法、类、变量等,以达到一些特定的目的。

下面是一个自定义注解的示例代码:

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.METHOD)

public @interface Test {

  String value() default "";

}

public class AnnotationDemo {

  @Test(value = "foo")

  public void bar()

    // some code

}

3. Java中的线程池是什么?如何使用它?

Java中的线程池是一种重用线程的机制,可以避免反复创建和销毁线程的开销,提升程序的性能。在Java中,可以通过ThreadPoolExecutor类来创建线程池,并通过submit()方法向线程池中提交任务。

下面是一个简单的线程池示例代码:

public class ThreadPoolDemo {

  public static void main(String[] args) {

    int corePoolSize = 5;

    int maxPoolSize = 10;

    int queueCapacity = 100;

    ExecutorService executor = new ThreadPoolExecutor(corePoolSize, maxPoolSize,

        0L, TimeUnit.MILLISECONDS,

        new LinkedBlockingQueue (queueCapacity));

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

      executor.submit(new MyTask(i));

    }

    executor.shutdown();

  }

}

class MyTask implements Runnable {

  private int taskId;

  public MyTask(int taskId)

    this.taskId = taskId;

  @Override

  public void run() {

    System.out.println("Task " + taskId + " is running");

  }

}

三个

  
  

评论区

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