目录
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