Java基本数据类型之间的转换


先看一张图压压惊(虚线部分表示转换时可能损失精度)

Java基本数据类型之间的转换_第1张图片


再来包辣条压压惊

package com.rongbiz.test;

/**
 * 测试自动转型和强制转型
 * @author Administrator
 *
 */
public class TestCast {
	
	
	public static void main(String[] args) {
		
//		char c  ='a';//97
//		int i = c+2;//char 直接当数用
//		System.out.println(i);
		
		// int 转byte -128~127
		byte b =123;//可以自动转换
//		byte b2 =300; 不能自动转换
		
		int i = -100;//-100超过char的表数范围
		char c = (char)i;//0~65535
		System.out.println(c);//ワ  当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断为一个完全 不同的值
		
		//表达式中的类型提升问题
		int d = 3;
		long e=4;
		//int f = d+e;//所有的二元运算(+,-,*,/,%),都会有类型提升的问题
		int f = (int)(d+e);
		
		int money = 1000000000;
		int year = 20;
		int total =year*money;//返回的是负数  溢出超出int范围
		long total2 = (long)money*year;//20000000000,先将money转换成long,乘积是long类型不会溢出
		System.out.println(total2);
	}

}




你可能感兴趣的:(Java基本数据类型之间的转换)