JAVA基本类型

Java数据类型

以下内容来源于Java虚拟机规范。

Java的数据类型可以分为基本数据类型 和 引用类型两类,基本数据类型又可以分为数值类型、布尔类型和returnAddress类型。下面就这三类型做一个简单的介绍:

1数值类型

数值类型可以分为整数类型和浮点类型

1.1整数类型:

  1. byte : 值为8位有符号二进制补码整数,默认值为0,取值范围-128至127(-27 至27-1);
  2. short : 值为16位有符号二进制补码整数,默认值为0,取值范围规则同上;
  3. int : 值为32位有符号二进制补码整数,默认值为0,取值范围规则同上;
  4. long : 值为64位有符号二进制补码整数,默认值为0,取值范围规则同上;
  5. char : 值为16位无符号整数表示,指向Basic Multilingual Plane的Unicode值,以UTF-16编码,默认值为Unicode的null值(‘\u0000’)。

1.2浮点类型:

float : 值为单精度浮点数集合中的元素,或者(如果虚拟机支持的话)是单精度

扩展指数(Float-Extended-Exponent)集合中的元素。默认值为正数零。

double : 取值范围是双精度浮点数集合中的元素,或者(如果虚拟机支持的话)是

双精度扩展指数(Double-Extended-Exponent)集合中的元素。默认值为正数零。

 

浮点类型在概念上与《IEEE Standard for Binary Floating-Point Arithmetic》ANSI/IEEE Std. 754-1985(IEEE, New York)标准中定义的 32 位单精度和 64 位双精度 IEEE 754 格式取值和操作都是一致的。

IEEE 754 标准的内容不仅包括了正负带符号可数的数值(Sign-Magnitude Numbers),

还包括了正负零、正负无穷大(Infinity)和一个特殊的“非数字”标识(Not-a-Number,下文用 NaN 表示)。NaN 值用于表示某些无效的运算操作。

NaN是无序的,任何数值(包括它自身)与它进行数值比较或者等值测试都会返回false的结果。但是进行非等值比较结果都会返回true。

2 returnAddress类型:

returnAddress类型会被JVM中的无条件转移指令jsr、ret和jsr_w指令所使用,returnAddress类型的值指向一条虚拟机指令的操作码。(JVM规范的译者注:jsr、ret和jsr_w指令主要用来实现finally语句块,后来改为冗余finally块代码的方式实现,到了JDK7时,JVM中已不允许Class文件内出现这几条指令,returnAddress类型也就名存实亡。)

3 boolean类型:

虽然JVM定义了boolean 这种数据类型,但并没有提供任何供boolean 值专用的字节码指令,在java语言之中涉及到boolean类型值的运算,在编译之后都使用Java虚拟机中的int数据类型来代替。

Java虚拟机直接支持boolean类型的数组,虚拟机的newarray指令可以创建这种数组。boolean 的数组类型的访问与修改共用byte类型数组的baload和bastore指令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值