File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -115,7 +115,7 @@ HotSpot 虚拟机中方法区也常被称为 **“永久代”**,本质上两
115
115
116
116
### 2.7 直接内存
117
117
118
- 直接内存并不是虚拟机运行时数据区的一部分,也不是虚拟机规范中定义的内存区域,但是这部分内存也被频繁地使用。而且也可能导致OutOfMemoryError异常出现 。
118
+ 直接内存并不是虚拟机运行时数据区的一部分,也不是虚拟机规范中定义的内存区域,但是这部分内存也被频繁地使用。而且也可能导致 OutOfMemoryError 异常出现 。
119
119
120
120
JDK1.4中新加入的 ** NIO(New Input/Output) 类** ,引入了一种基于** 通道(Channel)** 与** 缓存区(Buffer)** 的 I/O 方式,它可以直接使用Native函数库直接分配堆外内存,然后通过一个存储在 Java 堆中的 DirectByteBuffer 对象作为这块内存的引用进行操作。这样就能在一些场景中显著提高性能,因为** 避免了在 Java 堆和 Native 堆之间来回复制数据** 。
121
121
@@ -139,7 +139,7 @@ JDK1.4中新加入的 **NIO(New Input/Output) 类**,引入了一种基于**通
139
139
选择以上两种方式中的哪一种,取决于 Java 堆内存是否规整。而 Java 堆内存是否规整,取决于 GC 收集器的算法是"标记-清除",还是"标记-整理"(也称作"标记-压缩"),值得注意的是,复制算法内存也是规整的
140
140
141
141
![ ] ( https://user-gold-cdn.xitu.io/2018/8/22/16561e59a40a2c3d?w=1426&h=333&f=png&s=26346 )
142
-
142
+
143
143
** 内存分配并发问题(补充内容,需要掌握)**
144
144
145
145
在创建对象的时候有一个很重要的问题,就是线程安全,因为在实际开发过程中,创建对象是很频繁的事情,作为虚拟机来说,必须要保证线程是安全的,通常来讲,虚拟机采用两种方式来保证线程安全:
You can’t perform that action at this time.
0 commit comments