1.Java中的数据类型分几类?基本数据类型有哪些?
基本数据类型,和引用数据类型两大类。
基本数据类型分为:byte、short、int、long、bolean、float、double、char。
2.数据类型转换
隐式转换:小的数据类型转换大的数据类型。
强制转换:大的数据类型转换小的数据类型。
例题:
第一题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
b=b1+b2 //出错,1:byte与byte(或short,char)进行运算的时候会提升为int,两个int类型相加的结果也是int类型。2:b1和b2两个变量,变量存储的值是变化,在编译的时候无法判断里面的具体值,相加有可能超出byte的取值范围。
b=3+4 //正确的,java编译器有常量优化机制,3+4等效于7。
第二题
byte b = 10;
b++;
b = b + 1;
哪句是编译失败的呢?为什么呢?
b++; //正确,java虚拟机会做一个自动转换动作相当于b=(byte)(b+1)。
b = b + 1; //出错,java虚拟机会把,b转换成int类型相当于int b + int 类型的1 然后赋值给Byte类型 int是4个字节,byte是1个字节 所有会抛出损失精度错误。
3.常见的算术运算符有哪些?
+ - * / % ++ – += -= *= /=
+运算符的作用有哪些?
答:正号,字符串连接符号,算术运算符。
除法和取余的区别?
答: 除法是求商 % 求余数
++和–的使用规则?
a++ 先赋值在运算, ++a 先运算 再赋值(–同理)
+=运算的作用是什么? 等于自身去右边的数值,然后赋值给左边。
扩展的赋值运算符有什么特点? 系统会自动隐式转换。
4.short s = 1; s = s + 1;有没有问题?如果有怎么解决?
答:系统会抛出,损失精度的错误。需要改成 s = (short)(s + 1)
short s = 1; s += 1;有没有问题?如果有怎么解决?
答:没有问题,java虚拟机会自动转换。
5.常见的关系运算符有哪些。
答; 常见的关系运算符 == > < <= >= !=
6.关系运算符的结果有什么特点?
答:关系运算符输出的结果是boolean类型,要么为 true 要么为 false。