对象实例 instanceof 类名
,返回布尔值。判断实例是否属于这个类。Math.pow(2,3)
表示2^3。此方法参数与返回值都是double。int a = 3; boolean re = false && ++a > 4; System.out.println(a); //a=3,++a不会被运算 re = true || (a++)>4; System.out.println(a);//a=3,a++不会被运算,甚至括号都不能让其优先级提高。
byte a=-0b1_0000;//二进制的负数符号在最前面。在0b前面。 System.out.println("a:\t\t"+Integer.toBinaryString(a)); system.out.println("a>>1:\t"+Integer.toBinaryString(a>>1)); System.out.println("a<<1:\t"+Integer.toBinaryString(a<<1)); System.out.println("a>>>1:\t"+Integer.toBinaryString(a>>>1)); System.out.println("a>>>1:\t"+(a>>>1));//无符号右移 // byte y=a<<(byte)1; #error:不兼容的类型: 从int转换到byte可能会有损失。 应该将右式整体进行强制转化为byte类型。
输出结果:
a: 11111111111111111111111111110000 a>>1: 11111111111111111111111111111000 a<<1: 11111111111111111111111111100000 a>>>1: 1111111111111111111111111111000 a>>>1: 2147483640
移位运算符的返回值是int型或者unsigned int类型<实质是最高位是0的int类型的数>,即便运算数是byte类型。
类似byte a = (byte)16<<3
是错误的,因为赋值号右边得到的是int类型,而左边是byte,应该添加强制转换。
b+=a
与b=b+a
的区别是前者的数据类型为b的数据类型,而后者的数据类型要求a能够自动转换为b的数据类型才能不报错。int a = 1; byte b = 1; b += a; //隐含强制转化,此时b=2,为byte类型。 // b = a+b;此语句错误,右式自动转化我int类型,而int无法自动转化我byte,此处缺少强制转化。
int x = 10; int y = 20; int z = 30; System.out.println(""+x+y); System.out.println(x+y+""); System.out.println(x+y+""+z);
输出结果:
1020 30 3030
value=x?y:z 其中x是boolean值,若为true,返回y.若为false,返回z。