Reactor反应器模式是高性能网络编程在设计和架构层面的基础模式。为什么呢?只有彻底了解反应器的原理,才能真正构建好高性能的网络应用,才能轻松地学习和掌握Netty框架。同...
Reactor模型是典型的事件驱动模型。在网络编程中,所谓的事件当然就是read、write、bind、connect、close等这些动作了。Reactor模型的实现有很多...
目录 引子 布隆过滤器介绍产生的契机设计思想优缺点与用途假阳性率的计算 Guava中的布隆过滤器BloomFilter类的成员属性BloomFilter的构造估计最优m值和k...
前言 这段提示是不是很眼熟?好像每次启动项目都会报一下,但似乎又没啥影响。但是,某天多引一个库后,项目就真的再也起不来了...... 好吧,是时候正面Java中混乱的日志系统...
3.10 使用线程池时候当程序结束时候记得调用shutdown关闭线程池 日常开发中为了便于线程的有效复用,线程池是经常会被用的工具,然而线程池使用完后如果不调用shutdo...
一、前言 4月份报名参加了极客时间举办的第一期「算法训练营」,两天线下大课,一个月线上课。 在做线上课程作业的过程中,做了一些总结,在这里分享一下,希望能够帮助到需要的同学,...
上接:thrift 入门(1/2)PS:我也不想拆,但是放一起文章太长无法发布。。。 四、thrift 入门 4.1 小试牛刀 首先,我们还是先用 thrift 实现一下前文...
一、thrift 定义 “什么是 thrift” 这个问题,我曾问过别人,也有人拿来问过我。无论是官网、百度、谷歌还是博客,得到的答案都差不多,挨个补齐定语无非就是: thr...
感谢你的认真阅读,我说下我的理解哈:
1、常量池本身就是个缓存策略,可以去了解一下“常量池”技术。主观上可以简单粗暴的把常量池理解为一个key-value数组,key是字面量,value是常量的实际存储位置或引用。在demo9中,当定义了一个 s1="hello"之后,常量池就多了一个<"hello","字符串hello的真实内存地址">,当通过反射直接修改了内存中的数据后,常量池中的key还是“hello”没变,变的是value地址里的数据。所以,对s1做完修改后,判断 `s1=="hello"` 时,"hello"对应的地址还是s1的地址,结果自然是true。而判断 `s1=="Hello"` 时,常量池里面是没有key=“Hello”的这个键值对的,就会单独分配个空间出来,用于存放“Hello”常量。
2、赋值操作是在这一行做的:`value_s1[0]='H';`,其实就是获得了String字符串内部字符数组的操作权限,直接给改了数据。
Java-String:从初始化开始的发散思考String 的创建 一般来说,Java 创建 String 对象有2种方式: 字面值创建。String s1 = "hello"; new创建。String s2 = ne...