疯狂小兵

向往自由,追求卓越! 阅读

Spring源码学习 - Scanner的工作原理

Spring 自带的类扫描器为ClassPathBeanDefinitionScanner,在使用注解@ComponentScan,或者xml 配置<context:component-scan/>时都会调用该扫描器扫描指定的目标类。 ClassPathBeanDefinitionScanner最重要的方法是doScan,通过该方法完成 BeanDefinition 的生成和注...

Spring源码学习 - bean的名称的生成方式

spring bean name 生成类 都继承自BeanNameGenerator接口,外部通过该接口方法BeanNameGenerator#generateBeanName获取生成的 bean 名称 AnnotationBeanNameGenerator 注解@Component,@Repository,@Service,@Controller,@Named,@ManagedBea...

java源码学习之 Boolean 和 Byte

Bool 继承体系 实现接口: java.io.Serializable java.lang.Comparable,所有数值类型都实现该接口,可对值进行比较 内部数据结构 boolean final 修饰的常量 常量值设置 TRUE: new Boolean(true); FALSE:new Boolean(false); 占用字节数为:2 核心方法和类 方法 ...

深入分析 Volatile 的实现原理

Volatile 的官方定义 Java 语言规范第三版中对 volatile 的定义如下: java 编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。Java 语言提供了 volatile,在某些情况下比锁更加方便。如果一个字段被声明成 volatile,java 线程内存模型确保所有线程看到这个变量的值是一致的。 什么情况下可...

java各版本新特性

java各版本新特性

java13 Dynamic CDS Archives 动态 CDS 归档 ZGC: Uncommit Unused Memory ZGC 可以将未使用的堆内存返回给操作系统 Reimplement the Legacy Socket API 重新实现了 Socket 接口的逻辑。原来的老逻辑还存在。通过指定-Djdk.net.u...

java源码学习之Short

继承体系 继承自: java.lang.Number,主要是定义各个数值类型间的转换方法 实现接口: java.io.Serializable java.lang.Comparable,所有数值类型都实现该接口,可对值进行比较 内部数据结构 基本类型:short final 修饰的常量 常量值设置 最大值: 2^15-1 最小值: -2^15 BIT 大小为:16 占用...

java源码学习之Integer

继承体系 继承自: java.lang.Number,主要是定义各个数值类型间的转换方法 实现接口: java.io.Serializable java.lang.Comparable,所有数值类型都实现该接口,可对值进行比较 内部数据结构 基本类型: int final 修饰的常量值。 常量值设置 最大值: 2^31-1 最小值:-2^31 表示 Bit 的位数size:...

常见 MQ 的比较 - Kafka、RocketMQ、RabbitMQ的优劣势比较

MQ 的作用 解耦 最终一致性 广播 生产者和消费者互相不用关心。 错峰和流控 秒杀场景 kafka、RocketMq、RabbitMq 比较 特性 kafka RocketMq RabbitMq ActiveMq 开发语言 sca...

Docker技术入门与实战 - 使用 dockerfile定制镜像

Docker检查 dockerfile 指令 FROM 指定基础镜像。所谓定制镜像,就是在一个基础镜像上进行定制。所以需要通过 FROM指定基础镜像,且必须是第一条指令 RUN RUN 指令用来执行命令行命令 shell格式。run exec 格式。 run [‘可执行文件’,’参数1’,’参数2’] 每个 RUN 命令执行完后都会提交一个 commit,产生一层...

I love log 读书笔记

原书作者 Jay Kreps: kafka 的创始人,Linkedin 的首席科学家 什么是log? 最常见的log 2019-07-29 11:04:34.688 - - [INFO] main RequestMappingHandlerMapping Mapped "{[/api/thrift/getAllBlockedList],methods=[GET]}" onto p...

TOP