Java 八种基本数据类型byte、short、int、long、float、double、boolean、char以及类型转换运算

八种基本类型

Java语言提供了八种基本类型。我们习惯上将其分为四大类型,其中四个整数类型,两个浮点类型,一个逻辑类型,还有一个字符类型。

类型基本类型字节最小值最大值默认值
整数类型byte18-128(-2^7)127(2^7-1)0
整数类型short216-32768(-2^15)32767(2^15 - 1)0
整数类型int432-2,147,483,648(-2^31)2,147,483,647(2^31 - 1)0
整数类型long864-9,223,372,036,854,775,808(-2^63)9,223,372,036,854,775,807(2^63 -1)0L
浮点类型float432--0.0f
浮点类型double864--0.0d
逻辑类型boolean----false
字符类型char216\u0000\uffff‘\u0000’

注:数值后面的字母本身不区分大小,但 float 的 “l” 容易与数字 “1” 混淆,不容易分辩,因而改写为大写字母 “L”。

byte

byte 数据类型是8位、有符号的,以二进制补码表示的整数
最小值是 -128(-2^7)
最大值是 127(2^7-1)
默认值是 0
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一
例子:

byte a = 100;
byte b = -50;

short

short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15)
最大值是 32767(2^15 - 1)
Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一
默认值是 0
例子:

short s = 1000;
short r = -20000;

int

int 数据类型是32位、有符号的以二进制补码表示的整数
最小值是 -2,147,483,648(-2^31)
最大值是 2,147,483,647(2^31 - 1)
一般地整型变量默认为 int 类型
默认值是 0
例子:

int a = 100000;
int b = -200000;
int c = 0x78ab;
int d = 0b011;

long

long 数据类型是 64 位、有符号的以二进制补码表示的整数
最小值是 -9,223,372,036,854,775,808(-2^63)
最大值是 9,223,372,036,854,775,807(2^63 -1)
这种类型主要使用在需要比较大整数的系统上
默认值是 0L
例子:

long a = 100000L;
long b = -200000L;

float

float 数据类型是单精度、32位、符合IEEE 754标准的浮点数
float 在储存大型浮点数组的时候可节省内存空间
默认值是 0.0f
浮点数不能用来表示精确的值,如货币
例子:

float f1 = 234.5f;
float f2 = 1234.5678;
float f3 = 1e-12F;

double

double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数
浮点数的默认类型为 double 类型
double类型同样不能表示精确的值,如货币
默认值是 0.0d
例子:

double d1 = 12.345;
double d2 = 12.34D; 
double d3 = 1e12; 

boolean

boolean数据类型表示一位的信息
只有两个取值:true 和 false
这种类型只作为一种标志来记录 true/false 情况
默认值是 false
例子:

boolean off = true;

char

char 类型是一个单一的 16 位 Unicode 字符
最小值是 \u0000(十进制等效值为 0)
最大值是 \uffff(即为 65535)
char 数据类型可以储存任何字符
例子:

char c1 = 'A';
char c2 = '家';
char c3 = 0;
char c4 = '\u0000';

类型转换运算

当把一种基本数据类型变量的值赋给另一种基本数据类型变量时会涉及数据转换(不包括逻辑类型)
类型按精度从低到高排列:

byte short char int long float double

当级别低的变量的值赋给级别高的变量时,系统会自动完成数据类型的转换:

int i = 10float f = i;

如果输出 f 的值,结果将会是10.0

当级别高的变量的值赋给级别低的变量时,必须使用类型转换运算:

int i = (int)12.3;
int x = (int)1234L;  
long l = (long)12.34F; 

如果输出 i、x 和 l 的值,结果将会是12、1234 和 12
由结果可知,在转换后小数点后的数据未进行保留。所以在进行转换时运算结果的精度可能会低于原数据的精度

当 int 型常量赋值给一个 byte、short 和 char 变量时,如果超出其取值范围,那么在赋值时需进行类型转换运算,并且运算结果也将导致精度的丢失。

 byte b = (byte) 128;
 byte b2 = (byte) (-129);

如果输出 b 和 b2 的值,结果将会是 -128 和 127

注:该文章主要参照 《Java 2实用教程(第6版)》以及 菜鸟教程: Java 基本数据类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值