Java类型转换笔记

导读:本篇文章讲解 Java类型转换笔记,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Java类型转换笔记

关于基本数据类型之间的互相转换:转换规则

  • 1.八种基本数据类型当中除布尔类型之外剩下的7中类型之间都可以互相转换

  • 2.小容量向大容量转换,称为自动类型转换,容量从小到大排序:
    byte < short < int < long < float < double
    char <
    注:
    任何浮点类型不管占用多少个字节,都比整数型容量大。
    char和short可表示的种类数量相同,当时char可以取更大的正整数。【char和short的容量大小是同级的】

  • 3.大容量转换成小容量,叫做强制类型转换,需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用。

  • 4.当整数字面值没有超过byte,short,char的取值范围,可以赋值给byte,short,char类型的变量

  • 5.byte,short,char混合运算的时候,各自先转换成int类型再做运算。

  • 6.多种数据类型混合运算,先转换成容量最大的那种类型再做运算。
    注意通过:
    byte b = 3;可以编译通过,3没有超过byte类型取值范围

    int i=10;
    byte b =i/3;编译报错,编译器只检查语法,不会运算i / 3。

    public class DataTypeTest08{
    	public static void main(String[] args){
    		double dd = 10 / 3;//int类型的10和3计算后的结果是int类型的3,然后再转换成double的3.0
    		System.out.println(dd);
    		
    		System.out.println("---------------------------------------");
    		
    		dd = 10.0 / 3;//int类型的3先转换成double类型在计算,多种数据类型数据运算时,全部转换成大容量的类型在计算
    		System.out.println(dd);
    		
    		// 编译报错,因为1000已经超出范围了。
    		//byte b1 = 1000;
    		// 可以
    		byte b2 = 20;//20虽然是int类型,但是20没有超过byte的取值范围
    		// 可以
    		short s = 1000;//1000没有超过short的取值范围
    		// 可以
    		int c = 1000;//1000没有超过int的取值范围
    		// 可以
    		long d = c;//小容量转换成大容量,属于自动类型转换
    		// 编译报错
    		//int e = d;//d属于long类型,大容量转换成小容量,属于强制类型转换,需要强制类型转换符
    		// 可以
    		int f = 10 / 3;//int类型的10和3计算后的结果是int类型的3,然后再转换成double的3.0
    		// 可以
    		long g = 10;//int类型的10转换long类型的g,属于自动类型转换
    		// 编译报错
    		//int h = g / 3;//编译报错,编译器只检查语法,不会运算i / 3。
    		// 可以
    		long m = g / 3;//g属于long类型,int类型的3先转成long类型在计算
    		// 编译报错
    		//byte x = (byte)g / 3;//分子先把byte类型的g强转换为byte,然后整个运算式全转换为int在计算,得到int结果,还需要强制转换
    		// 可以
    		short y = (short)(g / 3);//先把(g/3)转换成long,然后再强转为short类型
    		// 可以
    		short i = 10;//10没有超过short类型的取值范围,可以直接赋值
    		// 可以
    		byte j = 5;//5没有超过byte类型的取值范围,可以直接赋值
    		// 编译报错
    		//short k = i + j;//先把i和j转换成int类型计算,得到int类型的结果,最后还需要进行强转
    		// 可以
    		int n = i + j;//int转int,无需操作
    		// 可以
    		char cc = 'a';
    		System.out.println(cc); // a
    		System.out.println((byte)cc); // 97运算式强转成byte
    		// cc 会先自动转换成int类型,再做运算
    		int o = cc + 100;
    		System.out.println(o); // 197
    	}
    }
    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94381.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!