mysql 导入百万级数据 几种 java_Java 修行第034天--执行计划及其使用--Oracle数据导入导出--第三章MySQL使用...

执行计划中牢记几句话:

-- 尽量避免是*代替所有列,编写查询语句时使用具体列名代替*,可以防止全表扫描
-- 尽可能少的使用like关键字进行模糊查询
-- 建立适当的索引可以提高查询效率

十三. 执行计划--通过PL/SQL Developer查看查询的

1 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述.

2 配置执行计划需要显示的项

7dc0488e385c1153d5548de700430947.png

3 执行计划的常用列字段解释

基数(Cardinality):Oracle 估计的当前操作的返回结果集行数

字节(Bytes):执行该步骤后返回的字节数

耗费(COST)、CPU 耗费:Oracle 估计的该步骤的执行成本,用于说明 SQL 执行的代价,理论上越小越好(该值可能与实际有出入)

时间(Time):Oracle 估计的当前操作所需的时间

4 使用执行计划

通过工具启动执行计划。选中需要查看执行计划的查询语句,在工具栏中选择Tools--->Explain Plan或者是选择需要查看执行计划的查询语句按 F5

5 查看执行计划

d5b9e087ade4988aa07f142b2bfb9a8c.png

5.1执行顺序

缩进最多的最先执行;(缩进相同时,最上面的最先执行)。

5.2表访问的几种常见方式(非全部):

(1) TABLE ACCESS FULL(全表扫描): --建议数据小的表使用

扫描所有表,并检查每一行是否满足where限制条件

(2) TABLE ACCESS BY INDEX ROWID(通过 ROWID 的表存取)

(****注意:rowid在这里也是伪列(和rownum一样) ,是由 Oracle 自动加在表中每行最后的一列伪列,是在该行生命周期内不会发生改变的列.)

行的 ROWID 指出了该行所在的数据文件、数据块以及行在该块中的位置,所以通过ROWID 可以快速定位到目标数据上,这也是 Oracle 中存取单行数据最快的方法

(3) TABLE ACCESS BY INDEX SCAN(索引扫描)

在索引块中,既存储每个索引的键值,也存储具有该键值的行的 ROWID

索引扫描分为两步:

1 扫描索引得到对应的 ROWID。

2 通过 ROWID 定位到具体的行读取数据。

索引扫描常用五种类型:

INDEX UNIQUE SCAN(索引唯一扫描)

针对唯一性索引(UNIQUE INDEX)的扫描,每次至多只返回一条记录;

表中某字段存在 UNIQUE、PRIMARY KEY 约束时,Oracle 常实现唯一性扫描;

INDEX RANGE SCAN(索引范围扫描)

使用一个索引存取多行数据;

发生索引范围扫描的三种情况

1 在唯一索引列上使用了范围操作符(如:> < <> >= <= between);

2 在组合索引上,只使用部分列进行查询(查询时必须包含前导列,否则会走全表扫描);

3 对非唯一索引列上进行的任何查询;

INDEX FULL SCAN(索引全扫描)

进行全索引扫描时,查询出的数据都必须从索引中可以直接得到;

INDEX FAST FULL SCAN(索引快速扫描)

扫描索引中的所有的数据块,与 INDEX FULL SCAN 类似,但是一个显著的区别是它不对查询出的数据进行排序(即数据不是以排序顺序被返回);

INDEX SKIP SCAN(索引跳跃扫描)

表有一个复合索引,且在查询时有除了前导列(索引中第一列)外的其他列作为条件;

6 Oracle的优化器

Oracle 的优化器种类

RBO(Rule-Based Optimization) 基于规则的优化器 --已经被抛弃,过时了

CBO(Cost-Based Optimization) 基于代价的优化器

CBO比RBO更加合理可靠,是通过计算各种可能的执行计划的“代价”,即 COST,从中选用 COST 最低的执行方案作为实际运行方案

7 执行计划的使用

7.1单表中使用

7.1.1分析查询表中的所有数据

7.1.1.1 示例

查询 employees 表中的所有数据

554730e3f2e54524bb906acbdea57265.png

7.1.2分析主键作为条件的查询

7.1.2.1 示例

