聊聊springboot elasticsearch autoconfigure

2019-04-17
阅读 8 分钟
3.1k
spring-boot-autoconfigure-2.1.4.RELEASE-sources.jar!/org/springframework/boot/autoconfigure/data/elasticsearch/ElasticsearchAutoConfiguration.java

聊聊spring tx的EnableTransactionManagement

2019-04-16
阅读 26 分钟
4.3k
spring-tx-5.1.6.RELEASE-sources.jar!/org/springframework/transaction/annotation/EnableTransactionManagement.java

聊聊spring data jpa的JpaQueryLookupStrategy

2019-04-15
阅读 12 分钟
3.1k
spring-data-commons-2.1.6.RELEASE-sources.jar!/org/springframework/data/repository/query/QueryLookupStrategy.java

聊聊spring data jpa的SimpleJpaRepository

2019-04-14
阅读 14 分钟
4.5k
spring-data-jpa-2.1.6.RELEASE-sources.jar!/org/springframework/data/jpa/repository/support/JpaRepositoryImplementation.java

聊聊spring data jpa的OpenSessionInView

2019-04-13
阅读 9 分钟
4.2k
Open Session In View简称OSIV,是为了解决在mvc的controller中使用了hibernate的lazy load的属性时没有session抛出的LazyInitializationException异常;对hibernate来说ToMany关系默认是延迟加载,而ToOne关系则默认是立即加载

聊聊rsocket load balancer的Ewma

2019-04-12
阅读 6 分钟
2.6k
序 本文主要研究一下rsocket load balancer的Ewma Moving Average SMA SMA(Simple Moving Average),即简单移动平均,其公式如下: {代码...} 这里的Pt到为Pt-n+1为最近的n个数据 WMA WMA(Weighted Moving Average),即加权移动平均,其公式如下: {代码...} WMA会给最近的n个数据加上权重,其中这些权重加起来和为1,一...

rsocket-java小试牛刀

2019-04-11
阅读 9 分钟
3.9k
RSocket接口继承了Availability(定义double availability()方法)及Closeable(定义了Mono<Void> onClose()方法)接口

Swagger2 WebFlux小试牛刀

2019-04-10
阅读 2 分钟
6.7k
swagger.version目前是3.0.0-SNAPSHOT,因而没有发布到maven官方仓库里头,需要从jcenter-snapshots中拉取

聊聊G1 GC的String Deduplication

2019-04-09
阅读 2 分钟
3.6k
具体的实现大致是JVM会记录char[]的weak reference及hash value,当找到一个hash code相同的String时,就会挨个char进行比较,当所有都match,那么其中一个String就会修改指针指向另一个String的char[],这样前者的char[]就可以被回收

聊聊jvm的StringTable及SymbolTable

2019-04-08
阅读 6 分钟
4.3k
在java7的时候将字符串常量池移到java heap,字符串常量池被限制在整个应用的堆内存中,在运行时调用String.intern()增加字符串常量不会使永久代OOM了。使用-XX:StringTableSize可以设置StringTableSize,默认是65536java8的时候去除PermGen,将其中的方法区移到non-heap中的Metaspace,因而SymbolTable也跟随Metaspace...

聊聊Java 9的Compact Strings

2019-04-07
阅读 18 分钟
3k
Java 6引入了Compressed Strings,对于one byte per character使用byte[],对于two bytes per character继续使用char[];之前可以使用-XX:+UseCompressedStrings来开启,不过在java7被废弃了,然后在java8被移除

聊聊java String的intern

2019-04-06
阅读 14 分钟
2.7k
当调用intern方法时,如果常量池没有一个equals此String对象的字符串,将此String对象添加到池中,并返回此String对象的引用(即intern方法返回指向heap中的此String对象引用)

聊聊reactor-netty的AccessLogHandlerH2

2019-04-05
阅读 4 分钟
1.8k
reactor-netty-0.8.5.RELEASE-sources.jar!/reactor/netty/http/server/AccessLogHandlerH2.java

聊聊reactor-netty的AccessLog

2019-04-04
阅读 11 分钟
3.4k
对于使用undertow的spring boot应用,可以server.undertow.accesslog.enabled=true来开启

聊聊netty的ResourceLeakDetector

