July 28, 2021
Java
IO
NIO核心组件 - ChannelSocketChannel 和 ServerSocketChannel学习此部分可以对比Socket和ServerSocket
服务端代码
12345678910111213141516171819202122232425262728293031323334 ...
Read more
July 28, 2021
Java
IO
多路复用器select1、select选择器会告诉客户端哪些连接有数据要读取,但是读取的操作还是用户自己触发的,这种叫做「同步」
123456789101112131415161718192021222324252627282930313233343536373839404142434445 ...
Read more
July 28, 2021
Java
IO
Buffer 读写NIO之BufferBuffer作为NIO三大核心组件之一,本质上是一块可以写入数据,以及从中读取数据的内存,实际上也是一个byte[]数据,只是在NIO中被封装成了NIO Buffer对象并提供了一组方法来访问这个内存块。
下面是一个简单的Demo123456789101 ...
Read more
July 28, 2021
Java
IO
Java NIO
Java NIO 对于Java BIO的优化
Java 非阻塞IO
及时不使用线程池,也可以处理多个客户端请求
12345678910111213141516171819202122232425262728293031323334353637383940public s ...
Read more
July 28, 2021
Java
IO
传统的BIOSocket 和 ServerSocket1234567891011121314151617public static void main(String[] args) throws IOException { ServerSocket serverSock ...
Read more
July 28, 2021
JVM
jstatjstat是一个简单的实用工具,在JDK中存在,用于提供与JVM性能相关的统计信息,例如垃圾收集,编译活动。 jstat的主要优势在于,它可以在运行JVM且无需任何先决条件的情况下动态捕获这些指标。 这是什么意思? 例如,如果要捕获与垃圾回收相关的统计信息,则需要在启动JVM之前传 ...
Read more
July 28, 2021
JVM
jstackjstack 功能主要分为两个功能:
a. 针对活着的进程做本地的或远程的线程dump;
b. 针对core文件做线程dump。
jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定 ...
Read more
July 28, 2021
JVM
类加载机制1. 类加载机制具体流程
Java 的类加载过程可以分为 5 个阶段:载入、验证、准备、解析和初始化。这 5 个阶段一般是顺序发生的,但在动态绑定的情况下,解析阶段发生在初始化阶段之后。
1.1 Loading(载入)
JVM 在该阶段的主要目的是将字节码从不同的数据源(可能是 ...
Read more
July 28, 2021
JVM
jmap命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。
jmap -heap pid123456789101112131415161718192021222 ...
Read more
July 28, 2021
Spring
Spring Bean 循环依赖为什么会存在循环依赖
如上图👆所示,A对象的一个属性是B,B对象的一个属性是A,而Spring中的bean默认情况下都是单例的,所以这两个Bean就产生了循环依赖的问题!
那么循环依赖的问题出现在什么情况呢
想一下属性赋值的方式有几种呢?
构造器赋 ...
Read more