强制类型提升、自动类型转换

自动类型提升、强制类型转换、String类型

自动类型提升和强制类型转换都是针对于基本数据类型而言。首先,要把基本数据类型的种类及一些特性搞清楚、弄明白。、

基本数据类型

数值型 ①整数类型:byte(1字节)、short(2字节)、int(4字节)、long(8字节) ②浮点类型:float(4字节)、double(8字节)

字符型:char(2字节)

布尔型:boolean(1字节)

注:

①java整型变量默认为int型,声明long型的一般后边要加"l"或"L",一般也不会声明为long型,除非储存的数值特别大

②浮点类型十进制表示方式必须有小数点。通常采用double双精度浮点型,精度是单精度float的两倍,声明为float类型,后面要加"f"或"F"

③定义char型变量,一般用**’’**定义,里边只写一个字符,两个字符编译就不通过;里边可以有转义字符char=’\t’;可以计算,因为字符对应的有Unicode编码;还有一种直接使用U你code值来表示字符型常量,但很少使用。例如:char=‘u\0043’ 对应字符c。

自动类型提升

自动数据类型只在除了boolean型之外的7中基本数据类型之间进行!也就是当容量小的数据类型的变量和容量大的变量做运算时,结果自动提升为容量大的数据类型。(此时的容量指的是,表示的数的范围的大和小;例如;容量float>容量long)

转换规则如下

在这里插入图片描述

char c =‘a’;

int i = 5;

fload d = .314F;

double result = c + i + d;//这个就是正确的,因为自动类型提升为double类型了

byte a = 1;

byte b = 2;

a = a+b; //编译出错,因为先自动类型提升成int,int不能转为byte,所以编译报错,这就需要用到强制类型转换

a += b; //自加没有自动类型提升问题,+=就是一个操作符。

强制类型转换

强制类型转换就是自动类型提升的逆运算,还是只涉及七种数据类型,使用强转符,可能导致精度损失

byte b1 = 2;
int i1 = 129;
byte b2 = (byte) (b1 + i1);
byte b1 = 2;
int i1 = 129;
byte b2 = b1 + i1; 这样会报错,因为没有使用强转符

注:

①byte、char、short三者不会进行相互转换,他们三者做运算时,首先转为int

②boolean类型不能与其它数据类型运算。

③当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类

型的值将自动转化为字符串(String)类型。

④赋值的时候要么满足类型相同,要么满足自动类型提升。

String类型

String类型是引用数据类型,进行连接运算。格式为String=“ ”;

例如:String = xx + xx + xx + xx;前边只要有一个String后边全是连接运算。

可以和8中基本数据类型进行运算。

g = xx + xx + xx + xx;前边只要有一个String后边全是连接运算。

可以和8中基本数据类型进行运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值