1. Collection框架之ConcurrentHashMap

    Java7 中 ConcurrentHashMap 使用的分段锁,也就是每一个 Segment 上同时只有一个线程可以操作, 每一个 Segment 都是一个类似 HashMap 数组的结构, 它可以扩容,它的冲突会转化为链表。但是 Segment 的个数一但初始化就不能改变。

    2021/09/27 Collection

  2. Java 集合目录

    代码模块 private static String postTitle = "Collection框架之ConcurrentHashMap"; private static String urlTitle = "jdk-ConcurrentHashMap"; private static String categories = "[Collection]"; private static String tags = "[Java, collection]"; private static String folder = "java" + File.separator + "collection"+ File.separator + "content"; private static String number = "01";

    2021/09/27 menus

  3. Java cglib 代理

    JDK 动态代理有一个最致命的问题是其只能代理实现了接口的类,CGLIB 动态代理机制就可以避免这个限制。 CGLIB(Code Generation Library)是一个基于ASM的字节码生成库,它允许我们在运行时对字节码进行修改和动态生成。CGLIB 通过继承方式实现代理。 很多知名的开源框架都使用到了CGLIB, 例如 Spring 中的 AOP 模块中:如果目标对象实现了接口, 则默认采用 JDK 动态代理,否则采用 CGLIB 动态代理。

    2021/09/26 Proxy

  4. Java JDK 代理

    在静态代理中我们需要对哪个接口和哪个被代理类创建代理类,所以我们在编译前就需要代理类实现与被代理类相同的接口, 并且直接在实现的方法中调用被代理类相应的方法;但是动态代理则不同,我们不知道要针对哪个接口、 哪个被代理类创建代理类,因为它是在运行时被创建的。也就是:JDK静态代理是通过直接编码创建的, 而JDK动态代理是利用反射机制在运行时创建代理类的。

    2021/09/26 Proxy

  5. Maven deploy 上传jar包到私服的方法及其配置文件

    如果搭建了maven私服,那么需要将项目基础脚手架,或者依赖项目上传到私服,供其他人下载使用, 备份一下配置,后续快速复用~

    2021/09/18 Maven

  6. RocketMQ Q&A

    MQ如何选型

    2021/09/13 RocketMQ

  7. spring bean 的生命周期

    在传统的Java应用中,bean的生命周期很简单。使用Java关键字new进行bean实例化,然后该bean就可以使用了。 一旦该bean不再被使用,则由Java自动进行垃圾回收。

    2021/09/06 Spring

  8. 微服务目录汇总

    微服务体系相关文章目录汇总

    2021/09/05 menus

  9. 开源框架目录汇总

    Spring

    2021/09/05 menus

  10. spring 循环依赖解决方案

    简简单单一个循环依赖问题,其实蕴含的是Spring 最核心的两个点: Bean的生命周期 与 AOP原理。

    2021/09/05 Spring