Java 入门 之 数据类型与存储空间

本节主要掌握 Java 之中,int+float和long+double数据类型和数据的对应范围。


首先上表,给出数据类型及其对应的数据字节数目和数据范围序列表,详细如下。

数据类型
字节数目
数据范围
byte
1个字节
-128~127
short
2个字节
-2^16~2^16-1
int
4个字节
-2^31~2^31-1
long
8个字节
-2^31~2^31-1
float
4个字节
-3.4*10^38~3.4*10^38-1
double
8个字节
-1.7977*10^308~1.7977*10^308
char
1个字节
0~65536
boolean
1或者4字节
false/true

Java 默认整数运算的结果为整数,byte 和 short 类型变量在计算的时候,被计算机识别为 32 位(int)整型变量。

byte num = 3;

// byte val = 3+num; // 报错

Java 默认浮点数运算的结果 计算机默认为 double 类型

long a=9;
float b = 9.2f;
float c = b+a;
double d = b+a;

float 类型变量为 32 位,double 为 64 位

数据类型
符号位
指数位
尾数位
float
1
23
8
double
1
52
11
由上可知,因为,尾数位和指数位的存在,所以,float精度小于int(31位),double精度小于long(63位)。


Java 中有寄存器,栈空间,堆空间,三种空间。前者Java不可直接对其处理,后两者Java可直接对其进行操作。

一 栈空间

  • 存取效率高;
  • 先进先出;
  • 空间较小,不可存放大量数据;
  • JVM 将基本类型数据存放在栈空间。

二 堆空间

  • 存取效率低;
  • 数据存放位置随机分配;
  • 空间较大,可存放大规模数据。

三 变量管理与引用类型的数据

栈空间:

变量名:Score 

数据地址:0xaa00

堆空间:

数组地址:0xaa00

95、98、85

java不允许直接访问内存,所以没法查看变量的内存地址。
java并不是编译成机器码,是一种伪代码,所以变量值是被编译成一个索引,并不像C直接编译成一个相对内存地址
另,在C里面,char c = (char)a;也不能实现c读出0x0102,c也只是0x01,要用char指针指向a的地址才可以,如
char *c = (char*)(&a);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值