先说一句:面试官上来强调本人不是学java的,次要探讨为主,可是我发现面试官问的问题一点都不像没学过java~
共面了1小时40分钟
1.java垃圾回收机制
新生代/老年代 其它垃圾回收机制
2.java面向对象个性
继承
封装
多态
3.设计模式
4.单例模式
5.map的底层实现
6.hash函数如何实现
7.哈希抵触的解决办法
再哈希
建设公共缓冲区
8.hashmap查问复杂度/升高复杂度办法
9.hashmap线程不平安
10.juc中的concurrentHashmap如何保障线程平安
11.罕用的汇合类型
arraylist
linkedlist
12.arrayList和linkedList区别
13.链表中如何使查问速度更快
建索引?
14.晓得哪些本地缓存?redis?lru?
15.计算机网络七层模型
16.浏览器每一个标签页都是一次tcp连贯吗
17.http和https的比拟
18.https加密算法是对称的还是非对称的?
19.TCP三次握手四次挥手
20.伪造第三次握手,如何保障?
21.syn攻打?还是什么攻打?
22.TIME_WAIT作用
23.多路复用、epoll办法的长处 存储连贯的是链表吗
select poll epoll
24.过程和线程
25.线程间通信
26.过程间通信
27.共享内存是在A过程中还是B过程?
应该都不是
28.线程间同步
29.sychronized和RetrantLock异同点
30.乐观锁和乐观锁,他们的效率
31.每次申请都是对锁的一个批改,两种策略效率如何
32.排序算法及各自的最好最坏复杂度及稳定性
33.归并排序和疾速排序的算法思维
分治
34.疾速排序的最坏状况,如何扭转
35.雷同的子问题能够用分治法,那不同的子问题?
36.最初一题算法题
牛客网本题探讨链接
小Q在进行一场竞技游戏,这场游戏的输赢要害就在于是否抢夺一条长度为L的河道,即能够看做是[0,L]的一条数轴。
这款竞技游戏当中有n个能够提供视线的道具--真视守卫,第i个真视守卫可能笼罩[xi,yi]。当初小Q想晓得至多用几个真视守卫就能够笼罩整段河道。
输出形容:
输出包含n+1行
第一行包含两个正整数n和L(1<=n<=10^5,1<=L<=10^9)
接下来的n行,每行两个正整数xi,yi(0<=xi<=yi<=10^9),示意第i个真视守卫笼罩的区间
输入形容,一个示意起码须要的真视守卫数量,如果无解,输入-1。
样例:
输出:
4 6
3 6
2 4
0 2
4 7
输入
3
import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int L = input.nextInt(); int[][] nums = new int[n][2]; int ce = 0; while (ce < n) { nums[ce][0] = input.nextInt(); nums[ce][1] = input.nextInt(); ce++; } System.out.println(guidenum(nums, L)); } public static int guidenum(int[][] nums, int L) { int count = 0; Arrays.sort(nums, (a, b) -> a[0] - b[0]); int start = 0, end = 0; for (int i = 0; start < L; ) { for (; i < nums.length && nums[i][0] <= start; i++) end = Math.max(end, nums[i][1]); if (start == end) { return -1; } start = end; count++; } return count; }}