diff --git a/docs/notes/Java 虚拟机.md b/docs/notes/Java 虚拟机.md index b756cc00..fafe8242 100644 --- a/docs/notes/Java 虚拟机.md +++ b/docs/notes/Java 虚拟机.md @@ -28,6 +28,8 @@ +本文大部分内容参考 **周志明《深入理解 Java 虚拟机》** ,想要深入学习请看原书。 + # 一、运行时数据区域

@@ -38,11 +40,11 @@ ## Java 虚拟机栈 -每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。 +每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。

-可以通过 -Xss 这个虚拟机参数来指定每个线程的 Java 虚拟机栈内存大小: +可以通过 -Xss 这个虚拟机参数来指定每个线程的 Java 虚拟机栈内存大小:, ```java java -Xss512M HackTheJava diff --git a/docs/notes/Socket.md b/docs/notes/Socket.md index 7cb4614f..35d8d522 100644 --- a/docs/notes/Socket.md +++ b/docs/notes/Socket.md @@ -38,7 +38,7 @@ Unix 有五种 I/O 模型: 应用进程被阻塞,直到数据从内核缓冲区复制到应用进程缓冲区中才返回。 -应该注意到,在阻塞的过程中,其它应用进程还可以执行,因此阻塞不意味着整个操作系统都被阻塞。因为其它应用进程还可以执行,所以不消耗 CPU 时间,这种模型的 CPU 利用率效率会比较高。 +应该注意到,在阻塞的过程中,其它应用进程还可以执行,因此阻塞不意味着整个操作系统都被阻塞。因为其它应用进程还可以执行,所以不消耗 CPU 时间,这种模型的 CPU 利用率会比较高。 下图中,recvfrom() 用于接收 Socket 传来的数据,并复制到应用进程的缓冲区 buf 中。这里把 recvfrom() 当成系统调用。 diff --git a/notes/Java 虚拟机.md b/notes/Java 虚拟机.md index 88c88fac..c1f257e3 100644 --- a/notes/Java 虚拟机.md +++ b/notes/Java 虚拟机.md @@ -28,6 +28,8 @@ +本文大部分内容参考 **周志明《深入理解 Java 虚拟机》** ,想要深入学习请看原书。 + # 一、运行时数据区域

@@ -38,11 +40,11 @@ ## Java 虚拟机栈 -每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。 +每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。

-可以通过 -Xss 这个虚拟机参数来指定每个线程的 Java 虚拟机栈内存大小: +可以通过 -Xss 这个虚拟机参数来指定每个线程的 Java 虚拟机栈内存大小:, ```java java -Xss512M HackTheJava diff --git a/notes/Socket.md b/notes/Socket.md index 82021276..8c580ab9 100644 --- a/notes/Socket.md +++ b/notes/Socket.md @@ -38,7 +38,7 @@ Unix 有五种 I/O 模型: 应用进程被阻塞,直到数据从内核缓冲区复制到应用进程缓冲区中才返回。 -应该注意到,在阻塞的过程中,其它应用进程还可以执行,因此阻塞不意味着整个操作系统都被阻塞。因为其它应用进程还可以执行,所以不消耗 CPU 时间,这种模型的 CPU 利用率效率会比较高。 +应该注意到,在阻塞的过程中,其它应用进程还可以执行,因此阻塞不意味着整个操作系统都被阻塞。因为其它应用进程还可以执行,所以不消耗 CPU 时间,这种模型的 CPU 利用率会比较高。 下图中,recvfrom() 用于接收 Socket 传来的数据,并复制到应用进程的缓冲区 buf 中。这里把 recvfrom() 当成系统调用。