Java 面试基础:轻松掌握核心概念

125 阅读4分钟

Java 面试基础:轻松掌握核心概念

Java 作为一门广泛应用的编程语言,是很多开发者进入 IT 行业的敲门砖。在面试中,基础知识往往是面试官重点考察的内容。今天,我们就来轻松聊聊 Java 面试中的一些核心基础,帮你应对各种刁钻问题。

1. Java 的基本特性

Java 有哪些特点?这是 Java 面试的经典开场问题。最常见的回答如下:

  • 面向对象(OOP) :支持封装、继承、多态。
  • 平台无关性:通过 JVM 实现 "Write Once, Run Anywhere"(一次编写,到处运行)。
  • 自动内存管理:Java 依赖垃圾回收机制(GC)自动管理对象生命周期。
  • 多线程支持:内置强大的并发支持。
  • 安全性:运行在受控环境中,提供安全管理机制。

2. Java 内存管理

Java 内存是如何分配的?你需要了解 Java 内存的几个重要区域:

  • 堆(Heap) :存放对象实例,由 GC 负责回收。
  • 栈(Stack) :存放方法调用和局部变量,每个线程有自己的栈。
  • 方法区(Method Area) :存储类的元数据和常量池。
  • 堆外内存(Native Memory) :有些 NIO 操作会用到。

如果面试官进一步问 GC,你可以提到垃圾回收算法(标记-清除、复制、分代收集)GC 机制(Minor GC、Major GC、Full GC)

3. Java 中的关键字

以下这些 Java 关键字很可能会成为面试考点:

  • final:用来修饰变量(不可变)、方法(不可重写)、类(不可继承)。
  • static:修饰方法或变量,表示属于类而非实例。
  • volatile:保证变量的可见性,防止指令重排序。
  • synchronized:实现线程同步,防止并发问题。

4. 面向对象四大特性

Java 的 OOP 特性是面试中的必考点,你需要理解:

  • 封装(Encapsulation):通过 private 保护数据,并提供 getter/setter 访问。
  • 继承(Inheritance):子类继承父类,代码复用。
  • 多态(Polymorphism):子类重写父类方法,实现运行时多态。
  • 抽象(Abstraction):通过接口和抽象类隐藏实现细节。

面试官可能会让你举例说明,比如:

class Animal {
    void makeSound() {
        System.out.println("动物叫声");
    }
}
class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("汪汪汪");
    }
}

这就是**继承 + 方法重写(多态)**的经典例子。

5. Java 集合框架(Collections)

集合类是开发中经常用到的,面试官可能会问:

  • List 和 Set 的区别?
  • HashMap 的底层实现?
  • ConcurrentHashMap 为什么是线程安全的?

简单回答:

  • List:有序,可重复,如 ArrayList、LinkedList。
  • Set:无序,不可重复,如 HashSet、TreeSet。
  • HashMap:基于数组 + 链表 + 红黑树,利用 Hash 算法存储键值对。
  • ConcurrentHashMap:分段锁或 CAS 机制保证并发安全。

6. 多线程与并发

如果你面试高级开发岗位,多线程是重点。你可能会被问到:

  • 线程的创建方式?
  • synchronized 和 Lock 的区别?
  • 线程池的作用?

示例代码:

class MyThread extends Thread {
    public void run() {
        System.out.println("线程运行中...");
    }
}

public class Main {
    public static void main(String[] args) {
        Thread t = new MyThread();
        t.start();
    }
}

线程池的使用示例:

ExecutorService executor = Executors.newFixedThreadPool(5);
executor.execute(() -> System.out.println("执行任务"));
executor.shutdown();

7. Java 8 及之后的新特性

如果面试官问 Java 8+ 相关内容,你可以提到:

  • Lambda 表达式:简化匿名内部类的写法。
  • Stream API:简洁处理集合数据。
  • Optional:避免 NullPointerException。
  • 新时间 API(java.time):替代老旧的 Date 类。

示例代码:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream().filter(name -> name.startsWith("A")).forEach(System.out::println);

8. Spring 框架基础

如果你要面试的是 Java 后端岗位,Spring 相关问题必不可少,比如:

  • Spring 是什么?
  • Spring IoC 和 AOP 是什么?
  • Spring Boot 如何简化开发?

简单回答:

  • Spring:一个 Java 生态的企业级框架。
  • IoC(控制反转) :让 Spring 管理对象依赖。
  • AOP(面向切面编程) :用于日志、事务等切面操作。
  • Spring Boot:基于 Spring 框架,简化配置,适合微服务。

9. 数据库与 SQL

如果你的 Java 角色涉及数据库,SQL 也是必问项,比如:

  • SQL 基本操作(增删改查)
  • 索引的作用?
  • 事务的四大特性(ACID)?
  • MyBatis 和 Hibernate 的区别?

示例 SQL 语句:

SELECT * FROM users WHERE age > 18 ORDER BY name;

结语

Java 面试的内容很丰富,但掌握基础概念,结合实战经验,就能应对大部分问题。希望这篇文章能帮你轻松备战 Java 面试,祝你早日拿到心仪 Offer!