Code to 60 
  • 首页
  • 零碎思索记录
  • 编程语言实践
  • 开源项目学习
  • 书籍论文学习
  • 美食旅行运动
  • 关于
  •     
应用默认编码不对的问题定位
应用默认编码不对的问题定位问题描述某日线上环境报警,分析后发现是java.lang.String.getBytes()方法在不同环境上表现出来的结果是不一样的。 JDK的String.getBytes()默认采用什么编码看下JDK的代码不难发现:先是靠Charset.defaultCharset()编码,如果不行靠ISO-8859-1兜底,再不行就直接应用退出了。 Charset.default
 2020-04-24
program-language-practice
java
再写一篇tps限流
再写一篇tps限流各种限流算法的称呼网上有很多文章介绍限流算法,但是对于这些算法的称呼与描述也是有点难以理解。不管那么多了。我先按我理解的维度梳理一下。主要维度是:是正向计数还是反向计数。是定点(时间点)重置当前计数器还是每次接口调用时按量调整当前还剩的可用请求数。 通俗理解正向计数且定点(时间点)重置的流程 +-------------------
 2020-04-24
program-language-practice
分布式系统
fastjosn在低版本丢字段问题
简单的说:对于java bean中有字段类似pId这种写法,特征是第一个字母小写,第二个字母大写,在eclipse中生成的getter setter方法是 getpId, setpId。在低版本的fastjson,比如1.1.41中将java bean序列化成json字符串的时候,会丢掉pId这个字段。 使用高版本,比如1.2.46,就不会有这个问题。那么,这到底是谁的锅?先说结论,fastjs
 2020-04-24
program-language-practice
java
uReplicator实现分析
MirrorMakerWorker分析是整个同步机制的主入口,主要组织的逻辑有: 配置数据的传入与处理,ConsumerConfig对象的构建 度量对象的准备,定时上报的度量数据收集线程的定义与启动 CompactConsumerFetcherManager实例的创建与startConnections 根据fetchNum创建KafkaConnector实例,KafkaConnector实例中会
 2020-04-24
opensource-code-study
java kafka1.0源码分析
log4j2异步日志配置及官方文档的问题澄清
配置及demo方法一全部打开加启动参数 -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector启动参数的这个key有点说法:按官方文档说明http://logging.apache.org/log4j/2.x/manual/async.html#AllAsync key是-Dlog4
 2020-04-24
program-language-practice
java log4j2
log4j2用asyncRoot配置异步日志是如何使用disruptor
用asyncRoot配置对应的对接disruptor类是AsyncLoggerConfigDisruptor,用Log4jContextSelector启动参数配置全局异步的对应的对接disruptor类是AsyncLoggerDisruptor。下面分析的是AsyncLoggerConfigDisruptor disruptor的创建与启动需要的部件实现AsyncLoggerConfigDi
 2020-04-24
program-language-practice
java log4j2
log4j2如何使用disruptor
与 log4j2用asyncRoot配置异步日志是如何使用disruptor差异有几个: 给disruptor实例的EventFactory不同此处EventFactory采用的是RingBufferLogEvent.FACTORY,newInstance逻辑大致是: public RingBufferLogEvent newInstance() { final RingBu
 2020-04-24
program-language-practice
java log4j2
函数调用与汇编指令的关系
写一段简单的C代码分析其背后与汇编指令的关系最近在看hotspot的代码,hotspot解释器会将字节码翻译成汇编指令,所以要先复习下这个基础这篇讲的太泛了,看 这篇吧,是一步一步有图对应的 C代码#include <stdio.h> int main(int args, char** argv){ printf("%d", add1(100, 200, 500, 60
 2020-04-24
program-language-practice
cpp
C++中将对象this转换成unsigned char指针
示例程序 // ---CodeBlob.h--- #ifndef CODEBLOB_H_ #define CODEBLOB_H_ class CodeBlob { private: const char* _name; int _size; public: CodeBlob(); void printName(); void printSize();
 2020-04-24
program-language-practice
cpp
虚拟机解释器与bytecode对接
心头一直有个疑问,jvm虚拟是如何对接class中的字节码的?或者说在未进入JIT优化阶段时,解释器是如何对接的? 大概阐述hotspot通过C++代码在堆上申请一块空间,向里面填充一组指令,然后把这块空间当成一个函数,通过函数指针去调用刚生成的代码。是不是666,是不是哇超酷毙了。 关键代码generate_call_stub address generate_call_stub(addre
 2020-04-24
opensource-code-study
java hotspot源码分析
1…7891011…13

搜索

Hexo Fluid