1.HYSTRIX怎么用,降级熔断,高并发怎么应付
2.关于mysql层面做高并发有什么做法.mysql 主从复制、读写分离、双主双从、分库分表、mycat中间件
3.手撕代码:实现strstr
4.JWT如何实现鉴权中心存放公钥,微服务模块存放私钥对JWT进行加解密
5.nginx负载均衡有哪些算***询,加权轮询,hash)其中hash是对什么东西取hash
6.JVM内存区域,JVM对象如何晋升到老年代。这个晋升年龄可以调整吗(可以调整,还可以按动态年龄晋升)
7.你们项目用的是什么垃圾收集器(CMS),CMS会有什么问题如何解决(内存碎片,可以设置参数在FULLGC之前进行标记整理)。
8.爬虫怎么实现,对于异步加载的数据怎么抓取。需要关心请求形式吗。想·
9.JVM调优参数,调优思路。
。
二面:
1.介绍项目,遇到什么困难怎么解决。讲了下车号识别软件,识别车号错误怎么解决的
2.redis的持久化机制(AOP和RDB,把fork子线程 AOF重写 写时复制 疯狂输出)
3.Spring的事务传播级别(答了个required,没答好)
4.Spring如何解决循环依赖(三级缓存,换成两级也可)
5.Redis如何实现分布式锁
6.讲一下垃CMS垃圾收集器(内存碎片,浮动垃圾)和G1垃圾收集器(分为Region,跨代引用通过记忆集卡表解决跨Region指针,维护一个优先队列,用户可指定时间,局部采用复制算法,整体采用标记整理算法)
7.java的线程同步机制(volatile,sychronized,lock)把jdk1.6的锁优化输出,锁升级、锁消除、偏向锁、轻量级锁、重量级锁。讲了一下AQS的底层,同步队列器,state状态,独占模式、共享模式、读写锁)
8.讲了一下Rabbitmq、kafka区别,消息队列的作用。
9.讲一下Spring bean的生命周期。
10.数据库引擎层做过优化吗?怎么优化
11.mysql innodb用的什么数据结构做索引,有什么好处。
12.java出现OOM如何排查。(PrintGCDetails,查看具体哪个代溢出,检查JVM参数,检查有无内存泄漏,老年代加载类过多没卸载,javaNIO堆外内存检查,有无频繁创建大对象没有清除)
13.讲一下BIO、NIO、AIO(讲NIO的时候疯狂输出select poll epoll 反应堆模式,epoll的边沿触发和水平触发)
14.MVCC是什么,在数据库中的哪些隔离级别用到了?底层原理是什么?(两个隐藏列,事务创建版本号、回滚指针应用在读已提交、可重复读)
15.手撕算法给定一个数组,在这个数组中,一个数减去它右边的数字(不单单是紧邻,所有右边的)得到一个数对之差,求这些数对之差中的最大值。示例:{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。
不能使用暴力做法
import java.util.Scanner; public class Main { public static void main(String[] args) { //Scanner in = new Scanner(System.in); //int a = in.nextInt(); //System.out.println(a); //System.out.println("Hello World!"); int[] arr=new int[]{2,4,1,16,7,5,11,9}; //int[] arr2=new int[]{1,2,3,4,5,6}; int ans=maxDiff(arr); System.out.println(ans); } private static int maxDiff(int[] arr){ int nMax=arr[0]; int nMaxDiff=0; int nCurDiff=0; for(int i=1;i<arr.length;i++){ if(nMax<arr[i-1]){ nMax=arr[i-1]; } nCurDiff=nMax-arr[i]; if(nCurDiff>nMaxDiff){ nMaxDiff=nCurDiff; } } return nMaxDiff; } }
全部评论
(3) 回帖