JVM之数据类型
2016-07-15 16:30
141 查看
1.概述
Java虚拟机的数据类型可分为两大类:原始类型(Primitive Types,也称为基本类型)和引用类型(Reference Types)。Java虚拟机用不同的字节码指令来操作不同的数据类型 。
![](http://images2015.cnblogs.com/blog/361896/201607/361896-20160715162948248-2042724083.jpg)
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 [1] :取值范围[true,false],默认值为false;
returnAddress类型
returnAddress [^2]:表示一条字节码指令的操作码,在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位)类型数组的字节码指令。 ↩
相关文章推荐
- "Android Touch事件分发机制"-Android面试必问"精华技能点"汇总
- 安装Subversion1.8.22(SVN)插件
- Unity Android插件错误 Found plugins with same names and architectures
- 最小最大和 纪中1443 桶排+枚举
- __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev)
- bzoj2442
- 可扩展ListView
- webapi集成owin使用Oauth认证时能获取accee_token仍无法登录的解决办法
- CentOS 7 install Nginx
- FastDFS常用命令
- 用Swift实现淘宝和大众点评的下拉刷新
- 协方差
- 父视图透明度为零 不影响子视图; TableView的 cell.contentView 透明;
- 今天突然ubuntu下的virtual box出问题了
- Java之美[从蛮荒到撬动地球]之设计模式三
- RabbitMQ学习(十二)之spring整合发送异步消息(注解实现)
- 在pc端四个小图标显示,在手机端,只有一个小图标,点击小图标,四个小图标出来,再点击,四个小图片隐藏?
- 正则表达式 满满的套路
- Android笔记--简单的自定义View之自绘控件
- angularjs初学者知识点总结1:对于不同module间的依赖注入