查询 employees 表中 employees_id 为 100 的雇员

f39a40ab4960bd7192f04d36d5b7b813.png

87e4799bf5271b27846fa7e0a652357c.png

7.1.3分析非主键列作为查询条件

7.1.3.1 示例

查询雇员名字为 Tarloy 的雇员

7.1.4分析 like 条件

7.1.4.1 示例

查询雇员名字中含有 a 的雇员

66e07c60dd9b4886982f4502af2f77a0.png

7.1.5分析非唯一性索引列作为条件的查询

7.1.5.1 示例一

将 last_name 创建索引

create index emp_name on employees(last_name);

e5a319d649dabf4afd3e195e1b012ba6.png

7.1.5.2 示例二

查询雇员名字为 Taylor 的雇员。

7.1.6分析非唯一性索引中=、>、< 、<>条件

7.1.6.1 示例一

对雇员薪水列做=、>、<、<>条件判断

758e4f67bbfd26aa449973a9e203de71.png

7.1.6.2 示例二

对薪水创建索引,使用薪水列做=、>、<、<>条件判断。

eb4e5e0cb392b76dc8ce4b444fd2c6b5.png

772e8df7cf40a5398c90f60a8ea974b8.png

752bd0aeb2e7cbe6b23c89adbed12403.png

7.2多表

7.2.1内连接

7.2.1.1 示例一

使用等值连接,查询所有部门以及所有部门下的雇员。

b14edf6c11e1b673969ccc116ef14aa8.png

7.2.1.2 示例二

使用子查询,查询所有部门以及所有部门下的雇员(代价值为3,性能提升一般)

e25644592488549ade085af5873cf243.png

7.2.2外连接

7.2.2.1 示例一

查询所有雇员与雇员的部门名称,包含那些没有部门的雇员。

7.2.2.2 示例二

查询所有部门以及雇员,包含哪些没有雇员的部门。

da3f5d4ba698bcb7fbb4e276e97f256f.png

十四、 Oracle 的数据导入与导出

做数据备份--导出

做数据恢复时--导入

数据迁移--导入导出

1 数据库导入导出需要注意

1).目标数据库要与源数据库有名称相同表空间

2).目标数据在进行导入时,用户名尽量相同(这样保证用户的权限级别相同)。

3).目标数据库每次在进行数据导入前,应做好数据备份。

4).目标数据导入前,弄清楚是数据覆盖(替换),还是仅插入新数据替换部分数据表

5).确定目标数据库磁盘空间是否足够容纳新数据,是否需要扩充表空间

6).导入导出时注意字符集是否相同,一般 Oracle 数据库的字符集只有一个,并且固定,一般不改变。

7).确定操作者的账号权限。

2 导出数据格式:

Dmp 格式:.dmp 是二进制文件,可跨平台,还能包含权限,效率好。

Sql 格式:.sql 格式的文件,可以文本编辑器查看,通用性比较好,效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,会报错。

Pde 格式:.pde 格式的文件,.pde 为 PL/SQL Developer 自有的文件格式,只能用 PL/SQLDeveloper 工具导入导出,不能用文本编辑器查看。

3 传统方式 exp(导出)和(imp)导入:

3.1命令执行方式

该命令需要在操作系统的命令窗口执行,而非 sql/plus

3.2命令格式

exp|imp 用 户 名 / 密 码 @ 连 接 地 址 : 端 口 / 服 务 名 file= 路 径 / 文 件 名 .dmp full=y|tabels(tablename,tablename...)|owner(username1,username2,username3)

exp:导出命令,导出时必写。

imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。

username:导出数据的用户名,必写;

password:导出数据的密码,必写;

@:地址符号,必写;

SERVICENAME:Oracle 的服务名,必写;---比如:orcl就是服务名

1521:端口号,1521 是默认的可以不写,非默认要写;

file="文件名.dmp" : 文件存放路径地址,必写;

full=y :表示全库导出。可以不写,则默认为 no,则只导出用户下的对象;

tables:表示只导出哪些表;

owner:导出该用户下对象;

full|tables|owner:只能使用一种(不能同时出现 );

3.3导出数据

