学习笔记
Java 基础
Java 注解
注解就是代码中的一种特殊标记,最开始是在 java doc 中使用,这些标记可以在编译,运行时被读取,并执行相应的处理。
spring 中的注解:@Controller、@Component、@Service、@Repository、@Configuration、@Bean
Java 中的注解:@Override 、@Deprecated、@FuncationalInterface
Java 中的元注解:@Retention(注解的生命周期)、@Target(注解的使用范围)、@Inherited、@Documented
自定义注解 + AOP 实现接口调用统计,如果接口带有自定义的注解,则记录相关调用情况
Java 泛型
Java 泛型是程序设计语言的一种风格或范式,允许程序员在编写代码时不指定具体的类型,而是在创建实例或者调用方法时才明确指定具体的类型。
使用泛型的好处是,让代码更简洁,不需要手动强制类型转换;让程序更加健壮,在编译期不会告警,减少出现 ClassCastException 异常。
Java NIO
与传统 io 的区别
传统 IO 是一次一个字节处理数据,NIO 是以块的形式处理数据
传统IO是阻塞的,NIO 是非阻塞的
NIO 有三个核心组成部分:Buffer 、Channel 、Selector
Java 反射
Java 反射可以让我们在运行时获取类的信息
Java 并发
多线程基础
进程是资源分配的基本单位,线程是资源调度的基本单位
使用多线程是为了提高资源的利用率,多核处理器
Tomcat 一个请求会从线程池中获取一个线程进行处理
数据库连接池也是使用多线程
CAS
compare and swap 比较并交换
三个操作数:当前值,内存值,新值
问题 ABA,AtomicStamppedReference 内存值 + 版本号