编程语言只是一种工具,它不应该成为我们技术前进之路上的壁垒。

2020年6月14日

今日思考之 20200614:java 中 null 是否对 gc 有帮助?

摘要: 先上一张图~~~ (from 《深入理解java虚拟机 第二版》Charter 8.2.1 局部变量表) 如上图中文字描述所说,null 之“奇技”在于对一些栈帧很长的方法来说,提早将前面一些不用的大对象设为 null 确实是可以加速垃圾回收的。 思考1:什么情况下,会有在调用一个耗时长的方法之前可 阅读全文

posted @ 2020-06-14 15:11 独角没有戏 阅读(387) 评论(0) 推荐(0) 编辑

2019年12月21日

分布式唯一ID生成方案对比分析 笔记

摘要: 什么时候需要分布式唯一ID? 如果你的系统还没有使用到分片策略(分库分表),那么这篇文章可以等到你用上分库分表之后再做一个参考阅读。 本文对比了几种分布式ID生成方案,目前暂时有三家厂商的方案被列入,它们分别是:百度的 UidGenerator,美团的 Leaf,滴滴(小橘)的 TinyId。 分布 阅读全文

posted @ 2019-12-21 12:59 独角没有戏 阅读(808) 评论(0) 推荐(0) 编辑

2019年12月17日

请不要再称数据库是CP或者AP——CAP的误导(短板)和它的使命

摘要: 本篇是一篇译文的笔记,原文链接为:https://blog.the-pans.com/cap/ 通过这篇文章,你应该知道,谈论某一个术语的时候,应该确切知道它的历史渊源,简单说就是它究竟是为了解决“无和有”,还是为了解决“有和优”。 看完这篇文章后,你应该知道: (1)CAP 的精确定义,很多博文都 阅读全文

posted @ 2019-12-17 14:18 独角没有戏 阅读(627) 评论(0) 推荐(0) 编辑

2019年12月10日

延迟初始化中的 双重检查模式 和 延迟占位类模式 你都用对了吗?

摘要: 开篇: 正如《Effective Java》第二版中第71条目“慎用延迟初始化”所说: 大多数的域应该正常的被初始化而不是延迟初始化。如果为了达到性能目标,或者为了破坏有害的初始化循环,而必须延迟初始化一个域,就可以使用相应的延迟初始化方法。 对于实例域,就使用双重检查模式(double-check 阅读全文

posted @ 2019-12-10 22:33 独角没有戏 阅读(398) 评论(0) 推荐(0) 编辑

2019年12月3日

redis bitmap - 用两个 setbit 操作让 bitmap 内存暴涨到 512MB(max)......

摘要: redis hash 数据结构大家通常都会用到,而 bitmap 则是一种更省内存的数据结构,可以用来快速查询、去重等。 今天用两个 setbit 命令,让 redis bitmap 内存占用飙升到 512 MB...... 设置 bitmap 前 redis 内存如下: 图1: 操作 bitmap 阅读全文

posted @ 2019-12-03 01:22 独角没有戏 阅读(2712) 评论(0) 推荐(0) 编辑

2019年11月11日

RabbitMQ 使用 Policies HTTP API 绑定和解绑 DLX

摘要: 需求: exchange 和 queue 都能重复声明不会影响已有数据,但是 DLX 只能在 queue 第一次创建的时候一起定义,否则运行时就需要通过 WEB UI 或者 rabbitmqctl set_policy 命令行指令来添加 DLX。如果对已经存在的 queue 使用 java API 阅读全文

posted @ 2019-11-11 14:09 独角没有戏 阅读(552) 评论(0) 推荐(0) 编辑

2019年11月10日

spring boot 自动装配的实现原理和骚操作,不同版本实现细节,debug 到裂开......

摘要: 开篇说明: 注解本身并没有什么实际的功能(非要说标记也是一个“实际”的功能的话,也可以算吧),隐藏在背后的注解处理器才是实现注解机制的核心。本篇将从这两个层面出发探索 spring boot 自动装配的秘密,并使用 spring boot 的自动装配机制来实现自动装配。 本次代码已经放到 githu 阅读全文

posted @ 2019-11-10 12:55 独角没有戏 阅读(1161) 评论(0) 推荐(0) 编辑

2019年11月7日

netty 学习笔记三:大跃进,使用 netty 实现 IM 即时通讯系统

摘要: 前言: 本文成文基于掘金小册《Netty 入门与实战:仿写微信 IM 即时通讯系统》:https://juejin.im/book/5b4bc28bf265da0f60130116 掘金上有些小册还是不错,这篇 netty 也是我18年买了,19年再看才能大部分吸收的内容(之前就是菜啊,还能是什么) 阅读全文

posted @ 2019-11-07 13:55 独角没有戏 阅读(3814) 评论(0) 推荐(0) 编辑

2019年10月8日

一道 Java 方法传值面试题——Java方法传值的值传递概念和效果 + Integer 缓存机制 + 反射修改 private final 域

摘要: 原题代码如下: 1 public void test1() { 2 int a = 1, b = 2; 3 System.out.println("before: a=" + a + ", b=" + b); 4 swap1(a, b); 5 System.out.println("after: a 阅读全文

posted @ 2019-10-08 12:54 独角没有戏 阅读(227) 评论(0) 推荐(0) 编辑

2019年10月5日

netty 学习笔记二:服务端、客户端启动流程

摘要: 本节笔记承接上一节《netty 学习笔记一》,介绍 netty 服务端、客户端启动流程中关注的一些要素。 服务端启动流程代码:https://github.com/christmad/code-share/blob/master/share-netty/src/main/java/code.shar 阅读全文

posted @ 2019-10-05 20:39 独角没有戏 阅读(513) 评论(0) 推荐(0) 编辑

导航