面试题第三季(可见收藏的他人博客总结)

面试题第三季(可见收藏的他人博客总结),第1张

面试题第三季(可见收藏的他人博客总结) 一.前言:

1.JUC:

二.Java基础 1.58同城的Java字符串常量池 2.字节跳动两数求和

(1)解法一:

   public static void main(String[] args) {

        int[] nums = new int[]{2, 7, 11, 15};
        int target = 9;

        int[] myIndex = twoSum(nums,target);
        for (int element: myIndex) {
            System.out.println(element);
        }
    }


    @Test
    public static int[] twoSum(int[] arr, int target) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] + arr[j] == target) {
                    return new int[]{i, j};
                }
            }
        }
        return null;
    }

(2)解法二:

    public static void main(String[] args) {

        int[] nums = new int[]{2, 7, 11, 15};
        int target = 9;

        int[] myIndex = twoSum2(nums,target);
        for (int element: myIndex) {
            System.out.println(element);
        }
    }


    @Test
    public static int[] twoSum2(int[] arr, int target) {

        HashMap map = new HashMap<>();
        
        for (int i = 0; i < arr.length; i++) {
            
           int partnerNumber = target - arr[i];
           if (map.containsKey(partnerNumber)) {
               return new int[]{map.get(partnerNumber),i};
           }
           map.put(arr[i],i);
            
        }
        // map k值 v下标
        //     2   0
        
        return null;
    }

解释:

3.字节跳动手写LRU算法,见Redis最后

三.JUC 1.题目+说明

2.可重入锁

又名递归锁,即方法里面调方法

 

3.LockSupport

 

 

 

 

 对于:lock和unlock,syncorniezed,wait和notify,await和signal,park和unpark

park和unpark的用法:如果先unpark()再park()即先唤醒再等待也不会出现死锁的情况,二其他用法存在这种情况。

4.AbstractQueuedSynchronizer之AQS

(1)JUC底子就是AQS(前置知识:可重入锁,LockSupport)

 

 

四.Spring

五.Redis

六.补充和总结

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5693344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存