从引用聊一聊 Java 垃圾回收
对象是 Java 世界的一等公民,所有的对象都是引用类型。除了 8 种基本的数据类型之外,其他的都是对象。 JVM 和垃圾回收 在开始讨论引用之前,首先需要了解一下 JVM 和垃圾回收。Java 与 C 语言等不同,C 语言代码经过编译器编...
对象是 Java 世界的一等公民,所有的对象都是引用类型。除了 8 种基本的数据类型之外,其他的都是对象。 JVM 和垃圾回收 在开始讨论引用之前,首先需要了解一下 JVM 和垃圾回收。Java 与 C 语言等不同,C 语言代码经过编译器编...
程序总会出错,出错了就需要处理。Java 中提供了很完备的异常处理机制,可以根据自己需要进行定制。 Java 按照问题的严重程度进行分类,分成 Error和 Exception。Exception 又可以分成 CheckedExceptio...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
上篇文章已经讲过了 RingBuffer 了, RingBuffer 是消息的容器,但是 Disruptor 中最复杂的部分在于如何并发控制消息的增加和消费,而这部分由 Senquencer 来完成。 这篇文章基于 Disruptor 官方...
日志对大型系统很重要,在排查系统问题的时候,主要依靠日志。 日志很重要,但又能不影响程序的性能,比如一个接口的响应时间本来是 50 ms,结果加了日志之后,变成了 100 ms,这肯定没办法接受。 让日志不影响系统性能的方式有以下的思路: ...
日志对大型系统很重要,在排查系统问题的时候,主要依靠日志。 日志很重要,但又能不影响程序的性能,比如一个接口的响应时间本来是 50 ms,结果加了日志之后,变成了 100 ms,这肯定没办法接受。 让日志不影响系统性能的方式有以下的思路: ...
Disruptor 是一个开源并且高效的生产者-消费者框架,很难直接解释这个框架是做什么的,但是可以把这个框架理解成 Java 中的 BlockingQueue。这样理解起来是不是轻松多了,这就是一个生产者-消费者队列,只不过它的性能要比 ...
很多人对 <? extends T> 和 <? super T> 这两个泛型通配符的用法不清楚,经常会出现理解无法,下面来看一下到底如何正确的使用这个组合。 <? extends T> 先来看一段代码,以下的这...
文件拷贝是一个很常见的需求,无论是在程序中,还是日常使用计算机。在 Java 中,经常需要实现文件拷贝,而且有一种叫做零拷贝的技术,拷贝文件的效率非常高,在这篇文章中,我来来看一下零拷贝技术是怎么实现的。 文件拷贝 Java 中文件拷贝的方...
这是一篇译文,虽然写这篇文章时, Facebook 用户才增长到 5 亿,但是文章依然值得参考,毕竟即使在如今,用户能到 5 亿的应用依然凤毛麟角。 在 2010 年,Facebook 达到了一个里程碑,用户数超过了 5 亿。 PS: 这个...
最近排查了一个问题,是关于连接池的,服务的整体情况如下: A 服务是向外提供的 Http 服务,然后 A 服务中会调用 B 和 C,B 和 C 是两个 RPC 服务。 A 服务中通过 B 和 C 提供的 Client 来分别访问这两个服务。...