首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java源码解析
梦想实现家_Z
创建于2022-06-06
订阅专栏
Java源码解析
等 14 人订阅
共24篇文章
创建于2022-06-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Springboot实现对配置文件中的明文密码加密
前言 我们在SpringBoot项目当中,会把数据库的用户名密码等配置直接放在yaml或者properties文件中,这样维护数据库的密码等敏感信息显然是有一定风险的,如果相关的配置文件被有心之人拿到
简述RocketMQ消息拉取过程【二】
在上一篇文章中,我们讲述了DefaultMQPushConsumer拉消息的原理,它是通过重平衡触发pullRequest的创建,通过阻塞队列作为
RocketMQ重平衡策略你用过几种?
在上一篇文章中RocketMQ消费者如何实现重平衡,我们简单讲述了RocketMQ消费者是如何实现重平衡的,我们在源码中发现默认的重平衡策略是平均
RocketMQ消费者如何实现重平衡
我们在搭建好`RocketMQ`集群后,当一个集群中有多个消费者的情况下,它们是如何选择消息队列进行消费的呢?如果在项目运行过程中,有新的消费者加入或者某一个消费者宕机了,其他消费者是如何应对的呢?同
java枚举触发了Mybatis Plus的BUG折腾了我三个小时,怀疑人生
昨天用`mybatis-plus`写了一段`crud`,竟然出现了一个诡异的现象,为了对这个问题一探究竟
ThreadLocal你懂了,你还懂TransmittableThreadLocal嘛?
在上一篇文章中,给大家讲述了如何使用TransmittableThreadLocal解决线程间上下文传递的问题,今天这篇文章我们来看看Transm
你肯定不知道RocketMQ生产者是如何规避故障Broker的
在消息发送过程中,生产者从NameServer中获取到了指定Topic对应的Broker信息,在同步发送消息的代码中,如果消息发送失败,生产者默认
RocketMQ消息生产者是如何选择Broker的
在RocketMQ中为,我们创建消息生产者时,只需要设置NameServer地址,消息就能正确地发送到对应的Broker中,那么RocketMQ消
RocketMQ中生产者发消息前为啥一定要调用start()方法?
我们在使用RocketMQ发送消息时,一般都会使用DefaultMQProducer,类型的代码如下: 上述代码中,在消息发送之前调用了start
简述ServiceLoader与SPI
做过java web开发的小伙伴大多数时候都需要链接数据库,这个时候就需要配置数据库引擎`DriverClassName`参数,这样我们的java应用才能通过数据库厂商给的`Driver`与指定的数据
简述ClassLoader双亲委派模式
见名知意,ClassLoader就是类加载器,它的作用就是将我们编写的java代码加载到JVM虚拟机中。在JVM启动的时候是不会一次性把所有的java类加载进去的,而是在需要的时候才加载指定的类文件,
简述Thread的interrupt()、interrupted()及isInterrupted()的区别
在java Thread类中,我们会看到interrupt()、interrupted()及isInterrupted(),在大多数情况下,我们都不会使用到它们,但是有一个`InterruptedEx
Java是如何实现CAS的
原来CAS的实现是基于Unsafe能够获取字段在对象中的相对偏移量,并通过不断地自旋操作比较内存值是否发生变化来决定是否更改内存中的目标值。
才知道,Integer中的缓存范围竟然可以修改
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情 前言 我们在java面试中基本都遇到过一个关于Integer缓存的问题,类似下面这样: 上述代码中,打
Spring事务原理二(事务拦截逻辑)
当代理对象的方法被调用时,最终会调用到TransactionInterceptor的invoke()方法上面。对于为什么会调用到invoke()方法的小伙伴,需要取了解一下动态代理的原理,可阅读博客:
Spring事务原理一(如何织入AOP)
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情 直入主题 我们想要了解spring的事务原理,首先从注解EnableTransactionManagem
ReentrantLock加锁源码解析
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情 加锁逻辑将分成三个部分来看: 竞争锁 加入等待队列 阻塞等待 1.竞争锁 我们先从公平锁入手 上述代码可
Spring Bean的创建过程及相关扩展点
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情 首先,我们最基本的常识是从ApplicationContext入手,从AbstractApplicati
Serializable工作原理
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情 序列化:把对象转换成二进制数据,以便于持久化或网络传输 反序列化:从网络/磁盘读取读取字节序列然后转化为
RocketMq Nameserver源码分析-01
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情 上一篇RocketMq源码调试环境搭建已经讲解了如何编译、调试及配置从github上拉下来的rocket
下一页