21xrx.com
2024-12-23 01:10:28 Monday
登录
文章检索 我的文章 写文章
Java面试题汇总(一): 常见的Java基础面试题
2023-06-15 18:37:23 深夜i     --     --
Java面试题 Java基础知识 toString方法 注解 接口和抽象类

在Java开发面试中,基础知识的考察是必不可少的环节。下面将为大家汇总一些常见的Java基础面试题及其解答,希望能够帮助大家顺利通过Java面试。

1. 什么是Java中的toString方法?为什么要重写该方法?

- toString方法是Object类中的方法,其作用是返回该对象的字符串表示。

- 为了方便输出对象信息,一般需要重写该方法,让其返回对象更有意义的字符串表示形式。例如,重写了toString方法后,我们可以像System.out.println(object)这样输出对象,不需要手动调用对象的各个属性。

代码示例:

public class Student {

  private String name;

  private int age;

  public Student(String name, int age)

    this.name = name;

    this.age = age;

  @Override

  public String toString() {

    return "Student{" +

        "name='" + name + '\'' +

        ", age=" + age +

        '}';

  }

}

2. 请简要说明Java中的注解是什么?有哪些使用场景?

- 注解是一种特殊的Java接口,它可以为Java程序添加元数据(metadata),也可以在运行时动态地获取该信息。

- 注解的使用场景多种多样,包括但不限于以下几种:

 2.1 指定Java文件的编译方式:例如@Deprecated注解,用于标记某个方法或类已经过时;

 2.2 在编译时生成Java代码:例如Lombok框架中的@Data注解,可以自动为Java类生成getter、setter等方法;

 2.3 在运行时动态获取Java对象的信息:例如Spring框架的@Service注解,用于将某个Java类标记为服务类,让Spring可以自动扫描并注册该类的实例。

代码示例:

@Deprecated

public class Person

  // 省略属性和方法

@Data

public class User

  private String name;

  private int age;

@Service

public class UserService

  // 省略方法

3. 请简要说明Java中的接口和抽象类有何区别?

- 接口和抽象类都是Java中的抽象概念,其主要作用是为了规范和封装某一类的业务逻辑;

- 接口和抽象类之间的主要区别在于:

 3.1 接口中只能定义抽象方法或常量,不允许定义实例属性或实例方法;而抽象类可以定义实例属性和方法,并可以包含抽象方法或非抽象方法;

 3.2 接口中的所有方法默认为public abstract类型,不需要显示声明;而抽象类中的抽象方法必须使用abstract关键字修饰;

 3.3 子类只能继承一个类(包括抽象类),但可以实现多个接口;

 3.4 接口中的所有方法都是抽象的,没有方法体;而抽象类中的抽象方法可以包含方法体,也可以没有;

代码示例:

public interface Animal {

  void eat();

}

public abstract class BaseAnimal {

  public abstract void move();

  public void breathe() { // 非抽象方法

    System.out.println("I can breathe.");

  }

}

public class Cat extends BaseAnimal implements Animal {

  @Override

  public void eat() {

    System.out.println("Cat is eating.");

  }

  @Override

  public void move() {

    System.out.println("Cat is moving.");

  }

}

  
  

评论区

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