exp 用户名/密码@oracle 的连接地址:端口/需要导出的服务名 file=路径/文件名.dmp

3.3.1示例

将 HR 用户下的对象导出。

exp hr/oracle@localhost:1521/orcl file=d:/1.dmp

ef1c5c3860b9edd3d036dc5ffaa1438f.png

3.4导入数据

imp 用户名/密码@oracle 的连接地址:端口/需要导出的服务名 file=路径/文件名.dmp

3.4.1示例

将导出的 dmp 文件导入到数据库中。

imp hr/oracle@localhost:1521/orcl file=d:/1.dmp

7ab91b852f489742669b0fb0e5ce78ac.png

44bf5791c4d2ed8dec68b2dff531225b.png

4 使用 PL/SQL Developer 实现数据的导入与导出

4.1导出与导入表对象

有 DMP, SQL, PDE 三种格式,他们的导出导入方法都是大同小异

总体方法如下:

1. 在PL/SQLDeveloper tools 工具栏中,有两个选项 Export Tables/Inport Tables导出/导入表

2. 点击之后会出现所有表格,选择自己想要导出的表格,然后在下面栏中会有Oracle Eeport(dmp格式)SQL Inserts(sql格式),选择之后

3. 再在下 面的 Output file /Input选择自己想要导出的位置,再点击旁边 Export/Inport即可

4.2数据中其他对象的导入与导出---视图,索引,序列

7a3589143ecede4257f44db4bb1d2ac5.png

注意:

当使用Export User Objects 导出到结构都是SQL结构多种不同类型的对象时,表中导出的结果只是表结构,并不会包含任何数据.要想导出包含表数据,那就只能使用Export导出导入还是使用Inport 中的SQL insert 方法

在用户中删除导出的内容之后,也可直接将导出的sql内容用笔记本打开之后赋值,再在新打开的command Windows 中粘贴运行,也同样可以导入到处的内容

第三章 MySQL 数据库的使用

一、 MySQL 简介

1 什么是 MySQL

MySQL 是一个关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

2 MySQL 特点

MySQL 是开源的,所以你不需要支付额外的费用。

MySQL 支持大型系统的数据库。可以处理拥有上千万条记录的大型数据库。

MySQL 使用标准的 SQL 数据语言形式。

二、 MySQL 的安装与卸载

安装步骤:

license Agreement-->Next-->Sever Only Next-->Excute-->Tnstallation Next-->Product Configuration Next-->Type and Networking Next-->设密 码 Next-->Windows Service Next-->Plugins and Extensions Next-->Apply Server Configuration Execute-->Finish

卸载步骤

1停止 MySQL 服务

2卸载 mysql server

3MySQL 安装目录

4删除注册表中信息

5删除 MySQL 数据库目录

6删除服务中的 MySQL

7重启系统

三、 MySQL 的客户端工具

1 MySQL 自带的客户端端工具

bda68192ec42d2983c66fd7db0ba286f.png

2 第三方客户端工具 Navicat

四、 MySQL 与 Oracle 的区别

1 实例区别

MySQL 是轻量型数据库,开源免费。Oracle 是收费的而且价格非常高。

MySQL 一个实例可以操作多个库,而 Oracle 一个实例只能对应一个库。

MySQL 安装完后 300M 而 Oracle 有 3G 左右。

2 操作区别

主键: MySQL 一般使用自动增长类型,而 Oracle 则需要使用序列对象。

单引号的处理: MySQL 里可以用双引号包起字符串,ORACLE 里只可以用单引号包

起字符串。

分页的 SQL 语句: MYSQL 用 LIMIT,而 Oracle 需要使用内建视图和 rownum 伪列。事务处理:MySQL 默认是自动提交,而 Oracle 默认不自动提交,需要用户 CTL 语言进行事务提交。

这里个人见解: MySQL和Oracle对于数据物理隔离机制上的区别

Oracle装好后会有一个实例和一个库 库中可以创建多个不同的表空间,每个表空间对应一个数据文件.可以创建不同的用户分配不同的表空间,再通过表空间实现物理隔离.所以在Oracle中有一个库就够了.

