java体系结构与工作方式

  • 7.1 JVM体系结构
何谓JVM
JVM(Java Virtual Machine) 通过模拟一个计算机来达到一个计算机所具有的计算功能
  1. 指令集:计算机所能识别的机器语言的命令集合
  2. 计算单元:能识别并且控制指令执行的功能模块
  3. 寻址方式:地址的位数、最小地址和最大地址范围,以及地址的运行规则
  4. 寄存器:包括操作数寄存器、变址寄存器、控制寄存器等的定义、数量和使用方式
  5. 存储单元:能够存储操作数寄存器和保存操作结构的单元
指令集与汇编语言:
  1. 指令集:可以直接执行的二进制代码;
  2. 汇编语言:与二进制代码对应的的助记符;
JVM 体系结构详解
1、类加载器:在JVM启动时或者在类运行时将需要的class加载到JVM中
2、执行引擎:负责执行class文件中包含的字节码指令集,相当于cpu
3、内存区:将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块
4、本地方法调用:调用C或者C++实现的本地方法代码返回结果
  • 7.2 JVM工作机制
机器如何执行代码,一般程序运行到执行的过程:
源代码——>预处理——>编译器——>汇编程序——>目标代码——>链接器——>可执行程序
基本运算分解为二进制位运算,这些运算又通过指令来完成,而指令的核心目的是确定需要运算的种类(操作码)和运算需要的数据(操作数),以及从哪里来(寄存器或栈)获取操作数、将运算结果放到什么地方(寄存器或栈)
JVM为何选择基于栈的架构
所有操作数必须先入栈,再根据指令中的操作码选择从栈顶弹出若干个元素进行计算后压入栈中。JVM中操作数可以存放在每一个栈顶中的一个本地变量集中,即每个方法调用时就会给这个方法分配一个本地变量集,这个变量集在编译时已经确定,所以操作数入栈可以直接是常量入栈或从本地变量集中取一个变量压入栈中。
理由:1、跨平台2、java源文件编译成class文件,编译器一般采用以栈为基础的结构向连接器或者优化器传递这种编译的中间结果,JVM可以作为连接器使用,也可作为优化器使用3、为了指令集的紧凑性(常量池)
执行引擎的架构设计
每当创建一个新的线程,JVM会为这个线程创建一个Java栈,同时会为这个线程分配一个PC寄存器,并且这个PC寄存器会指向这个线程的第一行可执行代码。每当调用一个新的方法时会在这个栈上创建一个新的栈帧数据结构,以便保留此方法的元信息。
 

java体系结构与工作方式 《深入分析java web 技术内幕》第七章的更多相关文章

  1. Servlet工作原理解析 《深入分析java web 技术内幕》第九章

    参考关于servblet的相关文章 侧重概况:https://blog.csdn.net/levycc/article/details/50728921 ibm的相关:https://www.ibm. ...

  2. 深入分析Java Web技术内幕(修订版)

    阿里巴巴集团技术丛书 深入分析Java Web技术内幕(修订版)(阿里巴巴集团技术丛书.技术大牛范禹.玉伯.毕玄联合力荐!大型互联网公司开发应用实践!) 许令波 著   ISBN 978-7-121- ...

  3. 《深入分析Java Web技术内幕》读书笔记 - 第1章 深入Web请求过程

    第1章 深入Web请求过程 1 1.1 B/S网络架构概述 2 基于统一的应用层协议HTTP来交互数据. 1.2 如何发起一个请求 4 HTTP连接本质是建立Socket连接.请求实现方式:工具包如H ...

  4. JAVA Coder 的《深入分析Java Web 技术内幕》读书笔记

    本文基于<深入分析Java Web 技术内幕> <深入分析Java Web 技术内幕>,作者是 许令波,电子工业出版社.本文只是记录书本当中的精彩部分,作个人回顾和技术分享,请 ...

  5. 深入分析java web技术内幕目录一览

    Web请求过程 如何发起请求:browser,httpclient http解析:chrome ,cache Dns域名解析:域名缓存 cdn:负载,动态加速,回源 Java I/O I/0类库的基本 ...

  6. developerWorks 图书频道: 深入分析 Java Web 技术内幕,第 10 章

    developerWorks 图书频道: 深入分析 Java Web 技术内幕,第 10 章 深入理解 Session 与 Cookie Session 与 Cookie 不管是对 Java Web ...

  7. 深入分析Java Web技术内幕

    深入web请求过程 发起一个http请求的过程就是建立一个socket通信的过程 HTTPClient是一个开源的实现了http请求的工具包 深入分析java I/O的工作机制 深入分析java We ...

  8. JVM 体系结构与工作方式

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  9. 《深入分析Java Web技术内幕》读后感(servlet)

    见书第九章 P243 在Tomcat的容器等级中,Context容器直接管理Servlet在容器中的包装类Wrapper,所以Context容器如何运行将直接影响Servlet的工作方式. Servl ...

随机推荐

  1. 在react中使用vis.js

      import React from 'react'; import {message} from 'antd' import vis from 'vis'; import {api as http ...

  2. 破解第一课:NOP绕过登录界面

    第一步 打开软件,任意输入密码,提示“用户密码错误还有2次机会” 第二步 OD载入软件,右键-----中文搜索引擎---智能搜索 按下CTRL+F,打开查找,输入“密码错误”,在结果中双击找到的结果 ...

  3. [武汉集训] Cliquers

    题意 设把\(n\)个不同元素分成若干个大小相等的集合的方案个数为\(res\),求\(m^{res}\)模\(10^9-401\)后的余数. (n,m不超过2*10^9) 分析 可以知道,所求答案为 ...

  4. 微信小程序实战--集阅读与电影于一体的小程序项目(一)

    1.首页欢迎界面 项目目录结构 新建项目ReaderMovie,然后新建文件,结构如下 welcome.wxml <view class='container'> <image cl ...

  5. xtrabackup备份(MySQL备份)与恢复

    xtrabackup备份(MySQL备份)与恢复 1. innobackupex参数选项 --no-timestamp: 不创建一个时间戳 --defaults-file=[MY.CNF] //指定配 ...

  6. 【转】Kali更新源

    1.切换到root用户(如果已经是root用户就直接看第二步) dnt@Kali:~$ su 2.用vim打开sources.list,手动添加下面的更新源 root@Kali:~# vim /etc ...

  7. 『土地征用 Land Acquisition 斜率优化DP』

    斜率优化DP的综合运用,对斜率优化的新理解. 详细介绍见『玩具装箱TOY 斜率优化DP』 土地征用 Land Acquisition(USACO08MAR) Description Farmer Jo ...

  8. Elasticsearch Search API

    当执行一个搜索时,它将这个搜索请求广播给所有的索引分片.可以通过提供路由参数来控制要搜索哪些分片.例如,当检索tweets这个索引时,路由参数可以设置为用户名: curl -X POST " ...

  9. C++版 - 剑指offer面试题14: 调整数组顺序使奇数位于偶数前面

    题目: 调整数组顺序使奇数位于偶数前面 热度指数:11843 时间限制:1秒 空间限制:32768K 本题知识点: 数组 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇 ...

  10. hadoop2 datanode启动异常解决步骤

    1.datanode起不来2016-11-25 09:46:43,685 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid d ...