面试题总结1

本文探讨了面试中关于==和equals的区别、Mybatis中的$和#的用途、Springboot的核心注解及其自动装配原理,还包括rabbitMQ在削峰中的应用、Mysql优化策略以及Java垃圾回收机制的讲解。
摘要由CSDN通过智能技术生成

一、面试--郑州研实

1、“==”和 equals的区别和联系?

“==”比较基本数据类型时比较的是表面值内容,而比较两个的是两个对象的内存地址值;

equals方法,不能作用于基本数据类型的变量,如果对于没重写equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;例如string、date等对equals方法进行重写的话,比较的是所指向的对象的内容。

2、Mybatis中$和#的区别?

#是预编译,可防止sql注入;$是直接拼接在sql语句中

3、Springboot的核心注解是什么,又哪几个注解组成的

核心注解:@SpringBootApplicaiton

包含:

@SpringBootConfiguration实现配置文件功能

@EnableAutoConfiguration打开自动配置功能

@CompoentScan组件扫描功能

4、springboot的自动装配原理

在springboot应用里面,只需要在启动类上加@springbootApplication注解就可以实现自动装配了;@SpringBootApplication注解是一个符合注解,真正实现自动装配的注解是@EnableAutoConfigation注解;自动装配的三个核心关键技术:

  1. 引入starter启动 依赖组件的时候,这个组件必须要包含@Configuration配置类,在配置类中用@bean注解声明需要装配到ioc容器中的bean对象。
  2. 这个配置类是放在第三方jar包里面的,然后通过springboot约定优于配置的思想,要把这个配置类的全路径放在classpath:/META-INF/Spring.factories文件中。这样springboot就知道了第三方jar包中配置类的位置,这个步骤主要用到了spring里面的SpringFactoriesLoader来完成的。
    3、springboot拿到第三方jar包中声明的配置类后,再通过spring提供的importSelector接口,实现对这些配置类的动态加载。

5、rabbitMQ削峰

在访问量剧增的情况下,但是应用仍需要发挥作用,但是这样的突发流量并不常见。而使用消息中间件采用队列的形式可以减少突发访问的压力,不会因为突发的超负荷而崩溃。

6、Mysql优化

  1. 使用更小的整数类型、尽可能的定义字段为not null
  2. 只创建需要的索引、分库分表
  3. 使用explain检查复杂的sql语句
  4. LIMIT语句尽可能要跟order by或者distinct
  5. 插入多条数据时使用单条insert语句

7、垃圾回收机制

在java中,程序员是不需要刻意的去释放一个对象的内存,而是由虚拟机自动执行。在jvm中,有一个垃圾回收线程,它是低优先级的,在正常情况下是不会执行的,只有在虚拟机空闲或者堆内存不足时,才会触发执行,扫描那些没有被任何引用的对象,并将他们添加到要回收的集合中,进行回收

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值