21xrx.com
2025-07-16 16:46:02 Wednesday
登录
文章检索 我的文章 写文章
Java工程师面试常见题目及代码案例
2023-06-15 18:17:42 深夜i     18     0
Java 工程师 面试

在Java工程师面试中,我们经常会被问到一些常见的题目。本文将为大家梳理一下这些常见的题目,并附上对应的代码案例。

题目一:什么是Java语言的特点?请列举至少3个。

答案:Java语言的特点有如下几个:面向对象、平台无关性、自动垃圾回收机制等。下面是对应的Java代码案例:

/**
* 以下代码展示了Java语言中的面向对象特性:封装、继承、多态
*/
//封装示例
public class Person {
  private String name;
  private int age;
  public Person(String name, int age)
    this.name = name;
    this.age = age;
  
  public void setName(String name)
    this.name = name;
  
  public void setAge(int age)
    this.age = age;
  
  public String getName()
    return name;
  
  public int getAge()
    return age;
  
}
//继承示例
public class Student extends Person {
  private String major;
  public Student(String name, int age, String major) {
    super(name, age);
    this.major = major;
  }
  public void setMajor(String major)
    this.major = major;
  
  public String getMajor()
    return major;
  
}
//多态示例
public class Animal {
  public void eat() {
    System.out.println("动物在吃东西");
  }
}
public class Dog extends Animal {
  public void eat() {
    System.out.println("狗在吃骨头");
  }
}
public class Cat extends Animal {
  public void eat() {
    System.out.println("猫在吃鱼");
  }
}
public class Polymorphism {
  public static void main(String[] args) {
    Animal animal = new Animal();
    Dog dog = new Dog();
    Cat cat = new Cat();
    animal.eat();
    dog.eat();
    cat.eat();
  }
}

题目二:Java中的抽象类和接口有什么区别?请给出示例。

答案:抽象类和接口是Java中的两种常见的抽象类型,前者用于模拟一些抽象的概念,后者则用于实现类的规范。二者的主要区别在于:抽象类可以有构造方法、成员变量和普通方法,而接口则只能有常量和抽象方法。下面是对应的Java代码案例:

/**
* 以下代码展示了Java中的抽象类和接口的区别
*/
//抽象类示例
public abstract class Animal {
  private String name;
  public Animal(String name)
    this.name = name;
  
  public abstract void eat();
}
public class Dog extends Animal {
  public Dog(String name) {
    super(name);
  }
  public void eat() {
    System.out.println(getName() + "正在吃骨头");
  }
}
//接口示例
interface Flyable {
  void fly();
}
public class Bird implements Flyable {
  public void fly() {
    System.out.println("鸟在飞");
  }
}
public class Plane implements Flyable {
  public void fly() {
    System.out.println("飞机在飞");
  }
}

题目三:Java中的线程有哪些状态?请简要说明。

答案:Java中的线程有6种状态,分别为:新建状态、就绪状态、运行状态、阻塞状态、等待状态和终止状态。下面是对应的Java代码案例:

/**
* 以下代码展示了Java中的线程状态
*/
public class ThreadDemo {
  public static void main(String[] args) throws InterruptedException {
    Thread t = new Thread(() -> {
      System.out.println("线程开始执行");
      try {
        Thread.sleep(3000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      System.out.println("线程执行完成");
    });
    System.out.println("线程状态:" + t.getState());
    t.start();
    System.out.println("线程状态:" + t.getState());
    Thread.sleep(1000);
    System.out.println("线程状态:" + t.getState());
    Thread.sleep(2000);
    System.out.println("线程状态:" + t.getState());
  }
}

  
  

评论区