常见面试3

目录

1.是否做过jvm的调优

2.Springboot自动装配原理是什么?

3.Springboot常用注解有哪些


1.是否做过jvm的调优

jvm 参数之前在工作的时候偶尔做过,每次都是需要的时候去查询文档一般情况下都是使用默认值,只有真正需要调优会去重新设置默认值

主要jvm参数分为三种

标准参数: 主要用于查看一些基本命令值 比如的话 jvm版本号

x参数 用于设置内存大小 基本都是传给jvm的,默认jvm实现这些参数功能,但并不保证所有jvm实现都满足,不保证后兼容 稳定性好

xx参数 用于控制jvm行为 跟具体的jvm实现有关 随时可能在下一个版本取消,稳定性差一些

常用参数: -Xms 内存的初始值大小 m为单位 默认系统内存的1/64

-xmx内存最大值 m为单位 最大值为系统内存1/4

一般情况下 会将如下两个参数设置为相同 避免jvm 内存自动扩展,当堆内存大小发生扩展的时候 发生抖动 影响到程序的稳定性

-Xmn 用于设置新生代的内存大小 设置为堆空间 1/3 1/4 新生代大,老年代小

-Xss 用于设置每个线程每个虚拟机栈的大小

还有很多参数 按照文档设置 具体记不住那么多了

2.Springboot自动装配原理是什么?

Springboot项目中的引导类上有一个注解SpringApplication是一个复合注解

其中@EnableAutoConfiguration 是实现自动化配置的核心注解

该注解通过@import注解导入对应的配置选择器 关键的是内部就是读取了该项目引用jar的classpath路径下 MAET-INF/spring.factories文件中的所配置的类全类名

在这些配置类中所定义的bean会根据条件来决定 是否需要将其导入spring容器中。

3.Springboot常用注解有哪些

@SpringBootApplication

@EnableAutoConfiguration

@SpringBootConfiguration

@ComponentScan

你可能感兴趣的:(面试,职场和发展)