Spring Boot 学习笔记

Spring Boot 约定优于配置的思想让Spring Boot 项⽬目⾮非常容易易上⼿手,让编程变的更更简单,其实编程本该很简单,简单才是编程的美。

#sping-boot   #java  

线程池:ScheduledThreadPoolExecutor

我们知道Timer与TimerTask虽然可以实现线程的周期和延迟调度,但是Timer与TimerTask存在一些缺陷,所以对于这种定期、周期执行任务的调度策略,我们一般都是推荐ScheduledThreadPoolExecutor来实现。下面就深入分析ScheduledThreadPoolExecutor是如何来实现线程的周期、延迟调度的。

#ThreadPool  

用弱引用堵住内存泄漏

要让垃圾收集(GC)回收程序不再使用的对象,对象的*逻辑* 生命周期(应用程序使用它的时间)和对该对象拥有的引用的*实际* 生命周期必须是相同的。在大多数时候,好的软件工程技术保证这是自动实现的,不用我们对对象生命周期问题花费过多心思.

#GC  

Java final关键字用法注意点

- final关键字声明的static变量(属于类)必须在声明、类初始化(static{})的时候初始化,而且不能重复赋值;而非static变量(属于对象),必须在声明、对象初始化({}方法)或者构造函数里面初始化,也不可以重复赋值。(有例子) - final static作为常量的时候,jvm会对其进行优化(有例子) - final变量不可变的是句柄的地址,其实里面的值可以改变(有例子)

#java  

Java注解自定义详解

注解的作用生成文档,这是java最常见的,也是java最早的注解。跟踪代码依赖性,实现替代配置文件功能。在编译时进行严格检查如@override放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。实现一个简单的注解@Retention(RetentionPolicy.RUNTIME)

#java