自学内容网 自学内容网

Java面试题大全(全网最全,持续更新)初级(2)

1. 基础语法

1.1. Java 的数据类型有哪些?

Java 有两种数据类型:

  • 基本数据类型(Primitive Types):包括 byteshortintlongfloatdoublecharboolean
  • 引用数据类型(Reference Types):包括类、接口、数组等。

1.2. final 关键字有什么作用?

final 关键字可以用来修饰类、方法和变量:

  • :不能被继承。
  • 方法:不能被子类重写。
  • 变量:值不能被修改(常量)。

1.3. 解释 Java 中的异常处理机制。

Java 提供了一种基于 try-catch-finally 的异常处理机制:

  • try 块:放置可能抛出异常的代码。
  • catch 块:捕获并处理异常。
  • finally 块:始终执行,无论是否有异常,通常用于资源释放。
try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("ArithmeticException caught");
} finally {
    System.out.println("This block is always executed");
}

2. 面向对象编程

2.1. 什么是构造函数?构造函数有什么特点?

构造函数是用于初始化对象的特殊方法。特点:

  • 与类名相同,没有返回类型。
  • 当创建对象时自动调用。
  • 可以通过重载实现多个构造函数。

2.2. 什么是方法重载和方法重写?

  • 重载(Overloading):同一类中方法名相同,但参数类型或数量不同。
  • 重写(Overriding):子类重新定义父类的非 final 方法,方法签名相同。

2.3. 解释继承和多态。

  • 继承:一个类继承另一个类,可以复用父类的属性和方法。
  • 多态:对象在不同情况下表现出不同的行为,通常通过继承和方法重写实现。

3. 集合框架

3.1. Java 集合框架中 ArrayListLinkedList 有什么区别?

  • ArrayList:基于数组实现,随机访问性能较好,但插入和删除时需要移动元素,性能较差。
  • LinkedList:基于链表实现,插入和删除操作快,但随机访问较慢。

3.2. HashSet 是如何实现去重的?

HashSet 通过哈希表(HashMap)实现,元素不能重复。每次插入元素时,它会计算哈希值并检查是否已经存在相同的哈希值。


4. 多线程基础

4.1. 如何在 Java 中创建线程?

可以通过三种方式创建线程:

  1. 继承 Thread 类,重写 run 方法。
  2. 实现 Runnable 接口,重写 run 方法。
  3. 使用 ExecutorService 创建线程池。
class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }
}

new MyThread().start();

4.2. 什么是线程的生命周期?

线程有五种状态:

  1. 新建(New):创建但尚未启动。
  2. 就绪(Runnable):等待 CPU 调度。
  3. 运行(Running):CPU 正在执行线程。
  4. 阻塞(Blocked):等待资源。
  5. 终止(Terminated):线程执行完毕。

 想要更大提升,点击使用小奈AI,免费创造无限可能


原文地址:https://blog.csdn.net/m0_55472195/article/details/142450052

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!