Java面试经历问题总结

Java基础:

1:HashMap是怎么存储数据
https://zhuanlan.zhihu.com/p/79507868

2:hashMap为什么线程不安全

在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,
可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会出现死循环,所以HashMap是线程不安全的

3:线程池有哪几种策略

4:synchronized作用方法和代码块有什么区别

框架:

1:mybatis中执行一条查询SQL语句的执行过程是怎样的

首先通过SqlSessionFactoryBuilder的build方法加载配置文件得到SqlSessionFactory会话工厂,通过会话工厂的openSession打开会话,得到SqlSession,通过SqlSession里面的增删改查,API方法去执行sql语句,最后关闭手动会话连接

mybatis缓存
一级缓存作用于sqlSerssion,默认开启
二级缓存作用于整个sql查询namespace,在查询时用cache关键字开启缓存

springboot的启动方式

springboot加载配置文件方式
1:@Value  2:Environment对象注入获取  3:PropertySource注解等

组件:

RabbitMQ的工作模式

简单模式,工作模式,订阅模式,路由模式,主题模式

RabbitMQ的交换机有几种

直连交换机,扇形交换机,主题交换机,头交换机

Linux系统

1:Linux系统的top命令可以查看什么数据

可以查看系统CPU占比,内存使用量,IO,系统进程等

2:springCloud的常用组件介绍

  • Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里
  • Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台
  • Feign:基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求
  • Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题
  • Zuul:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务

 

 

你可能感兴趣的:(Java面试经历问题总结)