MySQL是一个实例可以对对应多个不同的库 在MySQL中没有表空间这个概念我们可以创建不同的库,每个库用不同的用户来操作.库和库之间放的是不同的数据文件,所以MySQL是通过不同的库之间实现物理隔离.所以MySQL要先创建库

五 操作 MySQL

1 创建数据库:

CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码;

1.1 示例

创建一个 test 的数据库,并查看该数据库,以及该数据库的编码。

创建数据库:

create database test default character set utf8;

fb04f661e8c9d3483745d12f2092aae0.png

查看数据库:

show databases;

7c98dcd6b0deb8dcb4df6f006419ff5b.png

查看数据库编码:

select schema_name,default_character_set_name from information_schema.schemata where schema_name = 'test';

f130146f7f3558ad41ddfde4aa23e8ce.png

删除数据库:

Drop database 数据库名称

0c7424c148cb3fe55d9d532eea9c701f.png

2 选择数据库

需要在哪个库中创建表需要先选择该数据库。

Use 需要选择的库的名称。

2.1示例一

创建一个名称为 zzsxt 的数据库,编码为 utf8。

create database zzsxt default character set = utf8;

2.2示例二

选择该数据库

use bjsxt;

cdacdc509c67a4d1b7089d2b01b1248f.png

3 MySQL 中的数据类型

1)数值类型

0b94e13fbc6e2a4329dfcc28051910aa.png

数值类型中的长度 m 是指显示长度,并不表示存储长度,只有字段指定 zerofill 时有用

例如:int(3),如果实际值是 2,如果列指定了 zerofill,查询结果就是 002,左边用 0 来填充

2)浮点型

fa613dea3cacd6eb573b5ac065c67db4.png

3)字符串类型

fa2fc38a2dabc28e5a7765ad5f1998d9.png

4)日期类型

b2ae6544ade76173013ea0dab02691ff.png

二进制数据(BLOB)

1)BLOB 和 TEXT 存储方式不同,TEXT 以文本方式存储,英文存储区分大小写,而 Blob

是以二进制方式存储,不分大小写。

2)BLOB 存储的数据只能整体读出。

3)TEXT 可以指定字符集,BLOB 不用指定字符集。

4 创建表与删除表

4.1创建表

4.1.1通过 DDL 语句创建表

4.1.1.1 示例

创建一个 employees 表包含雇员 ID,雇员名字,雇员薪水。

create table employees(employee_id int,last_name varchar(30),salary float(8,2));

查看已创建的表

Show tables;

19ff2e0dde8bc157f7f93ee6a569e176.png

5 修改表

5.1使用 DDL 语句修改表名

ALTER TABLE 旧表名 RENAME 新表名

5.1.1示例一

创建一个 employees 表包含雇员 ID,雇员名字,雇员薪水。

create table employees(employee_id int,last_name varchar(30),salary float(8,2));

5.1.2示例二

将 employees 表名修改为 emp。

alter table employees rename emp;

5801c1aef2d4b998cbb9516d80354acf.png

5.2使用 DDL 修改列名

ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型

ALTER TABLE 旧表名 RENAME 新表名

5.2.1示例

将 emp 表中的 last_name 修改为 name

alter table emp change column last_name name varchar(30);

e370cd85bfbcba10c285ef04f7f41922.png

5.3使用 DDL 语句修改列类型

ALTER TABLE 表名 MODIFY 列名 新类型

5.3.1示例

将 emp 表中的 name 的长度指定为 40

alter table emp modify name varchar(40);

0a136ae9735445b6a22b173944aab928.png

5.4使用 DDL 语句添加列

ALTER TABLE 表名 ADD COLUMN 新列名 类型

5.4.1示例

在 emp 表中添加一个新的列为 commission_pct

alter table emp add column commission_pct float(4,2);

4ad7056230e4b69732d45463655b4685.png

5.5使用 DDL 语句删除列

ALTER TABLE 表名 DROP COLUMN 列名

5.5.1示例

删除 emp 表中的 commission_pct

alter table emp drop column commission_pct;

429fee0c7a86de398722c1f56e0f2b29.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

摄像头分辨率怎么调整_亿联CAM50 - 智能话机专属高清摄像头

