第三章 操作符
一、更简单打印语句
Systme.out.println("");
用更简单的方法打印语句如下:
Import java.util.*;
Import static net.mindview.util.print.*;
println("");
二、操作符优先级
三、赋值
“=”:右边的值赋给左值,右值可以是任何常数,变量或者表达式,但是左值必须明确已命名的变量。不能把任何东西赋值给一个常数。常数不能作为左值。
四、有哪些操作符:
1、算术运算符
(1) X+=4 : x加4并将结果赋值给x
(2)产生随机数,并设置上限,下限为0
Random.nextInt(100)+1 ; random.nextFloat(100)+1 ;
Random.nextLong100)+1 ; random.nextDouble(100)+1 ;
(3)一元加减操作符
X= -a;
X= a * -b;
一元减号用于转变数据的符号,
一元加号唯一作用是将较小类型的操作数提升为int
(4)自动递增和递减
++a 表示a=a+1;
--a 表示a=a-1
a++ 或a-- 会先生成值,再执行运算。
2、关系运算符
1) 当对两个对象运用关系运算符进行比较时,比较的是object reference,如:
Integer n1 = new Integer(3);
Integer n2 = new Integer(3);
System.out.println(n1==n2);
结果为false,因为两个object reference(n1和n2)值是不同的
System.out.println(n1 !=n2);
结果为true。
2) quals()的缺省行为也是拿referenct来比较。不过Java中的class覆写了equals方法,如:
Integer n1 = new Integer(3);
Integer n2 = new Integer(3);
System.out.println(n1.quals(n2));//值为true
3)Equals()默认行为是比较引用
classValue{
Int i;
}
Public class Test{
Value v1= new Value();
Value v2= new Value();
v1.i =v2.i=100;
System.out.println(v1.equals(v2));//值为false
}
Equals()默认行为是比较引用 ,除非在自己的新类中覆盖equals()方法。
3、逻辑运算符
1) 只能将and、or、not施用于boolean值身上。如果逻辑运算符两边的值存在non-boolean值,将会出错,如:
int test1 = 1;
System.out.println((test && 1<2);//编辑出错,test是non-boolean值
2)短路 获得潜在的性能提成
3)直接常量:
例如:int i=0*2f (f表示类型)
Print(“i:”+integer.toBinaryString(i));
十六进制数适用于所有整数数据类型
二进制数没有直接常量表示方法
十六进制数和八进制数计数法,以二进制形式显示结果
4、移位运算符
如果所操作的位移对象是char、byte、short,位移动作发生之前,其值会先被晋升为int,运算结果会是int。
5、按位操作符
6、三元操作符和if-else
三元操作符:i<10 ? i*100 : i*10
If-else语句:
If(i<10)
Return i*100
Else
Return i*10
7、字符串操作符(+ 和+=)
注意:只要比int类型小(char,byte或short)在运算之前,值会自动转换成int
如果把结果赋值给较小的类型,必须使用类型转换(可能出现信息丢失)
Java 没有sizeof