小于 1 分钟
小于 1 分钟
IO 模型

阻塞 IO 模型
最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才会接触 block 状态。典型的阻塞 IO 模型的例子:
data = socket.read();
大约 9 分钟
Java 堆内存被划分为新生代和老年代两部分,新生代主要使用复制和标记-清除垃圾回收算法;老年代主要使用标记-整理垃圾回收算法,因此 Java 虚拟机中针对新生代和老年代分别提供能了多种不同的垃圾收集器,JDK 1.6 中 Sun HotSpot 虚拟机的垃圾收集器如下:

Serial 垃圾收集器(单线程、复制算法)
,曾经是 JDK 1.3.1 之前新生代唯一的垃圾收集器。Serial 是一个单线程的收集器,它使用一个 CPU 资源或一条线程去完成垃圾收集工作,在进行垃圾收集的时候,必须暂停其它所有的工作线程,直到垃圾收集结束。大约 7 分钟
基本概念
JVM 是可运行 Java 代码的假想计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收、堆和一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。
运行过程
我们都知道 Java 源文件,通过编译器,能够生产相应的 .class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码。
也就是如下:
- Java 源文件 --> 编译器 --> 字节码文件
- 字节码文件 --> JVM --> 机器码
大约 1 分钟