亿联CAM50是通过USB连接的高清视频摄像机&#xff0c;适用于亿联桌面高端智能话机&#xff08;SIP-T58V和SIP-T58A&#xff09;&#xff0c;致力于提供一流的个人视频通信体验&#xff0c;优化视频协作。CAM50高清摄像机即插即用&#xff0c;无需额外安装驱动软件&#xff0c;也…

ios系统python编译器_MacBook如何安装Python编译器-百度经验

编程是一门需要动手实践的技能&#xff0c;由于Python的性能&#xff0c;许多人都将其作为学习编程的入门语言。而要想学好Python&#xff0c;首先要在电脑上安装Python&#xff0c;并安装一个可以解释Python的文本编辑器。在此以在MacBook上安装Sublime Text为例。 工具/原料 …

jvm需要多长时间进行转义分析? 可能比您想象的要长。

这篇文章着眼于转义分析&#xff0c;特别是jvm在运行的程序中执行转义分析需要多长时间。 我做了一些观察&#xff0c;但目前还没有全部解释。 作为介绍&#xff0c;让我们绕道看看jvm -Xcomp中一个鲜为人知且使用更少的标志&#xff08;这将是一件好事&#xff09;。 该标志…

Java补漏(一)

&#xfeff;&#xfeff;第一章前言 在学长的建议下&#xff0c;为了弥补之前学Java漏下的或者不是非常清楚的知识点&#xff0c;买了本蛮好的教科书-《Java学习笔记&#xff08;JDK6&#xff09;》&#xff0c;正式又一次学习。为了记下一些让我恍然大悟的知识。写了本文档。…

spring environment_程序员:Spring项目中简单几步实现多个动态数据源切换

每一个请求与其他的用户是面对不同的数据库&#xff0c;这就需要用到动态数据源切换&#xff0c;来满足不同数据库、不同数据表(不同数据源)的灵活调用。动态数据源切换满足mysql、oracle等主流数据库进行动态数据源切换。使用方法在 WEB-INF 目录下建立 lib 目录&#xff0c;并…

算法笔记_163:算法提高 最大乘积(Java)

目录 1 问题描述 2 解决方案 1 问题描述 问题描述对于n个数&#xff0c;从中取出m个数&#xff0c;如何取使得这m个数的乘积最大呢&#xff1f;输入格式第一行一个数表示数据组数每组输入数据共2行&#xff1a;第1行给出总共的数字的个数n和要取的数的个数m&#xff0c;1<n&…

ServletRequest startAsync()的用途有限

前段时间我遇到了Servlet 3.0中AsyncContext.start&#xff08;…&#xff09;的目的是什么&#xff1f; 题。 引用上述方法的Javadoc &#xff1a; 使容器调度线程&#xff08;可能从托管线程池中&#xff09;运行指定的Runnable 。 提醒大家&#xff0c; AsyncContext是Servl…

python3.7下载tensorflow_【AI初体验】在anaconda中python3.7版本安装Tensorflow 与 Keras来玩玩...

哈啰&#xff0c;大家好&#xff0c; 单纯分享自己摸索学习AI的过程&#xff0c; 在自己的文章【Python 超入门】(1) 心原一马从零开始带你学程序中&#xff0c; 记录了安装撰写python的工具-anaconda 的方法&#xff0c; 当时安装的版本是python3.7版&#xff0c; 但是据说目前…

古巴平台上的通用过滤器–类固醇上的excel过滤器

正如我上次承诺的那样&#xff0c;我计划浏览该平台的某些功能&#xff0c;这些功能我认为非常有价值。 所以我将在这里做一些系列。 从明显的用户界面&#xff0c;过滤&#xff0c;安全性到一些高级功能&#xff08;如Web Portal&#xff0c;可扩展性&#xff0c;审核&#xf…

基准测试:Java 8 Lambda和流如何使您的代码慢5倍

与长期的实现相比&#xff0c;Java 8 lambda和流的性能如何&#xff1f; Lambda表达式和流在Java 8中受到了热烈的欢迎。这些是迄今为止很激动人心的功能&#xff0c;很长一段时间以来&#xff0c;它们就已经应用到Java中了。 新的语言功能使我们可以在代码中采用更具功能性的…

