随笔分类 -  java

摘要:前言 JDK8 为我们带来了 CompletableFuture 这个有意思的新类,它提供比 Future 更灵活更强大的回调功能,借助 CompletableFuture 我们可以更方便的编排异步任务。 本着知其然也要知其所以然的想法,笔者结合源码深入了解了一下 CompletableFuture 阅读全文
posted @ 2022-12-07 18:02 Createsequence 阅读(869) 评论(4) 推荐(3) 编辑
摘要:前言 之前我一个搞网络安全的朋友问了我一个的问题,为啥用 PreparedStatement 预编译的 SQL 就不会有被 SQL 注入的风险? 第一时间我联想到的是八股文中关于 Mybatis 的脚本 ${} 和 #{} 的问题,不过再想想,为啥 ${} 会有 SQL 注入的风险,而 #{} 就没 阅读全文
posted @ 2022-12-07 18:01 Createsequence 阅读(8093) 评论(9) 推荐(11) 编辑
摘要:前言 Spring 从 3.x 开始支持事件机制。在 Spring 的事件机制中,我们可以令一个事件类继承 ApplicationEvent 类,然后将实现了 ApplicationListener 的 Bean 注册到 spring 容器,最后向 ApplicationEventPublisher 阅读全文
posted @ 2022-08-16 14:17 Createsequence 阅读(1281) 评论(0) 推荐(1) 编辑
摘要:前言 Spring 从 3.x 开始支持事件机制。在 Spring 的事件机制中,我们可以令一个事件类继承 ApplicationEvent 类,然后将实现了 ApplicationListener 的 Bean 注册到 spring 容器,最后向 ApplicationEventPublisher 阅读全文
posted @ 2022-08-16 14:15 Createsequence 阅读(990) 评论(0) 推荐(2) 编辑
摘要:前言 在 spring 容器中,允许通过名称或别名来获取 bean ,这个能力来自于顶层接口 AliasRegistry,分析类下属的关系图,可以看到,几乎所有主要容器都直接或间接的实现了 AliasRegistry 接口。 AliasRegistry 的结构非常简单,主要的类就是 AliasReg 阅读全文
posted @ 2022-08-14 15:36 Createsequence 阅读(644) 评论(0) 推荐(0) 编辑
摘要:概述 我们知道,spring 的启动其实就是容器的启动,而一般情况下,容器指的其实就是上下文 ApplicationContext。 AbstractApplicationContext 作为整个 ApplicationContext 体系中最高级的抽象类,为除了 ComplexWebApplica 阅读全文
posted @ 2022-08-14 15:32 Createsequence 阅读(366) 评论(0) 推荐(2) 编辑
摘要:前言 我们知道,spring 的启动其实就是容器的启动,而一般情况下,容器指的其实就是上下文 ApplicationContext。 AbstractApplicationContext 作为整个 ApplicationContext 体系中最高级的抽象类,为除了 ComplexWebApplica 阅读全文
posted @ 2022-08-14 15:32 Createsequence 阅读(624) 评论(0) 推荐(0) 编辑
摘要:前言 我们知道,spring 的启动其实就是容器的启动,而一般情况下,容器指的其实就是上下文 ApplicationContext。 AbstractApplicationContext 作为整个 ApplicationContext 体系中最高级的抽象类,为除了 ComplexWebApplica 阅读全文
posted @ 2022-08-14 15:31 Createsequence 阅读(1205) 评论(0) 推荐(0) 编辑
摘要:前言 在 spring 中,任何实现了 BeanFactory 接口的类都可以视为容器,它是 IOC 功能实现的核心,用于完成类实例从加载到销毁的整个生命周期的控制,这些被 spring 所管理的实例统称为 bean。 根据抽象层级的不同,容器又分为 BeanFactory 的直接实现,与基于 Be 阅读全文
posted @ 2022-08-14 15:31 Createsequence 阅读(404) 评论(0) 推荐(0) 编辑
摘要:前言 众所周知,spring 从 2.5 版本以后开始支持使用注解代替繁琐的 xml 配置,到了 springboot 更是全面拥抱了注解式配置。平时在使用的时候,点开一些常见的等注解,会发现往往在一个注解上总会出现一些其他的注解,比如 @Service: @Target({ElementType. 阅读全文
posted @ 2022-08-14 15:27 Createsequence 阅读(2095) 评论(2) 推荐(0) 编辑
摘要:前言 众所周知,spring 从 2.5 版本以后开始支持使用注解代替繁琐的 xml 配置,到了 springboot 更是全面拥抱了注解式配置。平时在使用的时候,点开一些常见的等注解,会发现往往在一个注解上总会出现一些其他的注解,比如 @Service: @Target({ElementType. 阅读全文
posted @ 2022-08-14 15:27 Createsequence 阅读(2167) 评论(1) 推荐(0) 编辑
摘要:前言 众所周知,spring 从 2.5 版本以后开始支持使用注解代替繁琐的 xml 配置,到了 springboot 更是全面拥抱了注解式配置。平时在使用的时候,点开一些常见的等注解,会发现往往在一个注解上总会出现一些其他的注解,比如 @Service: @Target({ElementType. 阅读全文
posted @ 2022-08-14 15:26 Createsequence 阅读(3618) 评论(1) 推荐(3) 编辑
摘要:前言 在我们日常开发中,经常会遇到一些烦人的数据关联和转换问题,比如典型的: 对象属性中个有字典 id,需要获取对应字典值并填充到对象中; 对象属性中有个外键,需要关联查询对应的数据库表实体,并获取其中的指定属性填充到对象中; 对象属性中有个枚举,需要将枚举中的指定属性填充到对象中; 实际场景中这种 阅读全文
posted @ 2022-06-27 11:49 Createsequence 阅读(1491) 评论(0) 推荐(0) 编辑
摘要:概述 在 java 中,线程池 ThreadPoolExecutor 是一个绕不过去的类,它是享元模式思想的体现,通过在容器中创建一定数量的线程加以重复利用,从而避免频繁创建线程带来的额外开销。一个设置合理的线程池可以提高任务响应的速度,并且避免线程数超过硬件能力带来的意外情况。 在本文,将深入线程 阅读全文
posted @ 2021-02-16 17:05 Createsequence 阅读(424) 评论(2) 推荐(1) 编辑
摘要:概述 说起多线程同步,一般的方案就是加锁,而在 java 中,提到加锁就想起 juc 包提供的 Lock 接口实现类与默认的关键字 synchronized 。我们常听到,juc 下的锁大多基于 AQS,而 AQS 的锁机制基于 CAS,相比起 CAS 使用的自旋锁,Synchronized 是一种 阅读全文
posted @ 2021-02-16 17:03 Createsequence 阅读(464) 评论(0) 推荐(0) 编辑
摘要:概述 Map 接口是 java 中两大集合接口之一,相对于 Collection,Map 接口结构规定了所有键值对形式的集合容器。同时,它与 Collection 的子接口 Set 又密切相关,Map 一部分实现依赖于 Set 集合,而 Set 集合的一些实现也依赖于 Map。 Map 接口下有四个 阅读全文
posted @ 2020-12-16 20:44 Createsequence 阅读(327) 评论(0) 推荐(1) 编辑
摘要:概述 HashMap 是 Map 接口下一个线程不安全的,基于哈希表的实现类。由于他解决哈希冲突的方式是分离链表法,也就是拉链法,因此他的数据结构是数组+链表,在 JDK8 以后,当哈希冲突严重时,HashMap 的链表会在一定条件下转为红黑树以优化查询性能,因此在 JDK8 以后,他的数据结构是数 阅读全文
posted @ 2020-12-16 20:39 Createsequence 阅读(474) 评论(0) 推荐(2) 编辑
摘要:概述 一个 java 程序猿比较广为人知的小知识 ,是 ArrayList 和 LinkedList 最好使用迭代器删除,而不是遍历删除。 当我们尝试使用 for 循环或者 forEach 进行删除的时候,往往会出现一些意外的情况,导致集合全部删除失败。关于这点,我一直保持知其然不知其所以然的状态, 阅读全文
posted @ 2020-12-05 12:51 Createsequence 阅读(894) 评论(1) 推荐(2) 编辑
摘要:概述 LinkedList 是一个不保证线程安全的、基于双向的双端链表的实现的 List 集合。LinkedList 继承了 AbstractSequentialList 抽象类,在实现 List 接口的同时还实现了 Deque 接口,也正因如此,它也具有队列的特性与方法。 这是关于 java 集合 阅读全文
posted @ 2020-12-05 12:50 Createsequence 阅读(213) 评论(0) 推荐(0) 编辑
摘要:概述 ArrayList 是 List 接口下一个基于可扩展数组的实现类,它和它的兄弟类 Vector 有着一样的继承关系,也都能随机访问,但是不同的是不能保证线程安全。 这是关于 java 集合类源码的第三篇文章。往期文章: java集合源码分析(一):Collection 与 AbstractC 阅读全文
posted @ 2020-12-02 19:08 Createsequence 阅读(473) 评论(0) 推荐(1) 编辑

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示