【自学笔记】 Java基础 - 数据类型转换
# 数据类型转换数据类型的转换呢,分为俩种嗷,分别是隐式转换和显示转换
## 隐式转换
- 特点:**代码不需要进行特殊化处理,字段完成**
- 规则:**数据范围从小到大**
- 精度排行(从高到低): **double > float > long > int > short > byte**
```
public class main {
public static void main(String[] args){
//左边是long类型,右边是默认的int类型,左右不一样
//一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行存储
//int-->long,复合数据范围从小到大的要求
//这一行代码发生了自动类型转换。
long num1 = 100;
System.out.println(num1);// 100
//左边是double类型,右边是float类型,左右不一样
//float-->double,符合从小到大的规则
//也发生了自动类型转换。
double num2 = 2.5F;
System.out.println(num2);// 2.5
//左边是float,右边是Long类型,左右不一样
//Long-->float,float范围更大一些,符合从小到大的规则
//也发生了自动类型转换
float num3 = 30L;
}
}
```
## 显示转换
- 特点:**代码需要进行特殊的格式处理,不能自动完成。**
- 格式:**范围小的的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;**
```
public class main {
public static void main(String[] args){
//左边是int类型,右边是long类型,不一样
//long-->int,不是从小到大
//不能发生自动类型转换!
//int num1 = 100L;
//格式:范围小的的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
int num1 = (int) 100L;
System.out.println(num1);
}
}
```
注意事项:
1.强制类型转换,一般不推荐转换,一般会发生精度损失,数据溢出。
2.byte/short/char这三种类型都可以发生数学运算,例如加法"+"。
3.byte/short/char这三种类型在运算的时候,都会被首先提升为int类型,然后在计算。
4.boolean类型不能发生数据类型转换。
5.对于byte/short/char三种类型来说,如果右侧得数值不超过它得范围本身,那么它会由一个隐含得为我们补上(byte)(short)(char)。
6.如果没有超过左侧得范围,编译器补上强转。
7.如果右侧超过左侧得范围,编译器报错。
8.double-->int,强制类型转换 并不是四舍五入,所以小数位都被舍弃。
```
public class main {
public static void main(String() args){
char zf1 = 'A';//这是一个字符型变量,里面是大写字母A
//计算机的底层会用一个数字(二进制)来代表字符A,就是65
//一旦char类型进行了数学计算,那么字符就会按照一定规则翻译成为一个数字
byte num4 = 50; //注意!右侧的数值大小不能超过左侧的类型范围
byte num5 = 60;
//byte + byte --> int + int --> int
int result1 = num4 + num5
System.out.println(result1); //110
short num6 = 40;
//byte + short --> int + int --> int
//int result2 = num4 + num6;
//int强制转换为short:注意必须保证逻辑上真实大小本来就没有超过short范围,否则会发送数据溢出。
short result2 = (short)(num4 + num6);
}
}
``` java自学推荐看视频{:1_886:} 九分叶里狼 发表于 2021-7-9 15:26
java自学推荐看视频
有的,视频文档结合着看,顺便做一些笔记 有空的时候看看加深下印象 {:1_908:}这是才起步呀,加油 vvvwxf 发表于 2021-7-9 15:38
这是才起步呀,加油
会的,谢谢支持:lol 加油加油{:1_927:} 小白不怂 发表于 2021-7-9 17:12
加油加油
会的,谢谢支持 加油!
我也正在自学JAVA yasuoren 发表于 2021-7-9 18:41
加油!
我也正在自学JAVA
嗯嗯 加油! 谢谢分享
页:
[1]