Java基本数据类型

一、8种基本数据类型简介

  • Java语言共提供了8种原始的数据类型(byte, short, int, long, float, double, char, boolean)

  • 这些数据类型不是对象,他们一旦被声明后就会立刻在分配内存空间

  • 其他类型均为引用类型,指向对象实体,在声明时不会被分配内存空间,只是存储了一个内存地址。
不同数据类型对比

我们直接从基本数据类型的封装类中的SIZE中得到其大小:

    public static void main(String[] args) {
        System.out.println("byte: " + Byte.SIZE);
        System.out.println("取值范围:" + Byte.MIN_VALUE + "~" + Byte.MAX_VALUE);
        System.out.println("short: " + Short.SIZE);
        System.out.println("char: " + Character.SIZE);
        System.out.println("int: " + Integer.SIZE);
        System.out.println("long: " + Long.SIZE);
        System.out.println("float: " + Float.SIZE);
        System.out.println("double: " + Double.SIZE);
    }

输出结果是:

byte: 8
取值范围:-128~127
short: 16
char: 16
int: 32
long: 64
float: 32
double: 64

二、关于boolean类型

大家应该注意到,上面的测试中并没有测试boolean的大小
这是因为boolean的大小是不确定的,这里给出官方文档的描述:

boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.

翻译过来就是: boolean这个数据类型只有两个可能的值:truefalse。使用这个数据类型是为了简化跟踪真/假情况的标志。这个数据类型表示的数据是一位,但是它的“size”无法准确定义

不过,在《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”

因此,也可以说boolean占用4个字节(因为编译后用int来代替),而boolean数组中每个元素占1个字节

三、需要注意的地方

  • Java语言中,默认声明的小数double类型,因此在对float类型的变量进行初始化时需要进行类型转换,如:
float f = 1.0f;

float f = (float)1.0;
  • 类似的,默认声明的整数位int类型,因此在对long类型的变量进行初始化时同样需要进行类型转换,如:
long l = 3l;

long l = 3L;

long l = (long)3;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值