zoukankan      html  css  js  c++  java
  • java——虚拟机、线程

    java虚拟机:

      是一台想象中的机器,有自己想象的硬件(处理器、堆栈、寄存器等)以及相应的指令系统。

      生命周期:当执行java程序时,虚拟机开始运行,程序结束虚拟机停止。同一台计算机每多运行一个程序,就会多运行一个虚拟机。虚拟机开始于main()方法。

      java虚拟机的体系结构:

        1.java指令集:java虚拟机大约有248个字节码,每个字节码执行一种基本cpu运算。java指令集中的指令必须包含一个单字节的操作用于指定要执行的操作,有0个或多个操作数用于提供操作的参数或数据。

        2.寄存器:用来保存运行状态,包括以下四种:

          pc:计数器

          optop:操作数栈顶指针

          frame:指向当前执行方法所爱环境的指针

          vars:指向当前执行方法使用的局部变量中的第一个变量的指针

        3.栈:虚拟机存储信息的主要方式。当虚拟机得到一个java字节码的应用程序之后,就会为该程序的每一个类的每一个方法创建一个栈区域,用于保存方法的状态信息。java栈区域有三种:

          局部变量区:保存这一个类中所有方法用到的局部变量,vars寄存器指向局部变量区中的变量表的第一个局部变量。

          运行环境区:用于存储解释器对java字节码解释中需要的信息(上次调用方法,局部变量指针,操作数的栈顶和栈底的指针)。执行环境是执行一个方法的控制中心。

          操作数区:存储运算所需要的操作数以及运算结果。

        4.垃圾收集堆:java类的实例对象所需的空间被分配到堆上,解释器负责为类实例对象分配空间,当对象已经使用完毕便将他回收到堆中。

        5.方法区:用于存储方法的字节码

    java线程分为守护线程和普通线程。

    守护线程:java虚拟机自己创建并使用的线程,当一个程序的非守护线程终止,即使还有守护线程运行,应用程序也将被终止,守护程序是应用于后台为其他线程提供服务的。

  • 相关阅读:
    windows批处理命令笔记
    linux 配置互访免密登录 sshkeygen
    jenkins 中 pipeline 管理部署服务到k8s 插件总结
    求教:Net环境导致WPF程序无法启动
    读《C程序设计语言》笔记11
    求教:.Net Framework 3.5 SP1安装失败
    设计模式
    flash基本操作二库面板和元件创建
    AUTOCAD自学教程一
    flash基本操作
  • 原文地址:https://www.cnblogs.com/gaoquanquan/p/9749588.html
Copyright © 2011-2022 走看看