21xrx.com
2024-11-08 23:23:05 Friday
登录
文章检索 我的文章 写文章
Java面试常见问题及解决方案
2023-06-16 10:00:28 深夜i     --     --
封装 继承 多态

在Java开发者的职业生涯中,面试是必经之路。面试中常常会涉及到一些常见问题,这些问题需要Java开发者掌握才能顺利通过面试。下面我们来看看Java面试中常见的问题及解决方案。

1. 面向对象的三个基本特征是什么?

答:封装、继承、多态。

代码案例:


// 封装

public class User {

  private String name;

  private int age;

  public String getName()

    return name;

  

  public void setName(String name)

    this.name = name;

  

  public int getAge()

    return age;

  

  public void setAge(int age)

    this.age = age;

  

}

// 继承

public class Animal {

  protected String name;

  public Animal(String name)

    this.name = name;

  

  

  public void eat() {

    System.out.println(name + "正在吃东西...");

  }

}

public class Dog extends Animal {

  public Dog(String name) {

    super(name);

  }

  

  public void bark() {

    System.out.println(name + "正在叫...");

  }

}

// 多态

public class Shape {

  public void draw() {

    System.out.println("画图形");

  }

}

public class Rectangle extends Shape {

  public void draw() {

    System.out.println("画矩形");

  }

}

public class Circle extends Shape {

  public void draw() {

    System.out.println("画圆形");

  }

}

public class Main {

  public static void main(String[] args) {

    Shape s1 = new Circle();

    Shape s2 = new Rectangle();

    s1.draw();

    s2.draw();

  }

}

2. 接口和抽象类有什么区别?

答:接口中所有的方法都是抽象的,而抽象类中可以有非抽象的方法。

代码案例:


// 接口

public interface MyInterface {

  void abstractMethod();

}

// 抽象类

public abstract class MyAbstractClass {

  public void nonAbstractMethod() {

    System.out.println("这是一个非抽象方法");

  }

  public abstract void abstractMethod();

}

// 实现接口

public class MyClass implements MyInterface {

  @Override

  public void abstractMethod() {

    System.out.println("实现了接口中的抽象方法");

  }

}

// 继承抽象类

public class MySubClass extends MyAbstractClass {

  @Override

  public void abstractMethod() {

    System.out.println("继承抽象类,并实现了其中的抽象方法");

  }

}

关键词:接口、抽象类、实现、继承

3. 什么是多线程?

答:多线程就是在同一程序中,同时执行多个线程完成不同的任务。

代码案例:


public class MyThread extends Thread {

  public void run() {

    for (int i = 0; i < 10; i++) {

      System.out.println(Thread.currentThread().getName() + "运行,i = " + i);

    }

  }

}

public class Main {

  public static void main(String[] args) {

    MyThread t1 = new MyThread();

    MyThread t2 = new MyThread();

    t1.start();

    t2.start();

  }

}

关键词:线程、执行、任务

以上就是Java面试中常见问题及解决方案,希望能够帮助到Java开发者。

  
  

评论区

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