sping事务传播级别
required:默认传播级别,没有事务创建事务,有事务加入事务
required_new : 每次创建事务,并挂起其他事务
supports:加入当前事务,不创建事务
not_supported:不支持事务,挂起其他事务
mandatory:如果没有事务,抛出异常
never:绝不支持事务,有事务抛出异常
nested:没有事务创建事务,有事务创建嵌套事务,子事务由父事务统一提交、
spring事务隔离级别
Read-Uncommitted:读未提交,产生脏读
Read-Committed:读已提交,产生不可重复读,幻读
Repeatable-Read:可重复读,产生幻读(采用间隙锁解决)
serializable:最高级别,串行化,资源消耗最大
springboot常用注解
@SpringBootApplication
@Configuration
@ComponentScan
@EnableAutoConfiguration
@ImportAutoConfiguration
@Primary
@Qualifier
@Profile
Spring Boot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationPropertie注解来绑定变量
springboot优先properties、yml
springboot读取配置方式
1.通过获取环境变量Environment来获取配置参数
2.通过@Value注解方式
3.通过@ConfigurationProperties读取配置文件映射实体类
简单回答springbean生命周期:
(1)实例化(必须的)构造函数构造对象
(2)装配(可选的)为属性赋值
(3)回调(可选的)(容器-控制类和组件-回调类)
(4)初始化(init-method=” “)
(5)就绪
(6)销毁(destroy-method=” “)
mysql Explain 执行
ALL、index、range、 ref、eq_ref、const、system、NULL(从左到右,性能从差到好)
网络七层:物理层、数据链路、网络层、传输层、会话层、表示层、应用层
线程池
ThreadPoolExecutor
new SingleThreadExecutor单例线程池
new FixedThreadPool定长线程池
new CachedThreadPool可缓存线程池
new ScheduledThreadPool定时线程池
corePoolSize:核心池的大小
maximumPoolSize:线程池最大线程数
keepAliveTime:回收空闲时间
unit:时间单位
ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。
ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。
ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程)
ThreadPoolExecutor.CallerRunsPolicy:由调用线程处理该任务
Semaphore 信号量,限制线程通过的数量
countDownLatch 多线程都执行完才能通过
回收算法
1.标记–清除算法
2.复制算法
3.标记–整理算法
jvm内存工具jmap,jconsole
jvm内存模型
堆、栈、本地方法栈、程序计数器、元空间(类信息、常量池)
偏向锁-》轻量锁-》重量锁
