- 博客(7)
- 收藏
- 关注
原创 同步和异步、阻塞和非阻塞之间的关系以及同步阻塞、同步非阻塞、异步阻塞、异步非阻塞的含义
同步和异步、阻塞和非阻塞、同步阻塞、同步非阻塞、异步阻塞、异步非阻塞的含义
2022-09-20 11:08:21
443
原创 类的加载过程
编译:将.java文件通过javac命令编译成.class文件运行:将.class文件交给JVM运行类加载:加载 链接 初始化其中的链接可以细分为三个小部分:验证 准备 解析加载指的是将.class文件通过类加载装载入内存这里有两个点:.class文件的来源:一般的加载来源有本地路径下编译生成的.class文件,jar包中的.class文件,远程网络和动态代理实时编译 类加载器:一般包括启动类加载器,拓展类加载器,系统类加载器和用户的自定义类加载器...
2021-09-30 18:23:58
106
原创 关于@PostConstruct
最近在公司优化配置文件的时候,遇到NullPointException问题,排查的时候发现配置文件没有配置对应的属性。配置文件修改完之后依然报NullPointException,再排查了一下发现某个类在构造函数中调用了@Autowired的对象。这涉及到Spring中Bean的生命周期,如果想在生成对象时完成某些初始化操作,而这些操作又需要依赖注入,那么就无法在构造函数中实现。所以,可以使用@PostConstruct注解一个方法来完成初始化。Spring中构造函数、@Autowired、@PostC
2021-09-27 11:40:38
186
原创 抽象类和接口的区别
接口抽象方法的集合,制定某种规范没有构造方法字段(属性)仅能使用修饰符public static final,全局常量,默认不写方法jdk 7,修饰符public abstract,默认不写jdk8,修饰符public static,静态方法,有方法体,public可省略 修饰符public default,类似 类的实例方法,有方法体,public可省略jdk9,新增权限修饰符private实现一个类可以实现(implements)多个接口...
2021-07-15 09:33:57
81
原创 关于偏向锁升级
偏向锁升级对象锁创建时偏向锁标志为0(偏向锁是默认开启的,而且开始时间一般是程序启动几秒后,所以过段时间会将偏向锁标志改为1),锁状态为01。当第一个线程t1访问同步代码块并获取锁对象时,会将锁对象头的MarkWord中hashcode等字段修改为t1的线程id,同时将对象锁的偏向锁标志改为1。此时t1获得对象锁,对象锁为偏向锁。当t1线程将同步代码块执行完,退出同步代码块后,此时锁仍为偏向锁,且对象头中的MarkWord仍保存着t1 的线程id,第二个线程t2访问同步代码块并获取锁对象时,通过
2021-05-28 10:44:14
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人