总结一些计算机常用的原则

计算机常用的原则 在写代码的时候我们经常会有一些体会和经验所得,这些经验所得其实老早被之前的大神归纳成为原则。最近这一年我就一直在收集各种原则

重新学习英语语法

背景 感觉自己对英语还是有很多的欠缺,所以前一段时间学习了一些英语相关的语法,其实很多都是初中要学的东西但是自己当时一点都不上心,压根就没从老

About me

About me 欢迎!我是咸糖。这是我的个人网站,我在其中博客是我在日常生活中学到的东西或思考,希望你能喜欢它。 我在这里分享我学到的东西,如果给你造成了

分布式的令牌桶算法的实现

什么是令牌桶算法? 令牌桶算法是一种限流算法,他与漏桶算法的实现是一种相反的实现。 漏桶算法是按照一定频率的速率进行漏水,然后对于我们的请求就可

实现一个AtomicInteger

什么是 AtomicInteger AtomicInteger 顾名思义是一个具有原子化操作的 Integer,与普通的 Integer 的区别是 AtomicInteger 采用一个 CAS 的方式使 Integer 的自增等操作变成原子化操作。 实现的之前需要了

GC root 在哪里?

什么是GC Root 首先我们知道标记算法,JVM 的标记算法我们可以了解为一个可达性算法,所以所有的可达性算法都会有起点,那么这个起点就是GC Root

什么是 Minor GC/Major GC

什么是 Minor GC/Major GC 首先我们先科普一下JVM 经典的堆布局: 对于经典的 JVM heap 布局,有两个区域比较清晰,首先是Young 区,一般会来存放年轻的对象或者刚被

漏桶算法的设计与实现

什么是漏斗算法? 漏斗算法顾名思义采用一个漏斗来对流量进行限制。 因为漏斗下面有孔,所以会定时的漏水下去,然后我们可以将流量想象为从上边落入漏斗

剑指offer

No2 单例模式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 class No2TwiceCheckSingleton { private volatile static No2TwiceCheckSingleton instance = null; private static final Object sybObj = new Object(); // 一定记住要私有化构造器,不然人家还是能够创建 private No2TwiceCheckSingleton() { }

单例模式

单例模式是什么? 单例模式,也叫单子模式,是一种常用的软件设计模式,属于创建型模式的一种。 在这个设计模式中,单例对象的类必须保证只有一个实例存

TCP 针对面试学习

什么是 TCP TCP 是一个全双工面向字节流的基于 IP 协议的协议。 TCP 端到端的准确传输。 对于每一个字节进行确认 对于恶劣的网络情况的处理 超时重传 拥塞控制 效率提

Actor 如何处理阻塞消息

观察了一下业务的代码中发现在 Actor 中采用了很多 import scala.concurrent.ExecutionContext.Implicits.global 来作为 Actor 内部的执行 Future 的线程池,之前觉得好像也没啥问题。 但是在看完 akka 源码后发现好像有些不妥。 简单

Akka 源码解析

1 2 3 4 5 6 7 8 9 10 11 12 13 14 object Main1 extends App { val system = ActorSystem("HelloSystem") val jazzListener = system.actorOf(Props[Listener]) val musicListener = system.actorOf(Props[Listener]) system.eventStream.subscribe(jazzListener, classOf[Jazz]) // jazzListener 订阅 Jazz 事件 system.eventStream.subscribe(musicListener, classOf[AllKindsOfMusic]) // musicListener 订阅 AllKindsOfMusic 以及它的子类 事件 // 只有 musicListener 接收到这个事件 system.eventStream.publish(Electronic("Parov Stelar")) // jazzListener

How to learn scala

背景: 刚来到以scala为技术栈的公司的时候,配置了半天环境,然后终于将项目起了起来,发现里面的代码很奇怪,没有任何循环,数据的操作是一个函

AES 需要限制 SEED 长度

写了一个工具类用来加密解密数据库的 app 字段 本地环境运行单测什么都没有任何问题,但是一到生产环境就出现 BUG。 这个的原因是因为线上环境没有支持 AES