21xrx.com
2024-11-22 07:10:15 Friday
登录
文章检索 我的文章 写文章
Java工程师面试常见题目及代码案例
2023-06-15 18:17:42 深夜i     --     --
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());

  }

}

  
  

评论区

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