java returnaddress,JVM之数据类型

《Java虚拟机规范》阅读笔记-数据类型

1.概述

Java虚拟机的数据类型可分为两大类:原始类型(Primitive Types,也称为基本类型)和引用类型(Reference Types)。

Java虚拟机用不同的字节码指令来操作不同的数据类型[1] 。

e4e1609654c5dec00791ee12789cebce.png

2.原始类型

原始类型是最基本的元素,用于构成复杂的引用类型。与世间万物一样,都是由最基本的化学元素组合而成。

原始类型又分为三类:数值类型(Numberic Types)、布尔类型(Boolean Type)、ReturnAddress类型;数值类型又可以细化为整型(Integral Types)和浮点型(Floating-Point Types)。

整型

byte:8位 有符号 二进制补码整数,取值范围[-27,27-1],默认值为零;

short:16位 有符号 二进制补码整数,取值范围[-215,215-1],默认值为零;

int:32位 有符号 二进制补码整数,取值范围[-231,231-1],默认值为零;

long:64位 有符号 二进制补码整数,取值范围[-263,263-1],默认值为零;

char:16位 无符号 UTF-16编码Unicode值,取值范围[0,65535]默认值为null('\u0000');

浮点型

float:32位 单精度浮点数集合,默认值正数零;

double:64位 双精度浮点数集合,默认值为正数零;

布尔型

boolean [2] :取值范围[true,false],默认值为false;

returnAddress类型

returnAddress [3]:表示一条字节码指令的操作码,在JVM支持的原始类型中只有returnAddress类型不能直接与Java语言的数据类型对应的。

引用类型

Java虚拟机有三种引用类型:类类型(Class Types)、数组类型(Array Types)、接口类型(Interface Types),分别由类实例、数组实例及实现了某个接口的类实例或数组实例动态创建。此外,还有一个特殊值null,不指向任何对象时,引用类型的值就是null,同时,null也是引用类型的默认值。

对于数组类型,还包含一个单一维度的组件类型(Component Type),组件类型可以是数组、原始类型、类类型或者接口类型。当组件类型是数组类型时,继续重复取这个数组的组件类型,最后一层组件类型一定是非数组,这也是该数组类型的元素类型(Element Type)。这也是多维数组的实现形式。

后面介绍 ↩

在Java语言中涉及到boolean类型值的运算,在编译后都是用Java虚拟机的int(32位)数据类型来代替;boolean的数组类型的访问有修改共用byte(8位)类型数组的字节码指令。 ↩

returnAddress类型会被jsr、ret、jsr_w指令使用,主要被用来实现finally语句块,但后来改为finally块代码的方式实现;到JDK7,虚拟机不再允许Class文件出现这几条指令,故returnAddress也用不到了。 ↩

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

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

相关文章

C# matlab

编译环境:Microsoft Visual Studio 2008版本 9.0.21022.8 RTMMicrosoft .NET Framework版本 3.5已安装的版本: ProfessionalMicrosoft Visual Basic 2008 91986-031-5000002-60050Microsoft Visual Basic 2008Microsoft Visual C# 2008 91986-031-5000002-60050…

洛谷P3273 [SCOI2011] 棘手的操作 [左偏树]

题目传送门 棘手的操作 题目描述 有N个节点,标号从1到N,这N个节点一开始相互不连通。第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边,连接第x个节点和第y个节点A1 x v: 将第x个节点的权值增加vA2 x…

基于容器制作镜像

一。镜像基础 一。基于容器制作镜像 1. 查看并关联运行的容器 [ghlocalhost ~]$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4da438fc9a8e busybox …

照顾好自己才能照顾好别人_您必须照顾的5个基本数据

照顾好自己才能照顾好别人I am pretty sure that on your data journey you came across some courses, videos, articles, maybe use cases where someone takes some data, builds a classification/regression model, shows you great results, you learn how that model wo…

matlab数字仿真实验,DVR+备用电源自动投入的MATLAB数字仿真实验仿真实验

一、动态电压恢复器(DVR)的数字仿真实验动态电压恢复器(Dynamic Voltage Restorer,DVR)是一种基于电力电子技术的串联补偿装置,通常安装在电源与敏感负荷之间,其作用在于:保证电网供电质量,补偿供电电网产生的电压跌落…

c#,xp系统,Matlab6.5

编译环境:c#,xp系统,Matlab6.5 新建一个窗体项目,添加matlab引用。 然后试了四种方式调用matlab: 第一种 view plaincopy to clipboardprint?MLApp.MLAppClass matlab new MLApp.MLAppClass(); matlab.Visible 1;…

