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 六.补充和总结



