基本数据类型

基本数据类型,第1张

基本数据类型 学习目标

1、聊聊Java中的八大基本数据类型

2、从内存的角度聊聊什么是字节

java基本数据类型

数值型,字符型,布尔型

数值型又分为byte,short,int,long,float,double

字符型:用单引号表示,里面只能有一个字符,例如,'a'、'1',

布尔型(Boolean):true和false,用来执行条件判断使用。

类型

占用内存大小

数值范围

byte

1byte=8bit 1个字节占8个bit,一个bit代表一个0或者1

[-128,127]

short

2byte

[-32768,23767]

int

4byte

[-2147483648,2147483647]

long

8byte

[-2^64,2^64-1]

float

4byte

[-3.4E+38 ,3.4E+38]

double

8byte

[-1.7E-308~1.7E+308]

boolean

1byte

true 、 false

char

2byte

在实际开发中,很少用float和double,因为会有精度确实和运算错误而是用BigDecimal这个类,对于非浮点数树,通常用int类型,long表示时间戳。

二元运算提升规则 整数运算:

如果两个 *** 作数有一个是long,结果为long;没有long,结果为int,即使 *** 作数类型全为short、byte,结果也为int。

浮点运算

如果两个 *** 作数有一个是double,则结果也是double,只有两个 *** 作数都是float,则结果才是float。

注意:整数和浮点数运算,结果为浮点类型。例如int 和float,结果为float。

为什么short、byte类型相加会自动升为int?而不是byte提升为short?

使用较小类型运算没有性能优势,消除较小的类型使得字节码更简单,并且使得具有未来扩展空间的完整指令集仍然适合单个字节中的 *** 作码。因此,较小的类型通常被视为Java设计中的二等公民,在各个步骤转换为int,因为这简化了一些事情。

为较小的类型引入专用的算术逻辑单元不值得付出努力:它需要额外的晶体管,但它仍然只能在一个时钟周期内执行一次加法。 JVM设计时的主流架构是32位,适合32位int。

什么是变量?

在某个范围内可以改变的量。

在java中,任何数据一定都是转换成二进制的形式存储在java内存中

为什么Boolean类型不用bit表示?

因为计算机存取的最小单位是字节,一个字节等于8bit,bit是组成存储单位的最小单元,java数据类型也是存储在内存中的,所以只能用8bit,即1byte

为什么byte类型范围是-128到127,而不是-127到127?

这是因为计算机存储数据类型是以补码的形式存储数据的。byte有8bit,首位是符号位,

127:补码表示为0111 1111 ,-127补码表示为1000 0001。我们发现-127还可以再减去1,依然没有超出byte存储数据范围,-127-1=-128,即1000 0001-0000 0001=1000 0000,

1000 0000表示成十进制就是-128。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4017715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-22
下一篇 2022-10-22

发表评论

登录后才能评论

评论列表(0条)

保存