0
点赞
收藏
分享

微信扫一扫

Java中基本数据类型所占字节与取值范围

Java语言的数据类型分为两种,一种是简单数据类型,另外一种是引用数据类型。

① 字节长度和取值范围

简单数据类型都有固定字节长度与取值范围,具体如下表所示:

类型

字节

最小值

最大值

默认值

boolean

1bit

false

true

false

byte

1

-128(-2^7)

127(2^7-1)

0

short

2

-32768(-2^15)

32767(2^15 - 1)

0

int

4

-2,147,483,648(-2^31)

2,147,483,647(2^31 - 1)

0

long

8

-9,223,372,036,854,775,808(-2^63)

9,223,372,036,854,775,807(2^63 -1)

0L

float

4

1.4E-45

3.4028235E38

0.0f

double

8

4.9E-324

1.7976931348623157E308

0.0d

char

2

\u0000(0)

\uffff(65535)

0

除了8种简单数据类型之外的所有数据类型都被称为引用数据类型,引用数据类型变量的内存大小统一为4字节,记录的是其引用对象的地址。

② 基本数据类型转换

也可以理解为数值类型提升:

byte->short ,
char -> int -> long ,
float -> double
int -> float
long -> double

③ 基本数据类型对应的封装类

简单类型和封装类型直接的对应关系如下表所示:

基本类型

封装类型

byte

Byte

short

Short

int

Integer

long

Long

boolean

Boolean

float

Float

double

Double

char

Character

java中加入了自动装箱拆箱操作,这样就可以使用对应的方法。

④ char使用详解

  • char赋值

char a=‘a’; //任意单个字符,加单引号。

char a=‘中’;//任意单个中文字,加单引号。

char a=111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。

注:只能放单个字符。

  • char运算

char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。

在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待。

示例:

char m=‘a’;  ——a。

char m=‘a’+‘b’;  ——Ã。 //char类型相加,提升为int类型,输出对应的字符。

int m=‘a’+‘b’;   ——195。//195没有超出int范围,直接输出195。

char m=‘a’+b;  ——报错。//因为b是一个赋值的变量。

char m=197;  ——Ã。 //输出字符编码表中对应的字符。

char m='197;  ——报错。//因为有单引号,表示是字符,只允许放单个字符。

char m=‘a’+1;  ——b。//提升为int,计算结果98对应的字符是b。

char m=‘中’+‘国’;  ——42282。

char m=‘中’+‘国’+‘国’+‘国’;  ——报错。int转char有损失。因为结果已经超出char类型的范围。

int m=‘中’+‘国’+‘国’+‘国’;  ——86820

char m=‘中’+1;  ——丮。//1是int,结果提升为int,输出对应的字符。

char m=‘中’+“国”;  ——报错。String无法转换为char。

System.out.println(‘中’+“国”);  ——中国。//没有变量附值的过程。String与任何字符用“+”相连,转换为String。

总结:

  • 用单引号’'标识,只能放单个字符。
  • char+char,char+int——类型均提升为int,赋值char变量后,输出字符编码表中对应的字符。

参考博文:

中文与Unicode转换;
​​​彻底弄懂Unicode​​。


举报

相关推荐

0 条评论