小厂Java面经

1、mysql的B+树数据结构说了一下B+树的特点就是只有叶子结点存储数据,非叶子结点只存储指针和key,叶子结点之间用指针连接,B+树可以减少树高,减少IO次数7、JVM分代回收答了堆分为新生代和老年代,新生代又分为eden 区和两个s区(可以补充大小比例是8:1:1),新生成的对象放进eden区,当eden区满了,就会开始分代回收,(可以补充采用的是复制算法),在经过十五次 minor gc还是没有被清除的对象会被放进老年代。

2、OOM出现的场景我回答了常见于运行时间很长的程序,老年代的对象一直没有被清理,就会导致OOM。(可以回答内存泄漏,程序中的对象没有被正确释放,导致内存不断被占用,未释放的资源,未清理的缓存。或者说频繁的full gc,全局垃圾回收,会导致大量的暂停时间,影响程序性能,或者说内存溢出,分配了大量的内存没有释放,递归导致栈溢出等都可以说)

3、redis 缓存穿透、雪崩缓存穿透就是用户发送请求去查询不存在的数据,缓存也没有,所以直接去数据库查,但是数据库也没有,有可能导致宕机,解决办法是用布隆过滤器或者说直接返回空值。雪崩就是同一时间大量的缓存过期,直接跑去数据库查,解决方案是设置随机的过期时间10、用到的springcloud组件说了feign, ribbon,gateway还用了springcloudalibaba的 nacos11、openfeign用的什么协议?回答 http14、openfeign里面集成了什么组件?内部集成了 ribbon和eureka,ribbon用来负载均衡,eureka用来做注册中心12、openfeign的http请求通过什么实现?没答出来(http请求的实现是通过底层的http客户端来完成,openfeign默认使用springcloud的restTemplate作为http客户端来发送请求)

5、spring事务失效场景答了1)非事务方法调用事务方法(还提了一嘴我的项目也有遇到这个问题)2)没有交给spring容器管理3) 抛出异常被捕获4)用了错误的事物传播行为(忘了说不是public的情况,还有异常类型错误)

6、rabbitmq如何解决消息重复消费问题全局唯一id,幂等的问题

#软件开发笔面经#
全部评论

相关推荐

11-03 10:01
门头沟学院 Java
杭州视言科技java实习(6.24)1.    岗位大概能实习多久?2.    讲讲你时长较长的那个项目,做了哪些板块?理一下大致的流程?3.    常规SpringBoot做的网站登录和微信小程序登录有什么区别4.    既然你提到了MD5加密,你们当时小程序那边有做加密么?5.    那我现在让你去把小程序这个项目的用户密码进行加密你怎么做?6.    微信小程序登录的接口是有一定的时效性的,隔一段时间就会失效,讲讲你token刷新的逻辑,你是怎么去处理的?7.    除了登录这样的业务,你还负责了哪些业务板块?8.    你登录那块的HttpClient其实有个问题,每次新调用的话,是做不到线程重复利用的,HttpClient是可以做线程池的,你当时是怎么实现的?9.    那假如我现在给你提个要求,我们现在是一个中间转发的服务器,我现在有大量的HttpClient的复用需求,我需要把外面请求的链接转发到后面去,我这时候需要你去做一个可复用的HttpClient的线程池,你会怎么实现?10.    你这个项目的时候还蛮长的,通过学校这个项目,你的收获是什么?11.    假如现在CRUD这样的业务板块重复性很高,现在要求专注写其他业务,你会通过什么样的方式去做?
查看11道真题和解析
点赞 评论 收藏
分享
6 16 评论
分享
牛客网
牛客企业服务