java运算符的一些小知识点和数据类型的补充

来源:互联网 发布:简述单片机的引脚功能 编辑:程序博客网 时间:2024/05/18 20:35

1.'+'在String类型中起连接字符串的作用

System.out.println(3+4+"hello!");//输出结果是7hello!
System.out.println("hello!"+3+4);//输出结果是hello!34

补充:

1.java中整数型默认为int,浮点数默认为double。如果要声明long型加L(l),声明float型加F(f)。

int binVal1=0b11010100;int binVal3=0B10000000000000000000000000000011;System.out.println(binVal1);//输出212System.out.println(binVal2);//输出105byte binVal4=(byte)0b11101001;System.out.println(binVal3);//输出-2147483645byte binVal2=0B01101001;//128到+127所以byte中元素都没超过范围,如果直接将一个较小的整数常量(在byte,short范围内)赋给一个byte或short的变量,系统会自动把这个整数常量当成byte和short类型处理。System.out.println(binVal4);//输出-23,强制转换,00000000000000000000000011101001 转换后保留八位 11101001 可以看作这八位在计算机中存储的形态为负数的补码 所以对应的原码为10010111=-23

注意:对于某类型的常数,如果有n位赋值的时候给出了n位,则最高位就是符号位,否则是数值位,符号位只有一位,其他没写出来的都是在原码中的0.


2. |和||、&和&& 的区别

int a=5;int b=10;if(a>4|b++<10)System.out.println("a="+a+"b="+b);//a=5,b=11虽然已经没必要求b但是这个运算就是和||的区别体现int c=5;int d=10;if(a>4||b++<10)System.out.println("c="+c+"d="+d);


3. 运算符的结合性和优先级

所有的数学运算符是从左往右运算的,java中也不例外,只有单目运算符、赋值运算符和三目运算符是从右往左的。

运算符的优先级     

     

运算符说明

Java运算符

分隔符

. [] () {} , ;

单目运算符

++ -- ~ !

强制类型转换运算符

(byte)

乘法/除法/取余

/ * %

加法/减法

+ -

移位运算符

<< >> >>>

关系运算符

< <= >= > instanceof

等价运算符

== !=

按位与

&

按位异或

^

按位或

|

条件与

&&

条件或

||

三目运算符

?:

赋值

= += -= *= /= &= != %= <<= >>= >>>=