作者:京东零售刘跃明Monitor概念Java对象的内存布局对象除了我们自定义的一些属性外,还有其它数据,在内存中可以分为三个区域:对象头、实例数据、对齐填充,这三个区域组成起来才是一个完整的对象。对象头:在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能,这些标记字段组成了对象头。实例数据:存放类的属性数据信息,包括父类的属性信息。对齐填充:由于虚拟机要求对象其实地址必须是8字节的整数倍,需要存在填充区域以满足8字节的整数倍,填充数据不是必须存在的,仅仅是为了字节对齐。图1Java对象头JVM中对象头的方式有以下两种(以32位虚拟机为例):
目录一、JavaNumber&Math类二、 JavaMath类 三、Number&Math类方法一、JavaNumber&Math类 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。 inta=5000;floatb=13.65f;bytec=0x4a;然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java语言为每一个内置数据类型提供了对应的包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子
作者:京东零售刘跃明Monitor概念Java对象的内存布局对象除了我们自定义的一些属性外,还有其它数据,在内存中可以分为三个区域:对象头、实例数据、对齐填充,这三个区域组成起来才是一个完整的对象。对象头:在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能,这些标记字段组成了对象头。实例数据:存放类的属性数据信息,包括父类的属性信息。对齐填充:由于虚拟机要求对象其实地址必须是8字节的整数倍,需要存在填充区域以满足8字节的整数倍,填充数据不是必须存在的,仅仅是为了字节对齐。图1Java对象头JVM中对象头的方式有以下两种(以32位虚拟机为例):
目录一、JavaNumber&Math类二、 JavaMath类 三、Number&Math类方法一、JavaNumber&Math类 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。 inta=5000;floatb=13.65f;bytec=0x4a;然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java语言为每一个内置数据类型提供了对应的包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子