Wesley13 Wesley13
3年前
jdk动态代理和cglib动态代理底层实现原理详细解析(cglib动态代理篇)
  代理模式是一种很常见的模式,本文主要分析cglib动态代理的过程1\.举例使用cglib代理需要引入两个包,maven的话包引入如下<!https://mvnrepository.com/artifact/cglib/cglib<dependency
Easter79 Easter79
3年前
tinker接入
对于热修复无非就是两大类,一类是tencent代表的classloader模式的,另一类是阿里系代表的底层方面替换。下面以本人的经验介绍下微信的tinker接入:  命令行接入方式;gradle接入方式1\.核心库引入,在你应用的app模块下build.gradle文件加入//tinkerhotfix//可选,用于生
灯灯灯灯 灯灯灯灯
4年前
「JDK——ArrayList源码」超强解析,图文详解
ArrayList源码解析简介ArrayList是Java集合框架中非常常用的一种数据结构。继承自AbstractList,实现了List接口。底层基于数组来实现动态容量大小的控制,允许null值的存在。同时还实现了RandomAccess、Cloneable、Serializable接口,支持快速访问、复制、序列化操作。了解数组数组简单来说就是将所有的
Wesley13 Wesley13
3年前
java架构之路(多线程)AQS之ReetrantLock显示锁的使用和底层源码解读
说完了我们的synchronized,这次我们来说说我们的显示锁ReetrantLock。java架构之路(多线程)synchronized详解以及锁的膨胀升级过程(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUxN
如何让Java编译器帮你写代码
本文结合京东监控埋点场景,对解决样板代码的技术选型方案进行分析,给出最终解决方案后,结合理论和实践进一步展开。通过关注文中的技术分析过程和技术场景,读者可收获一种样板代码思想过程和解决思路,并对Java编译器底层有初步了解。
Stella981 Stella981
3年前
Kurento 之 WebRTC 统计
介绍WebRTC流(音频,视频或数据)可能丢失,并且经历不同数量的网络延迟。为了评估WebRTC应用程序的性能,可能需要能够监视底层网络和媒体管道的WebRTC功能。为此,Kurento为服务器端(KurentoMediaServer,KMS)提供了WebRTC统计数据收集。此功能的实现遵循W3CWebRTC的统计API(htt
Stella981 Stella981
3年前
Spark Streaming连接Kafka的两种方式 direct 跟receiver 方式接收数据的区别
Receiver是使用Kafka的高层次ConsumerAPI来实现的。Receiver从Kafka中获取的数据都是存储在SparkExecutor的内存中的,然后SparkStreaming启动的job会去处理那些数据。然而,在默认的配置下,这种方式可能会因为底层的失败而丢失数据。如果要启用高可靠机制,让数据零丢失,就必须启用Spark
Wesley13 Wesley13
3年前
MySQL索引规则
InnoDB底层存储结构为B树,B树的每个节点对应innodb的一个page,page大小是固定的,一般设为16k。其中非叶子节点只有键值,叶子节点包含完成数据。!(https://oscimg.oschina.net/oscnet/fafbd5942eb12664d41e90a4907dec223b2.png)索引(Index)是帮助