javaSE基础知识(三)基本数据类型转换

java不支持 不同类型之间操作数的运算所以在编译的时候,所有的不同类型之间的操作数,必须进行同类型的转换之后才能运行,编译器来完成这个工作。

算数运算时的转换

类型转换的规则

  1. 如果多个操作数的类型是 byte short int char 那么进行运算的时候,所有的类型都自动转换为 int 然后再运行。
  2. 如果多个操作数的类型是 byte short int char而且有 long 那么进行运算的时候,所有的类型都自动转换为 long 然后再运行。
  3. 如果多个操作数的类型是 byte short int char long 而且有 float那么进行运算的时候,所有的类型都自动转换为 float 然后再运行。
  4. 如果多个操作数的类型是 byte short int char long float 而且有 double 那么进行运算的时候,所有的类型都自动转换为 double 然后再运行。

在Java中,boolean类型与所有其他7种类型都不能进行转换,这一点很明确。对于其他7中数值类型,它们之间都可以进行转换,但是可能会存在精度损失或者其他一些变化。转换分为自动转换和强制转换。对于自动转换(隐式),无需任何操作,而强制类型转换需要显式转换,即使用转换操作符(type)。首先将7种类型按下面顺序排列一下:
byte <(short=char)< int < long < float < double
如果从小转换到大,可以自动完成,而从大到小,必须强制转换。short和char两种相同类型也必须强制转换

赋值时的转换

基本规则

  1. 左值 变量类型只要大于等于右值表达式的返回值的类型即可

类型自动转换图

在这里插入图片描述

强制类型转换

通常希望将一个类型的数据转换为一个小类型的数据,需要将类型强制转换为小类型的数据
(强制转换类型)(操作数)
2. 复合运算符-----自带强制类型转换

练习

1.得到一个随机字符【A-Z】or【a-z】(大小也要随机)并打印出来。

import java.util.Random;
public class Test{
   public static void main (String[] args){
   //先随机得到一个大写字符
   final char MIN='A';
   final char MAX='Z'+1;
   char randomChar=(char)(Math.random()*(MAX-MIN)+MIN);
   System.out.println("随机的大写字符"+randomChar);
   //随机大小写
   Random random =new Random();
   boolean isUpperCase=random.nextBoolean();
   char resultChar=(char)(isUpperCase?randomChar:randomChar+32);
   System.out.println("随机的字符:"+resultChar);	
 }
}
发布了23 篇原创文章 · 获赞 4 · 访问量 384

猜你喜欢

转载自blog.csdn.net/weixin_44804206/article/details/105076957
今日推荐