holyya.com
2025-09-04 16:36:47 Thursday
登录
文章检索 我的文章 写文章
Java面试常见题目及代码案例
2023-06-12 21:45:02 深夜i     --     --
Java面试 算法 数据结构

在Java开发领域中,随着Java语言的应用越来越广泛,Java面试也变得越来越火热。Java面试难度大部分在于算法和数据结构,同时也有一些常见问题需要注意。以下是一些Java面试常见题目及其代码案例。

1. 如何判断两个对象相等?

在Java中,判断两个对象是否相等,可以使用equals() 方法。但是需要重写equals()方法,因为默认的equals()方法是用来比较对象的引用,而不是对象的内容。重写equals()方法时,首先需要判断是否为同一个对象,然后根据对象的特征判断是否相等。

代码案例:


public class Person {

  private String name;

  private int age;

  

  // 构造方法

  

  // 重写equals()方法

  @Override

  public boolean equals(Object object) {

    if (this == object) return true;

    if (object == null || getClass() != object.getClass()) return false;

    Person person = (Person) object;

    return age == person.age && Objects.equals(name, person.name);

  }

  // 其他的方法

}

2. 如何实现字符串的反转?

实现字符串的反转,可以使用StringBuilder和StringBuffer。这两个类都是可变的字符串,提供了很多方便的方法。

代码案例:


public class ReverseString {

  public static String reverse(String str) {

    if (str == null) return null;

    return new StringBuilder(str).reverse().toString();

  }

}

3. 如何实现快速排序?

快速排序是一种常用的排序算法,它通过把数组分成两个部分来排序,一部分比另一部分小,然后递归处理这两部分。

代码案例:


public class QuickSort {

  public static void quickSort(int[] arr, int left, int right) {

    if (left >= right) return;

    

    // 选择枢纽元素

    int pivotIndex = partition(arr, left, right);

    

    // 递归处理左右两部分

    quickSort(arr, left, pivotIndex - 1);

    quickSort(arr, pivotIndex + 1, right);

  }

  

  private static int partition(int[] arr, int left, int right) {

    int pivot = arr[left];

    int i = left + 1;

    int j = right;

    

    while (i <= j) {

      while (i <= j && arr[i] <= pivot) i++;

      while (i <= j && arr[j] > pivot) j--;

      if (i < j) {

        swap(arr, i, j);

      }

    }

    swap(arr, left, j);

    return j;

  }

  private static void swap(int[] arr, int i, int j) {

    int temp = arr[i];

    arr[i] = arr[j];

    arr[j] = temp;

  }

}

  
  

评论区

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