Java 基础数据类型

Java作为一种强类型语言,一个变量在声明之初就必须确定其数据类型,在未经数据类型转换的前提下,数据类型不变。

java中的数据类型分为两类,分别是基础数据类型和引用数据类型,简单分类如下图所示。
基本数据类型分为八种

各基础数据类型的介绍

数据类型大小(字节)取值范围特点
byte1-127-128
short2-2 ^15 - 2^15-1
int4-2^31 - 2^31-1整型数据默认为int型
long8-2^63 - 2^63-1定义long型数据时数据结尾要加l或L
char2Unicode字符集无符号数据类型
float41.4e-045〜3.4e + 038单精度数据类型/在初始化时数据后要加f
double84.9e-324〜1.8e + 308浮点数字默认为double型
boolean4true 、 false不参与数据类型转换

数据类型转换

在java中对数据进行初始化等操作时,为保证数据类型一致,避免数据溢出等问题,需要对数据进行类型转换,数据的类型转换分为强制类型转换和隐式类型转换。

隐式数据类型转换(自动类型转换)

在进行数据初始化和运算时,在满足一定条件的情况下会进行隐式数据转换,隐式数据转换由不需要额外代码和操作,由系统自动进行转换。
当数据源的数据范围小于被初始化变量的数据类型的范围时,系统会将范围较小的数据类型自动提升为数据较高的数据类型。示例如下:

	long a = 100l;
	double b =a;//double的数据范围大于long,在赋值的过程中long->double
	//的类型转换,在此过程中a本身的数据类型不变
	System.out.println(b);//输出b为100.0,

当byte,short,char等范围小于int的数据类型变量直接彼此或自身进行运算时,数据类型会被自动提升为int数据类型。当涉及到浮点数运算时数据会自动被提升为参与运算的数据中范围最大的数据类型。

byte a = 1;
byte b = 2;
byte c  = a+b;//编译报错,a和b在运算的过程中被自动提升为了int数据类型,所以byte数据类型的c无法直接接收该值。
int d = a+b;//int类型的数据可以正常接收该值

char e = "a";//a的ASCII值为97
char f = "b";//b的ASCII值为98
int gg = e+f;//结果为195,即变量e和f对应的ASCII值相加,超出此ASCII码范围后位Unicode码相加
System.out.println(gg);
float h = 3f;
float hh = h+a+b;//数据中最大数据范围为float,float数据类型的变量可以接收该运算结果
double i=h+1.0;//java中的小数默认为double型,故而需要double型的数据来接收
//运算结果
System.out.println(h);

强制数据类型转换(显示转换)

当需要将大范围的数据类型转换为小范围的数据类型时,需要用到强制类型转换。

转换格式

原数据类型 变量 = (目标数据类型)需要强转的数据

	int a =100;
	byte b =(byte)(a+100);//运算结果为int型,需要强制转换为byte型之后此案被byte接收

注意事项

  • 当大范围数据转换为较小的数据类型时,需要注意不要发生数据溢出
  • 浮点数被转换为整型时,小数部分会被舍弃
  • char型数据参与数据转换,boolean型数据不参与
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值