ssm框架逻辑删除mysql_MybatisPlus--CRUD接口及主键增长策略、自动填充、乐观锁更新数据...

目录一、insert1、插入操作2、主键策略二、update1、根据Id更新操作2、自动填充3、乐观锁三、select1、根据id查询记录2、通过多个id批量查询3、简单的条件查询4、分页四、delete1、根据id删除记录2、批量删除3、简单的条件查询删除4、逻辑删除一、insert1、插入操作RunWith(Sp…

python对英语的要求_学python需要英语基础吗

在很多人的眼里&#xff0c;学习编程需要英语基础&#xff0c;因为程序代码全是英文字母&#xff0c;如果没有英语基础可能很难学懂编程。程序代码是英文确实没有错&#xff0c;但是也不是必须得懂英语&#xff0c;因为计算机程序有自己语言&#xff0c;并不是我们生活中的英语…

python找不到csv文件_Python如何读取csv文件

逗号分隔值&#xff08;Comma-Separated Values&#xff0c;CSV&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。纯文本意味着该文件是一个字符序列&…

python cv2模块imshow_Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

一、需要工具本机使用python 2.7.10下调试代码均通过&#xff0c;一下学习需要有一定的代码阅读能力&#xff0c;一下学习只介绍函数方法&#xff1a;Python 作为一种高效简洁的直译式语言非常适合我们用来解决日常工作的问题。而且它简单易学&#xff0c;初学者几个小时就可以…

2016年将是Java终于拥有窗口函数的那一年!

你没听错。 到目前为止&#xff0c;出色的窗口功能是SQL独有的功能。 即使是复杂的函数式编程语言似乎也缺少这种漂亮的功能&#xff08;如果我记错了&#xff0c;请纠正我&#xff0c;Haskell伙计们&#xff09;。 我们撰写了许多有关窗口函数的博客文章&#xff0c;并在诸如…

android 仿京东地址选择_Android 开发:仿美团地址选择

最近做了这个功能&#xff0c;分享一下&#xff0c;用的是百度地图api&#xff0c;和美团外卖的地址选择界面差不多&#xff0c;也就是可以搜索或者滑动地图展示地址列表给用户选择&#xff0c;看下效果图先。文章重点展示地图并定位到“我”的位置 滑动地图获取周边poi(逆地理…

ps还原上一步快捷键_ps还原上一步快捷键_photoshop恢复上一步操作的快捷键是什么...

满意答案simonsinxer推荐于 2017.09.01采纳率&#xff1a;53% 等级&#xff1a;11已帮助&#xff1a;63469人还原/重做前一步操作 【Ctrl】【Z】其他一些快捷键&#xff1a;还原两步以上操作 【Ctrl】【Alt】【Z】重做两步以上操作 【Ctrl】【Shift】【Z】剪切选取的图像或路…

python中排序从小到大_从Python看排序:冒泡排序

冒泡排序在排序算法中是最简单的一种&#xff0c;它通过多次遍历列表&#xff0c;将最大的元素冒泡到列表的头部或尾部。我们通过对四张扑克牌&#xff08;花色相同&#xff09;以从小到大的方式进行排序来演示该算法的工作原理。首先将扑克牌面朝上放在桌上&#xff0c;如下图…

c语言三个数从小到大排序/输出_我的c语言笔记(三)

int表达式这个表达式存在的目的在于将表达式转为整数。比如&#xff1a;float a9999.9999&#xff1b;int b;b(int)(a/1000);就可以得到9啦&#xff0c;别忘了套上固定格式哦&#xff5e;然后我们接下来一起来做一道很重要的题哦&#xff0c;反复练习&#xff0c;可以顺利拿下同…

java虚拟_Java虚拟机(JVM)工作原理

虽然本教程的内容为 x86 处理器的原生汇编语言&#xff0c;但是了解其他机器架构如何工作也是有益的。JVM 是基于堆栈机器的首选示例。JVM 用堆栈实现数据传送、算术运算、比较和分支操作&#xff0c;而不是用寄存器来保存操作数(如同 x86 一样)。数据结构&#xff0c;让它们协…