基础语法

基础语法是 Java 面试中常考的一部分,主要考察对 Java 语法的熟悉程度。

1. 数据类型
Java 中的数据类型分为基本数据类型和引用数据类型。基本数据类型包括整型、浮点型、字符型和布尔型。
示例代码:


int num = 10;
double d = 3.14;
char c = 'a';
boolean flag = true;
Java

2. 类和对象
Java 是面向对象的编程语言,面试中常会涉及类和对象的相关问题。类是对象的模板,对象是类的实例。
示例代码:


class Person {
    String name;
    int age;
    
    void sayHello() {
        System.out.println("Hello, my name is " + name);
    }
}

Person p = new Person();
p.name = "Alice";
p.age = 20;
p.sayHello();
Java

3. 控制语句
控制语句用于控制程序的流程,包括条件语句和循环语句。
示例代码:


int num = 5;
if (num > 0) {
    System.out.println("num is positive");
} else if (num < 0) {
    System.out.println("num is negative");
} else {
    System.out.println("num is zero");
}

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

while (num > 0) {
    System.out.println(num);
    num--;
}
Java

面向对象

面向对象是 Java 的核心思想,面试中经常会涉及与面向对象相关的问题。

1. 继承和多态
继承是指一个类可以继承另一个类的属性和方法,多态是指同一个方法可以在不同的对象上产生不同的行为。
示例代码:


class Animal {
    void move() {
        System.out.println("Animal can move");
    }
}

class Dog extends Animal {
    void move() {
        System.out.println("Dog can walk and run");
    }
}

Animal animal1 = new Animal();
Animal animal2 = new Dog();
animal1.move();
animal2.move();
Java

2. 封装和访问控制
封装是指将数据和方法封装在类中,通过访问控制来限制对类的访问。
示例代码:


class Person {
    private String name;
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
}

Person p = new Person();
p.setName("Alice");
System.out.println(p.getName());
Java

3. 接口和抽象类
接口是一种规范,定义了一组方法的签名,由实现类来实现具体的功能。抽象类是用于被继承的类,可以包含抽象方法。
示例代码:


interface Animal {
    void move();
}

class Dog implements Animal {
    public void move() {
        System.out.println("Dog can walk and run");
    }
}

Animal animal = new Dog();
animal.move();
Java

常见问题

在 Java 面试中,常常会涉及一些常见的问题。

1. String 和 StringBuilder 的区别
String 是不可变的,每次修改都会返回一个新的字符串对象,效率较低。StringBuilder 是可变的,不会产生新的对象,效率较高。
示例代码:


String s = "Hello";
s = s + " World";

StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World");
String result = sb.toString();
Java

2. 异常处理
Java 中的异常可以通过 try-catch 语句来处理,并可以定义自定义的异常类来处理特定的异常情况。
示例代码:


try {
    // 可能会抛出异常的代码
} catch (Exception e) {
    // 异常处理逻辑
} finally {
    // 不管是否发生异常,都会执行的代码
}
Java

3. 线程和线程同步
Java 中的线程可以通过继承 Thread 类或实现 Runnable 接口创建。线程同步可以通过 synchronized 关键字或 Lock 对象来实现。
示例代码:


class MyThread extends Thread {
    public void run() {
        // 线程执行的代码
    }
}

Runnable myRunnable = new Runnable() {
    public void run() {
        // 线程执行的代码
    }
};

Thread thread1 = new MyThread();
Thread thread2 = new Thread(myRunnable);
thread1.start();
thread2.start();
Java