21xrx.com
2024-11-22 14:09:05 Friday
登录
文章检索 我的文章 写文章
「Java面试官必看」:面试中常用Java代码案例及技巧
2023-06-18 20:40:19 深夜i     --     --
Java面试 Java代码案例 技巧

在Java面试过程中,熟练掌握常用的Java代码案例和技巧是非常重要的。本文将为Java面试官介绍一些常见的Java代码案例和技巧,帮助面试官更好地面试求职者。

一、数据结构与算法

1. 快排代码实现

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

  if (left >= right) return;

  int i = left, j = right, pivot = arr[left];

  while(i < j) {

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

    if (i < j) arr[i++] = arr[j];

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

    if (i < j) arr[j--] = arr[i];

  }

  arr[i] = pivot;

  quickSort(arr, left, i - 1);

  quickSort(arr, i + 1, right);

}

2. 链表反转代码实现

public ListNode reverseList(ListNode head) {

  if (head == null || head.next == null) return head;

  ListNode p = reverseList(head.next);

  head.next.next = head;

  head.next = null;

  return p;

}

二、Java基础

1. 静态变量和实例变量的区别

静态变量属于类,实例变量属于对象。静态变量只存在一份,多个对象共享。实例变量在每个对象中都有一份。静态变量可以通过类名直接访问,实例变量需要先创建对象再访问。

2. 实现一个单例模式

public class Singleton {

  private static Singleton instance = null;

  private Singleton() {}

  public static Singleton getInstance() {

    if (instance == null) {

      synchronized(Singleton.class) {

        if (instance == null) {

          instance = new Singleton();

        }

      }

    }

    return instance;

  }

}

三、框架与工具

1. Spring中的AOP实现方式

Spring AOP通过动态代理实现,有两种方式:基于JDK的动态代理和基于CGLIB的动态代理。默认情况下,只有实现了接口的类才会使用JDK的动态代理,而没有实现接口的类则使用CGLIB的动态代理。

2. MyBatis中的Mapper动态代理实现方式

MyBatis中的Mapper动态代理是使用JDK的动态代理实现的,它可以把Mapper接口的定义和SQL语句的映射关系动态生成代理类,在接口调用方法时,实际上是代理类中对应的方法被调用。

  
  

评论区

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