Java运行环境

操作系统(OS)是管理计算机硬件和软件资源的系统软件,为计算机程序提供公共服务。分时操作系统可以有效地使用系统,还可以包括处理器处理器事件、海量存储、打印和其他资源的成本分配的会计软件。对于诸如输入输出和内存分配这样的硬件功能,操作系统充当了程序和计算机硬件之间的中介,尽管应用程序代码通常是由硬件直接执行的,并且常常使系统调用一个OS函数或被它中断。在许多设备上都有操作系统,这些设备包括电脑—-从手机和视频游戏机到网络服务器和超级计算机。Android是一种基于Linux的自由及开发源代码的操作系统。

什么是线程,什么是进程?

进程是系统进行资源分配的独立单元,它的特点如下:

进程是程序的一次执行过程。若程序执行两次甚至多次,则需要两个甚至多个进程。进程是正在运行程序的抽象。它代表运行的CPU,也称进程是对CPU的抽象(虚拟技术的支持,将一个CPU变换为多个虚拟的CPU)。系统资源(如内存、文件)以进程为单位分配,操作系统为每个进程分配了独立的地址空间,操作系统通过”调用”把控制权交给进程,线程是CPU调度的基本单元。

线程和进程的区别:

  1. 定义方面:进程是程序在某个数据集合上的一次运行活动;线程是进程中的一个执行路径。(进程可以创建多个线程)
  2. 角色方法:在支持线程机制的系统中,进程是系统资源分配的单位,线程是CPU调度的单位
  3. 资源共享方面:进程之间不能共享资源,而线程共享所在进程的地址空间和其他资源。同时线程还有自己的栈和栈指针,程序计数器等寄存器。
  4. 独立性方面:进程有自己独立的地址空间,而线程没有,线程必须依赖进程而存在。
  5. 开销方面。进程切换的开销较大。线程相对较小。(引入线程的原因是处于系统进程开销的考虑)

JDK&JVM&JRE分别是什么以及他们的区别?

JDK:JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。JDK中包含了JRE,在JDK安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib目录下则是jvm虚拟机工作所需要的类库,而jvm和lib和起来就称为jre。JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(java/java/jdb等)和Java基础的类库(即Java API包括rt.jar)。

JRE:是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将开发的程序发布到用户手中,让用户使用。JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些都是运行Java程序的必要组件。与大家熟悉的JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对使用Java程序的用户。

JVM:就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有java程序会受限编译为.class的类文件,这种类文件可以在虚拟机上运行。也就是说class并不直接机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包包含lib类库。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行上的目标代码(字节码),就可以在多个平台上不加修改地运行。

三者的关系:JDK>JRE>JVM

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×