2019-04-03
阅读 34 分钟
4.1k
netty-common-4.1.33.Final-sources.jar!/io/netty/util/ResourceLeakDetector.java

聊聊netty的maxDirectMemory

2019-04-02
阅读 15 分钟
4.6k
netty-common-4.1.33.Final-sources.jar!/io/netty/util/internal/PlatformDependent.java

聊聊jvm的Stack Memory

2019-04-01
阅读 30 分钟
2.9k
序 本文主要研究一下jvm的Stack Memory Virtual Machine Stack 每个jvm线程都有一个私有的Virtual Machine Stack,它在线程同时被创建 该stack主要用于存储frames,即所谓的stack frames 每个方法在执行的时候都会创建一个stack frame,用于存储方法的局部变量、返回值、Operand stack等 Stack Memory Stack Memory是执...

聊聊jvm的CompressedClassSpace

2019-03-31
阅读 8 分钟
4.2k
java8移除了permanent generation,然后class metadata存储在native memory中,其大小默认是不受限的,可以通过-XX:MaxMetaspaceSize来限制

聊聊jvm的Code Cache

2019-03-30
阅读 8 分钟
6.4k
JVM生成的native code存放的内存空间称之为Code Cache;JIT编译、JNI等都会编译代码到native code,其中JIT生成的native code占用了Code Cache的绝大部分空间

聊聊openjdk的BufferPoolMXBean

2019-03-29
阅读 12 分钟
2.1k
序 本文主要研究一下openjdk的BufferPoolMXBean PlatformManagedObject java.management/java/lang/management/PlatformManagedObject.java {代码...} PlatformManagedObject接口定义了getObjectName方法用于返回ObjectName BufferPoolMXBean java.management/java/lang/management/BufferPoolMXBean.java {代码...} Buf...

聊聊jvm的-XX:MaxDirectMemorySize

2019-03-28
阅读 12 分钟
8.4k
-XX:MaxDirectMemorySize=size用于设置New I/O(java.nio) direct-buffer allocations的最大大小,size的单位可以使用k/K、m/M、g/G;如果没有设置该参数则默认值为0,意味着JVM自己自动给NIO direct-buffer allocations选择最大大小

聊聊openjdk的jhsdb工具

2019-03-27
阅读 13 分钟
5.9k
在java9之前,JAVA_HOME/lib目录下有个sa-jdi.jar,可以通过如上命令启动HSDB(图形界面)及CLHSDB(命令行)

聊聊openjdk的jvm.cfg文件

2019-03-26
阅读 2 分钟
3k
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/jvm.cfg

聊聊HotSpot VM的Native Memory Tracking

2019-03-25
阅读 4 分钟
5k
使用-XX:NativeMemoryTracking=summary可以用于开启NMT,其中该值默认为off,可以设置为summary或者detail来开启;开启的话,大概会增加5%-10%的性能消耗

聊聊GarbageCollectionNotificationInfo

2019-03-24
阅读 18 分钟
2.5k
CompositeData接口定义了getCompositeType、get、getAll、containsKey、containsValue、values、equals、hashCode、toString方法

聊聊Garbage Collector的SATB

2019-03-23
阅读 2 分钟
2.3k
Snapshot-at-the-beginning concurrent mark包括Init Mark(Pause)、Concurrent Mark、Final Mark(Pause)

聊聊ShenandoahGC的Brooks Pointers

2019-03-22
阅读 3 分钟
1.4k
Snapshot-at-the-beginning concurrent mark包括Init Mark(Pause)、Concurrent Mark、Final Mark(Pause)

JDK12 ShenandoahGC小试牛刀

2019-03-21
阅读 18 分钟
4.1k
跟ZGC一样也是面向low-pause-time的垃圾收集器,不过ZGC是基于colored pointers来实现,而Shenandoah GC是基于brooks pointers来实现

Java12的新特性

2019-03-20
阅读 9 分钟
14.1k
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java18的新特性Java19的新特性Java20的新特性Java21的新特性Java22的新特性序本文主要讲述一下Java12的新特性版...

聊聊flink的KvStateRegistryGateway

2019-03-19
阅读 12 分钟
2k
flink-1.7.2/flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/KvStateRegistryGateway.java