我有点想用JDK17了

大家好呀,我是summo,JDK版本升级的非常快,现在已经到JDK20了。JDK版本虽多,但应用最广泛的还得是JDK8,正所谓“他发任他发,我用Java8”。 其实我也不太想升级JDK版本,感觉投入高,收益小,不过有一次我看到了一些使用JDK17新语法写的代码,让我改变了对升级JDK的看法,因为这些新语法我确实想用! 废话不多说,上代码! 1. 文本块…

hello hello 发布于 2024-08-12

mmap和Direct Buffer介绍

mmap基础概念…

hello hello 发布于 2024-08-12

Linux 中NIO Selector 的实现原理

概述 Selector是NIO中实现I/O多路复用的关键类。Selector实现了通过一个线程管理多个Channel,从而管理多个网络连接的目的。 Channel代表这一个网络连接通道,我们可以将Channel注册到Selector中以实现Selector对其的管理。一个Channel可以注册到多个不同的Selector中。…

hello hello 发布于 2024-08-12

Linux epoll实现原理详解

为什么要 I/O 多路复用 当需要从一个叫 r_fd 的描述符不停地读取数据,并把读到的数据写入一个叫 w_fd 的描述符时,我们可以用循环使用阻塞 I/O : while((n = read(r_fd, buf, BUF_SIZE)) > 0) if(write(w_fd, buf, n) != n) err_sys("write error");…

hello hello 发布于 2024-08-09

Java 非阻塞 IO 和异步 IO

上一篇文章介绍了 Java NIO 中 Buffer、Channel 和 Selector 的基本操作,主要是一些接口操作,比较简单。 本文将介绍 非阻塞 IO 和 异步 IO ,也就是大家耳熟能详的 NIO 和 AIO。很多初学者可能分不清楚异步和非阻塞的区别,只是在各种场合能听到 异步非阻塞 这个词。…

hello hello 发布于 2024-08-09

什么是 JVM 字节码?它是如何工作的?

作为 Java程序员都知道 Java是跨平台的语言,编译一次到处运行,这得益于 JVM字节码,这篇文章,我们将一起分析什么是 JVM字节码以及 JVM字节码是如何工作的? Java 源代码经过编译器编译后,就会生成 JVM 字节码,它是一种基于栈的低级、中立于平台的指令架构,每个字节码指令都会在 JVM…

hello hello 发布于 2024-08-09

JAVA 中原生的 socket 通信机制

当前环境 jdk == 1.8 知识点 socket 的连接处理 IO 输入、输出流的处理 请求数据格式处理 请求模型优化 场景 今天,和大家聊一下 JAVA 中的 socket 通信问题。这里采用最简单的一请求一响应模型为例,假设我们现在需要向 baidu 站点进行通信。我们用 JAVA 原生的 socket 该如何实现。 建立 socket 连接…

hello hello 发布于 2024-08-09

IO模型与Java网络编程模型

基本概念说明 用户空间与内核空间…

hello hello 发布于 2024-08-09

浅析NIO包中的Buffer、Channel 和 Selector

本文将介绍 Java NIO 中三大组件 Buffer、Channel、Selector 的使用。 本来要一起介绍 非阻塞 IO 和 JDK7 的 异步 IO 的,不过因为之前的文章真的太长了,有点影响读者阅读,所以这里将它们放到另一篇文章中进行介绍。 Buffer 一个 Buffer…

hello hello 发布于 2024-08-09

JAVA NIO 一步步构建IO多路复用的请求模型

当前环境 jdk == 1.8 知识点 nio 下 I/O 阻塞与非阻塞实现 SocketChannel 介绍 I/O 多路复用的原理 事件选择器与 SocketChannel 的关系 事件监听类型 字节缓冲 ByteBuffer 数据结构 场景 接着上一篇中的站点访问问题,如果我们需要并发访问10个不同的网站,我们该如何处理? 在上一篇中,我们使用了…

hello hello 发布于 2024-08-09
上一页 下一页