#面试问题记录#
记一下最近面试被问到的几个典型问题,感觉现在的面试官越来越喜欢结合项目挖细节了。首先是关于Java基础,被问到HashMap在1.7和1.8扩容时的死循环问题,还有线程池核心参数的具体配置策略,特别是IO密集型任务该怎么配。框架方面,Spring Bean的生命周期和循环依赖的解决方式基本是必考题。数据库这块,MySQL的索引优化聊得很深,还让手写了一个SQL查销量前三的类目。最关键的是项目实战,面试官盯着我最近半年的实习经历,问如果Redis缓存穿透了怎么解决,以及线上Full GC频繁怎么排查,非得让我复述当时排查日志和分析dump文件的具体过程,看来光背八股文是真不行,实战经验才是硬通货。
全部评论

相关推荐

import java.util.*;public class Main {static Scanner in=new Scanner(System.in);public static void main(String[] args) {int n,m;n=in.nextInt();m=in.nextInt();int []inDegree=new int[n+1];List<List<Integer>> umap=new ArrayList<>();for (int i = 0; i < n; i++) {umap.add(new ArrayList<>());}for (int i = 0; i < m; i++) {int s,t;s=in.nextInt();t=in.nextInt();//记录s指向的节点有哪些,然后让t入度自增umap.get(s).add(t);inDegree[t]++;}//把入度为0的点都加入队列Deque<Integer> queue=new ArrayDeque<>();for (int i = 0; i < n; i++) {if (inDegree[i]==0){queue.offer(i);}}List<Integer>result=new ArrayList<>();//遍历队列while (!queue.isEmpty()){//加入结果int cur=queue.poll();result.add(cur);//获取当前节点指向的节点,并把指向节点的入度减一,如果入度为0加入队列for (Integer i : umap.get(cur)) {inDegree[i]--;if (inDegree[i]==0){queue.offer(i);}}}//如果有节点没有加入,说明成环无答案if (result.size()!=n){System.out.println(-1);return;}System.out.print(result.get(0));for (int i = 1; i <result.size() ; i++) {System.out.print(" "+result.get(i));}}}
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务