java script 对象

java script 对象 1.创建方式 1)通过字面量的形式创建 例;var stt{x:1,y:2,y:3}; 或;var stt{ x:1, y:2, for:3 } 注意关键字必须放到引号中间 2)通过new创建对象 例:var new stt(); stt.name 小鱼; stt.age 20…

认识数据分析_认识您的最佳探索数据分析新朋友

认识数据分析Visualization often plays a minimal role in the data science and model-building process, yet Tukey, the creator of Exploratory Data Analysis, specifically advocated for the heavy use of visualization to address the limitations of numerical indi…

架构探险笔记10-框架优化之文件上传

确定文件上传使用场景 通常情况下,我们可以通过一个form(表单)来上传文件,就以下面的“创建客户”为例来说明(对应的文件名是customer_create.jsp),需要提供一个form,并将其enctype属…

matlab飞行数据仿真,基于MATLAB的飞行仿真

收稿日期: 2005 - 05 - 15   第 23卷  第 06期 计  算  机  仿  真 2006年 06月    文章编号: 1006 - 9348 (2006) 06 - 0057 - 05 基于 MATLAB的飞行仿真 张镭 ,姜洪洲 ,齐潘国 ,李洪人 (哈尔滨工业大学电液伺服仿真及试验系统研究所 ,黑龙江 哈尔滨 150001) 摘要:该…

Windows Server 2003 DNS服务安装篇

导读-- DNS(Domain Name System,域名系统)是一种组织成层次结构的分布式数据库,里面包含有从DNS域名到各种数据类型(如IP地址)的映射“贵有恒,何必三更起五更勤;最无益,只怕一日曝十日寒。”前一段时间巴哥因为一些生活琐事而中止…

正则表达式matlab,正则表达式中一个word的匹配 @MATLAB - 优秀的Free OS(Linux)版 - 北大未名BBS...

我目前想做的就是判断一个str是否可以被认为是有效的MATLAB index。最好的方法是直接运行,然后看运行结果或报错类型,但是我不打算在不知道是什么类型的东西之前运行它,所以可以预先parse一下,简单判断是否“长得跟有效的MATLAB i…

arima模型怎么拟合_7个统计测试,用于验证和帮助拟合ARIMA模型

arima模型怎么拟合什么是ARIMA? (What is ARIMA?) ARIMA models are one of the most classic and most widely used statistical forecasting techniques when dealing with univariate time series. It basically uses the lag values and lagged forecast error…

jQuery禁止Ajax请求缓存

一 现象 get请求在有些浏览器中会缓存。浏览器不会发送请求,而是使用上次请求获取到的结果。 post请求不会缓存。每次都会发送请求。 二 解决 jQuery提供了禁止Ajax请求缓存的方法: $.ajax({type: "get",url: "http://www.baidu.com?_&…

python 实例

参考 http://developer.51cto.com/art/201804/570408.htm 转载于:https://www.cnblogs.com/artesian0526/p/9552510.html

[WPF]ListView点击列头排序功能实现

[WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了。微软的MSDN也已经提供了实现方式。微软的方法中,是通过ColumnHeader Templ…

天池幸福感的数据处理_了解幸福感与数据(第1部分)

天池幸福感的数据处理In these exceptional times, the lockdown left many of us with a lot of time to think. Think about the past and the future. Think about our way of life and our achievements. But most importantly, think about what has been and would be ou…

标线markLine的用法

series: [{markLine: {itemStyle: {normal: { lineStyle: { type: solid, color:#000 },label: { show: true, position:left } }},data: [{name: 平均线,// 支持 average, min, maxtype: average},{name: Y 轴值为 100 的水平线,yAxis: 100},[{// 起点和终点的项会共用一个 na…

php pfm 改端口,罗马2ESF和PFM 修改建筑 军团 派系 兵种等等等很多东西的教程

本帖最后由 clueber 于 2013-10-5 12:30 编辑本人是个罗马死忠加修改党,恩,所以分享一下自己的修改心得修改工具为ESF1.0.7和PFM3.0.3首先是ESF修改。ESF可以用来改开局设定和存档,修改开局设定是startpos.esf文件,在存档在我这里…

红草绿叶

从小到大喜欢阴天,喜欢下雨,喜欢那种潮湿的感觉。却又丝毫容不得脚上有一丝的水汽,也极其讨厌穿凉鞋。小时候特别喜欢去山上玩,偷桃子柿子,一切一切都成了美好的回忆,长大了,那些事情就都不复存…