并发与响应式编程
未读
用 Project Reactor 的 bufferTimeout 代替 BufferTrigger 做高并发计数聚合
用 Project Reactor 的 bufferTimeout 代替 BufferTrigger 做高并发计数聚合 记录一次在计数服务里做「粉丝数聚合写」的实现。原教程用快手的 BufferTrigger,我改用了 Spring Boot 自带的 Project Reactor,零新增依赖。 背
关系型数据库
未读
MySQL常见面试题
IO 与网络编程
未读
Java NIO 比传统 IO 强在哪里?
本文深入探讨了Java NIO与传统IO的差异,主要论点包括:NIO通过非阻塞I/O和多路复用,提高了网络传输的性能和可伸缩性;在文件操作方面,NIO的通道和缓冲区机制相比传统IO的字节流或字符流并没有显著优势;零拷贝技术进一步提升了NIO的性能。文章通过实际测试验证了NIO在处理大量并发连接时比传统IO更高效,特别是在网络传输场景中。
IO 与网络编程
未读
Java 缓冲流:Java IO 的读写效率有了质的飞升
本文探讨了Java缓冲流对IO读写效率的提升。通过在内存中创建缓冲区,Java的BufferedInputStream和BufferedOutputStream实现了字节流的缓冲,而BufferedReader和BufferedWriter实现了字符流的缓冲。缓冲流减少了系统调用次数,降低了磁盘读写次数,提高了数据传输效率。实验表明,使用缓冲流进行大文件复制比普通流快得多。此外,还详细解释了字节缓冲流的工作原理,包括缓冲区的填充、数据的读取和写入,以及字符缓冲流的特有方法如readLine和newLine。
Java 高级特性
未读
Java字符串底层实现改变的原因
Java中`String`的底层从`char[]`转向`byte[]`是为了优化内存使用和增强编码灵活性。早期设计导致内存浪费和编码转换开销,而Java 9引入的紧凑字符串通过使用`byte[]`和编码标识符解决了这些问题。这一转变显著提升了内存效率,减少了GC工作量,并可能提高CPU缓存命中率,同时对开发者透明,保持了API的稳定性。