Java -- 表达式类型的自动提升】的更多相关文章

当一个java算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升.Java定义如下的自动提升规则:1. 所有byte型.short型和char型将被提升到int型. 2. 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型.操作数的等级排列如下图所示,位于箭头右边类型的等级高于位于箭头左边类型的等级. byte b1 = 3; byte b2 = 4; byte b3 =b1+b2;  x 在运算期间,b1和b2被自动提升为int byte b3 =(b…
1. 提升规则: a. 所有byte型,short型和char型将被提升到int型. b. 整个算数表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型. 例1: short val = 5; val = val -2 ; 编译时将报错 "Type mismatch: cannot convert from int to short",表达式中右边的val自动提升为int型,int --> short故报错. 例2: byte b = 40; char c = 'a';…
变量只能定义一次,不能定义两次, 变量的作用域:当前的大括号与子括号才有效 变量的作用:存储值,取值 整型:向上自动升级,向下强制降级 char,byte,shot参与运算时候自动提升为int型 因为byte,char,shot在运行时候会有溢出的情况,所以自动提升.两个int参与运算时候 不会提升为long,不会报错,但是会损失精度 任何的整数类型和long类型做运算都会转换成long类型 整型默认为int型…
问题一:在进行赋值运算时,进行类型提升: 例如:short s1 = 1;s1 = s1 + 1; (错的编译通不过) short s2 = 1;s2 += 1;(正确,编译和运行都能通过) 为什么呢?这其中就涉及到了类型的自动提升问题.解释如下: short s1 = 1; // 这个表达式会进行自动类型提示,因为1为int类型, // 所以提升后整体的数据类型为int类型.因为short类型为2个字节,int类型为4个字节, // 把四个字节的内容放到2个字节的内容中,编译肯定通不过. //…
基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型.java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. 1. Java的简单类型及其封装器类 Java基本类型共有八种: 基本类型可以分为三类:字符类型char,布尔类型boolean以及数值类型byte.short.int.long.float.double.数值类型又可以分为整数类型byte.short.int.long和浮点数类型float.double.JAV…
1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = s1 + 1; s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的错误.需要改为short s1=1; s1=(short)(s1+1);结果就是short类型. 例如:short s1 = 1; s1…
1 表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如: short s1 = 1; s1 = s1 + 1; s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的错误.需要改为short s1=1; s1=(short)(s1+1);结果就是short类型. 例如: short s1 = 1;…
1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = s1 + 1; s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的错误.需要改为short s1=1; s1=(short)(s1+1);结果就是short类型. 例如:short s1 = 1; s1…
1.Java的8种基本数据类型及其所占空间大小: boolean  8bit/1byte       byte      8bit/1byte       char      16bit/2byte       short     16bit/2byte float      32bit/4byte       int        32bit/4byte       long      64bit/8byte       double  64bit/8byte   2.Java自动类型转换  …