对象初始化与this
(zhuanlan.zhihu.com/p/35681398)
静态方法、非静态方法、静态字段、非静态字段的存储:
(www.cnblogs.com/dongguol/p/…)
- class field:有用static修饰的field
- class method:有用static修饰的method
- instance field:没有用static修饰的field
- instance method:没有用static修饰的method
那么他们在内存中的表示为:
- class field:共用一块记忆体
- class method:共用一块记忆体
- instance field:随着每个instance各有一块记忆体
- instance method:共用一块记忆体
多线程
多线程初级(上)
(zhuanlan.zhihu.com/p/56518031)
-
创建多线程的2种方式;
extends Thread类
implments Runnable()
-
Thread源码浅析;
继承Thread 与 实现Runnable 之间的关系。(实现Runnable接口,将此runnable对象传递给Thread的构造方法。Thread类内部会调用该runnable中的run方法。)
初级多线程(中)
(zhuanlan.zhihu.com/p/57482990)
锁的认识
-
互斥的最基本条件是:共用同一把锁
-
静态方法的锁是所在类的字节码对象:xxx.class对象,普通方法的锁是this对象
-
针对同一个线程,synchronized锁是可重入的
面试题:写一个固定容量的同步容器,拥有put和get方法,以及getCount方法,能够支持2个生产者线程以及10个消费者线程的阻塞调用。
Volatile解析
(zhuanlan.zhihu.com/p/54327635)
面试官最爱的volatile关键字(juejin.cn/post/684490…
原子性、可见性、有序性
指令重排序
ReetrantLock手撕AQS
(zhuanlan.zhihu.com/p/54297968)
基本锁的特性:
- 加锁
- 解锁
ReetrantLock的补充特性
- 可重入
- 公平
- 非公平
Java线程池
(zhuanlan.zhihu.com/p/34043299)
注解
(zhuanlan.zhihu.com/p/60941426)
(zhuanlan.zhihu.com/p/60966151)
注解的三角关系:
定义注解,使用注解,读取注解

注解分为3类:
-
自定义注解
-
JDK内置注解
-
第三方注解
自定义注解一般要我们自己定义、使用、并写程序读取,而JDK内置注解和第三方注解我们只要使用,定义和读取都交给它们。
元注解
元注解:就是加在注解上的注解
@Target 加在注解上,限定该注解的使用位置。
@Retention(注解的保留策略)
保留策略有3种:SOURCE/CLASS/RUNTIME

要想被反射读取,保留策略只能用RUNTIME,即运行时仍可读取。