用你平凡人生中的一年,赌一次不平凡的人生,何乐而不为呢?
字符串数据和任何数据使用+都是相连接,最终都会变成字符串。
class Operator
{
public static void main(String[] args)
{
System.out.println("5+5="+5+5);
}
}
这段代码的输出结果是5+5=55
再如
class Operator
{
public static void main(String[] args)
{
int a=3,b=4;
System.out.println("a="+a+",b="+b);
}
}
这段代码结果是,a=3,b=4
转义字符:\
放在被转义字符的前面。上面图片中最后一行代码输出的是''hello"
在java中short和char都是占俩字节
一道运算符的题:
short s=2;
1、s=s+4;
2、s+=4;
两句有结果有何不同?
答:1句报错,short类型的s在和默认int类型的4相加时结果是int 类型,无法装入short 类型的s中。2句编译通过,结果是6。因为+=是一个运算符,和=一样具有强制类型转换的功能。1句相当于两次运算,一次相加一次赋值。
&&与&的区别:&&的效率更高,当&&左侧为假就不再判断后面的东西了。而&会全部运算,无论左边是真还是假。
|| 与 | 类似。
<<左移运算符,相当于乘2,移后补0
>>右移运算符,相当于除2,移后由最高位决定补什么
移n位,相当于乘或除2的n次幂。
>>>右移后空位补0,无论正负都补0
一个超智慧的小技巧:
如何交换两个变量的值?
法一:定义一个第三方变量
int a=3,b=5;
int temp=a;
a=b;
b=temp;
法二:
int a=3,b=5;
a=a+b;
b=a-b; //相当于b=(a+b)-b,所以此时b里放的是3
a=a-b; //相当于a=(a+b)-b,由于b里放的是原来a的值,so~
法三:用异或,原理是:一个数异或同一个数两次,结果是原来的值。
int a=3,b=5;
a=a^b;
b=a^b; //相当于b=(a^b)^b,结果是b=a
a=a^b; //相当于a=(a^b)^b,而此时b 里放的是原来的a,所以相当于a=(a^b)^a,结果放的是b
计算机是怎样进行进制转换的?
把32位每四位一次,用最低四位&15,再把原数向右移四位让原来的8-12位成为新的低四位,直到全部取完。原理图如下:
代码表示如下 :
此处一个小注意点是:右移要用>>>而不能用>>因为,遇到负数,>>右移补的最高位是1,成了有效位,这数永远取不完。而>>>右移补0。
三元运算符(x>1)?A:B;
它比if(x>1) A else B简单易用。但也有局限性:1判断必须有结果而不能只是一个输出,2如果A和B类型不同会被强制转化成同类型。如下图,第一个输出,不是C而是67。因为?char:int;char被提升成了int