vipkid二面疯狂问mysql_VIPKID java后端一面二面面经

一面:

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

if(nMax

nMax=arr[i-1];

}

nCurDiff=nMax-arr[i];

if(nCurDiff>nMaxDiff){

nMaxDiff=nCurDiff;

}

}

return nMaxDiff;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值