Java的三种原始数据类型

本文介绍了Java虚拟机(JVM)支持的原始数据类型,包括数值型、boolean类型和返回地址类型。详细解释了每种类型的特点及其在JVM中的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


如果问你Java的基本类型是哪些,你肯定会说有4种数值型,2种浮点型,charboolean8种吧。另一个问题,Java虚拟机所支持的原始数据类型是几种呢?还是8种吗?

JVM规范的第二版中,Java的三种原始数据类型是数值型、boolean类型、返回地址类型(returnAddress),这三种是JVM支持的原始类型。

值得注意的是返回地址类型(returnAddress),如果你对它不了解,这篇文章的目的就是来补上这小点知识滴。它并不是Java语言api的一部分,不会直接被开发者使用。

<!--[if !supportLists]-->1)       <!--[endif]-->数值型

数值型包括整型和浮点型

整型

byte-8位有符号整数 -128~127

short-16位有符号整数 -32768~32767

int-32位有符号整数

long-64位有符号整数

char-16位无符号整型,代表Unicode字符

浮点型

正负小数

正负0

正负无穷大

NAN(Not a Number) 0/0的结果为NAN

<!--[if !supportLists]-->2)       <!--[endif]-->boolean类型

标明真假。其实boolen类型也是按照int类型进行操作的。没有单独的操作布尔类型的指令,源代码中的布尔类型的操作在编译以后是作为int类型的值进行操作的。

  JVM直接支持布尔数组,newarray指令可以创建布尔数组,而它的访问和修改操作却是使用byte类型的数组的操作指令进行的:baload,bastore(JDK1.01,1以及1.2中,布尔数组被编码为byte数组,每个元素是8)JVM1代表true,用0代表false,编译器将源代码中的布尔类型映射为JVM中的int类型,而且必须和JVM的要求一致

<!--[if !supportLists]-->3)       <!--[endif]-->返回值类型

该类型是jsr, ret以及jsr_w指令需要使用到的,它的值是JVM指令的操作码的指针,并且它的值是不能被运行中的程序所修改的。

Joseph Kulandai

[原文可以查看我的个人博客:Java爱好者]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值