• Java中级面试题记录(三)


    1.职业规划?

    2.每家公司离职原因?

    3.SpringCloud用到了哪些组件?

    • GateWay
    • Nacos
    • OpenFeign
    • Seata
    • Hystrix

    4.PG和Mysql的区别?

    在这里插入图片描述

    5.两种数据库的存储区别?

    在这里插入图片描述

    6.MySQL索引了解的内容?

    一口气搞定索引的所有知识

    7.MySQL索引为什么采用B+树?

    在这里插入图片描述

    8.MySQL写多读少的时候采用哪种结构?

    在这里插入图片描述

    9.非关系型数据库用的多吗?

    Redis用的多、MongoDb使用过但是使用不多

    10.MongoDb存储的是什么结构?

    MongoDB是一个基于文档的数据库,将数据存储为JSON格式的文档。每个文档都是一组键值对,类似于JSON对象。MongoDB文档类似于JSON的BSON格式,可以存储复杂的数据结构。MongoDB支持查询语言,语法类似于面向对象的查询语言,可以实现类似关系数据库单表查询的绝大部分功能,还支持对数据建立索引

    11.MongoDb的存储引擎?

    在这里插入图片描述

    12.注册中心为什么使用Nacos?

    因为Nacos比Eurka更好用

    13.Feign你们有做单独的配置吗?

    • Feign中配置了httpclient连接池
    • Feign中配置GZIP压缩参数
    • Feign中配置了客户端的建立连接超时时间和读取资源超时时间等等
    • Feign中自定义了异常解码器
    • 修改了Feign中的日志级别
    • 调用Feign的Decoder、Encoder配置自定义转换器 支持Geometry的序列化和反序列化

    14.@FeignClient中有个configuration属性有使用过吗?

    @FeignClient中的configuration属性用于指定Feign客户端的配置类,这个配置类可以提供各种参数和方法,以提供给该客户端使用。我们项目中是使用配置文件统一进行客户端属性设置的!

    15.Feign的使用中有没有遇到什么问题?

    项目中同事引入Feign后自己重新定义了轮询的负载均衡策略,导致测试环境中Feign偶尔出现找不到服务异常,删除对应的负载均衡策略配置后就正常了。

    16.你对XX-job的二次开发做了哪些操作?

    已经从简历里面删除了,不太熟悉

    17.分布式锁为什么使用Redisson?

    • 使用简单、只需要考虑加锁、解锁、不需要考虑锁的超时等问题
    • Redisson不仅仅可以当作分布式锁还可以用作其它功能

    18.Redisson使用分布式锁的缺点?

    在这里插入图片描述

    19.Zookeeper挂了之后提供者和服务者是否还可以通信?

    可以,因为有本地缓存

    20.项目中线程池为什么采用ThreadPoolTaskExecut?为什么不适用jdk提供的?

    原则上来说都是可以使用的,不过ThreadPoolTaskExecut线程池是由Spring提供的,是对jdk中的线程池的扩展,提供了更加丰富的API,还可以给线程池对应的线程设置统一前缀名称,因为项目中肯定是离不开Spring的,因此我们肯定优先使用Spring提供的线程池了。

    21.线程池的参数配置需要注意什么?自己有没有测试过?实践出真知!

    最大线程数配置:
    IO密集型:CPU核数/(1-阻塞系数)
    CPU密集型:CPU核数*2

    22.生产中部署使用的是k8s吗?对k8s熟悉吗?

    了解一些

    23.消息中间件除了RabbitMQ还是用过其它的吗?

    用过mosquitto 对接设备时用过

    24.RabbitMQ的死信队列有使用过吗?

    消费者在消费生产者生产的消息时发生了某些特殊情况,导致消息无法被正常消费,存放这些未被消费的消息的队列即为死信队列

    25.项目过程中哪些技术栈比较熟悉,有心得?对相关技术的原理有没有做了解?

    26.分布式的任务调度框架,是如何做到分布式调度的?

    在这里插入图片描述

    27.分布式的任务调度框架使用时需要注意的点、可能会遇到哪些问题?

    在这里插入图片描述

    28.ORM框架比较熟悉哪些?JPA有使用过吗?

    Mybatis、Mybatis-Plus

    29.Mybatis的一级缓存和二级缓存有了解过吗?

    30.单表多条件的查询,用Mybatis有哪些方法来实现?

    31.数据库除了MySQL还有用到其它的吗?

    PG

    32.MySQL数据库哪些场景下不适合建立索引?

    • 字段值区分不大
    • 频繁更新的字段
    • 查询条件用不到的字段
    • 表的数据量太小
    • 字段值无序的(比如UUID)

    33.对GIS相关的值有做处理吗?

    使用PG数据库中提供的函数计算坐标的距离

    34.SpringCloud体系下面哪些组件在你们项目中有使用到呢?

    • GateWay
    • Nacos
    • OpenFeign
    • Seata
    • Hystrix

    35.日志采集你们项目用到哪些框架呢?

    36.项目中的日志框架是什么呢?log打印出来的日志有没有进行汇总呢?

    log4j2

    37.对条件注入有了解吗?对具体的原理有做了解吗?有使用过哪个注解吗?

    38.jdk的作用域的修饰符分别有哪些?各自的范围是什么?protect的作用域的是什么?默认的作用域是什么?

    • private: 本类
    • public: 所有类
    • protect: 本类、同包类、其他包子类
    • 默认:本类、同包类

    39.接口里面可以有方法的实现吗?

    可以,可以有默认方法、java8之后还可以有私有方法

    40.抽象工厂模式熟悉吗?

    JAVA设计模式(五)——抽象工厂模式

    41.项目中使用过设计模式吗?使用场景是什么?

    策略模式

    42.针对上面的场景,使用策略模式有哪些关键的点?如何根据不同的策略执行不同的流程?

    43.在多线程内,线程和线程之间进行数据交换,有哪些方法?

    • 通过构造方法传递数据
    • 通过ITL
    • 通过变量和方法传递数据
    • 通过回调函数传递数据

    Java多线程:向线程传递参数的三种方法

    44.DDD有做过了解吗?

    领域模型设计

    45.你了解哪些通信协议?Https协议熟悉吗?

    • TCP
    • UDP
    • HTTP
    • HTTPS
    • MQTT

    46.对于服务安全这一块,你了解哪些?

    • 防注入
    • 横向越权
    • 纵向越权
    • 越权访问

    47.RestFul熟悉吗?说下你的理解?

    什么是Restful风格?与传统的访问风格有什么不同?

    48.docker的容器编排使用的是什么?

    docker-compose

  • 相关阅读:
    Android下怎么使用LDD查看依赖库
    推荐 9 个 yyds 前后端分离项目
    React Native读取系统属性
    「Pytorch」roLabelImg 图像异常旋转 bug
    js用普通DIV模拟A标签
    想进大厂,请先想清楚这几个问题
    【力扣 - 多数元素】
    Blender+fSpy实现3D渲染结果与2D图像融合
    基于AM335X开发板 (ARM Cortex-A8)——Linux系统使用手册 (上)
    k8s发布eureka集群,创建微服务项目
  • 原文地址:https://blog.csdn.net/lingerlan510/article/details/132687975