21xrx.com
2024-11-22 10:12:17 Friday
登录
文章检索 我的文章 写文章
Java面试必背——常见代码案例解析
2023-06-15 20:50:00 深夜i     --     --
Java面试 代码案例 单例模式 字符串反转 有序数组合并

在Java面试中,常常会被问到一些Java基础知识的代码案例问题,比如如何实现单例模式、如何反转一个字符串、如何合并两个有序数组等等。这些问题看似简单,但是却是面试官考察面试者基础知识、解决问题能力的重要手段。下面我们以常见代码案例为例,帮助大家掌握Java面试中必背的知识点。

1. 实现单例模式

单例模式指的是一个类只能创建一个实例,该实例在全局范围内都可以被访问。在Java中,实现单例模式有多种方式,其中比较常见的方式是饿汉式单例和懒汉式单例。下面是两种实现方式的代码:

饿汉式单例:

public class Singleton {

  private static Singleton instance = new Singleton();

  private Singleton(){}

  public static Singleton getInstance()

    return instance;

}

懒汉式单例:

public class Singleton {

  private static Singleton instance = null;

  private Singleton(){}

  public static synchronized Singleton getInstance(){

    if(instance == null){

      instance = new Singleton();

    }

    return instance;

  }

}

2. 反转一个字符串

反转一个字符串,在Java中可以使用StringBuilder或StringBuffer类的reverse()方法来实现。下面是使用StringBuilder实现反转字符串的代码:

public class ReverseString {

  public static void main(String[] args) {

    String str = "hello world";

    StringBuilder sb = new StringBuilder(str);

    sb.reverse();

    System.out.println(sb.toString());

  }

}

3. 合并两个有序数组

合并两个有序数组,在Java中可以使用归并排序的思想来实现。具体实现方式是创建一个新的数组,将两个数组中的元素依次比较,将较小的元素添加到新数组中,直到遍历完两个数组。下面是合并两个有序数组的代码:

public class MergeTwoArrays {

  public static void main(String[] args) {

    int[] nums1 = 0;

    int[] nums2 = 2;

    int m = 3, n = 3;

    int i = m - 1, j = n - 1, k = m + n - 1;

    while(i >= 0 && j >= 0){

      if(nums1[i] > nums2[j]){

        nums1[k--] = nums1[i--];

      }else{

        nums1[k--] = nums2[j--];

      }

    }

    while(j >= 0){

      nums1[k--] = nums2[j--];

    }

    System.out.println(Arrays.toString(nums1));

  }

}

  
  

评论区

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