008_Java类型转换

一、类型转换

针对基本数据类型之间的相互转换

1、转换规则
  • 自动类型转换 (小转大):数据范围转换成数据范围容量转换成容量)
  • 强制类型转换 (大转小):数据范围转换成数据范围容量转换成容量)
  • 注:强转需加强制类型转换符,程序才能编译通过,但运行阶段可能会损失精度,所以谨慎使用
2、注意点
  • 八种基本数据类型中除布尔类型boolean外,其余的七种基本数据类型之间可相互转换。
  • 当整数字面值没超过byte、short、char的取值范围,可直接赋值给byte、short、char类型的变量。
  • char和short可表示的取值范围数据量相同,但char可取更大的正整数,原因是char无负数取值。
  • byte、short、char混合运算时,都各自转换成int类型做运算。
  • 任何浮点型不管占用多少个字节,都比整数型容量大。比如,long型占8个字节,float型占4个字节,但浮点型float容量比长整型long大。
  • 多种基本数据类型混合运算时,转换成当中容量最大的那种类型做运算。
3、“栗子”

"胶己" 整理的 "栗子"

package javabasis;

public class TypeConversion {

	public static void main(String[] args) {
		System.out.println("举“栗子”");
		/**
		 * 没有类型转换
		 *    1、当整数字面值没超过byte、short、char的取值范围,可直接赋值给byte、short、char类型的变量
		 *    2、char和short可表示的取值范围数据量相同,但char可取更大的正整数,原因是char无负数取值。
		 */
		byte numByte1 = 12;			// byte	取值范围:-128~127
		short numShort1 = 32767;	// short取值范围:-32768~32767	
		char numChar1 = 97;			// char	取值范围:0~65535

		System.out.println("numByte1 = " + numByte1);
		System.out.println("numShort1 = " + numShort1);
		System.out.println("numChar1 = " + numChar1);
		System.out.println("---------华丽的分割线1------------");
		
		/**
		 * 自动类型转换 (隐式)
		 * 	  1、数据范围小转换成数据范围大(小容量转换成大容量)
		 * 	  2、整数型默认为int型
		 *    3、任何浮点型不管占用多少个字节,都比整数型容量大
		 */
		long numLong1 = 120;		 // 整数型默认为int型,所以120为int型,赋值给long型变量,小容量转换成大容量,属于自动类型转换
		float numFloat1 = numLong1;	 // long占8个字节,float占4个字节,但浮点型float容量比长整型long大。
		System.out.println("numLong1 = " + numLong1);
		System.out.println("numFloat1 = " + numFloat1);
		System.out.println("---------华丽的分割线2------------");
		
		/**
		 * 强制类型转换 (显式)
		 *    1、数据范围大转换成数据范围小(大容量转换成小容量)
		 * 	  2、强转需加强制类型转换符:也就是在字面值前赋值运算符后加上小括号和想要转换的类型
		 *    3、强转在运行时可能损失精度,所以谨慎使用
		 */
		long numLong2 = 1000L;
		int numInt2 = (int)numLong2;
		System.out.println("numLong2 = " + numLong2);
		System.out.println("numInt2 = " + numInt2);
		
		byte numByte2 = (byte)128;
		System.out.println("numByte2 = " + numByte2);	// -128 损失精度
		System.out.println("---------华丽的分割线3------------");
		
		// 多种基本数据类型混合运算时,先转换成当中容量最大的那种类型再做运算
		byte numByte3 = 8;
		int numInt3 = 20;
		double numDouble3 = 120.2;
		// byte、int、double三种不同类型混合运算,先将小容量byte和int转换成大容量double再做运算
		double result = numByte3 + numInt3 + numDouble3;  // result = 8.0 + 20.0 + 120.2
		System.out.println("result = " + result);
	}
}

运行 结果


🍅🍅🍅 以往文章 👇

001_Java语言发展历程
002_Java语言的八大特性
003_浅析JDK、JRE、JVM的区别和联系
004_JDK的下载安装与环境变量的配置
005_常用DOS命令
006_Java关键字、标识符、注释
007_Java八大基本数据类型
009_Java运算符
010_Java流程控制语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值