Java 基本数据类型

Java有8中基本数据类型 六种数字类型(其中四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

数字类型

整数型

byte

byte数据类型是8位、有符号的,以二进制补码表示的整数;
(256个数字),占1字节,范围为 -27 到 27-1;
byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;

short

short数据类型是16位、有符号的以二进制补码表示的整数,占2字节;
范围为 -215 到 215-1;
Short数据类型也可以像byte那样节省空间,一个short变量是int型变量所占空间的二分之一;

int

int数据类型是32位、有符号的以二进制补码表示的整数;占4字节
范围为 -231 到 231 - 1;
一般整型变量默认为int类型;

long

long数据类型是64位、有符号的以二进制补码表示的整数;占8字节
范围为 -263 到 263 -1;
这种类型主要使用在需要比较大整数的系统上;

浮点型

float

float数据类型是单精度、32位、符合IEEE 754标准的浮点数;占4字节 -3.4E38- 3.4E38。。。浮点数是有舍入误差的
float在储存大型浮点数组的时候可节省内存空间;

double

double数据类型是双精度、64位、符合IEEE 754标准的浮点数;
浮点数的默认类型为double类型;
double类型不能表示精确的值

字符类型

char

char类型是一个单一的16位Unicode字符;用 ‘’表示一个字符。
java 内部使用Unicode字符集。他有一些转义字符,占2个字节
最小值是’\u0000’(即为0);
最大值是’\uffff’(即为65,535);可以当整数来用,它的每一个字符都对应一个数字

布尔型

boolean

boolean数据类型表示一位的信息;
只有两个取值:true和false;
这种类型只作为一种标志来记录true/false情况;
字节占用数并无精确定义,跟虚拟机具体实现有关系

测试代码

<dependency>
    <groupId>org.openjdk.jol</groupId>
    <artifactId>jol-core</artifactId>
    <version>0.10</version>
</dependency>
public class Test {
   private byte a;
   private int b;
   private short c;
   private long d;
   private float e;
   private double f;
   private char g;
   private boolean h;

   public static void main(String[] args) {
       Test test = new Test();
       System.out.println(ClassLayout.parseInstance(test).toPrintable());
   }
}

打印结果如下

 OFFSET  SIZE      TYPE DESCRIPTION                               VALUE
      0     4           (object header)                           01 00 00 00 (00000001 00000000 00000000 00000000) (1)
      4     4           (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4           (object header)                           05 c1 00 f8 (00000101 11000001 00000000 11111000) (-134168315)
     12     4       int Test.b                                    0
     16     8      long Test.d                                    0
     24     8    double Test.f                                    0.0
     32     4     float Test.e                                    0.0
     36     2     short Test.c                                    0
     38     2      char Test.g                                     
     40     1      byte Test.a                                    0
     41     1   boolean Test.h                                    false
     42     6           (loss due to the next object alignment)
Instance size: 48 bytes
Space losses: 0 bytes internal + 6 bytes external = 6 bytes total
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值