3.操作符
3.操作符
3.1 更简单的打印语句
import中插入了static关键字,import static net.mindview.util.Print.* ; 打印直接通过:print("Hello,World") ;可以简化代码。
3.2 使用Java操作符
利用操作符作用于操作数,生成一个新值。
3.3 优先级
先乘除后加减,还可以用括号明确计算顺序。打印语句中包含“+”操作符,进行字符串连接。
3.4 赋值
赋值就是说,取右边的值(常数、变量或表达式),把它复制给左边(必须为明确、已命名的变量)。
基本类型赋值:复制的是内容。
对象的“赋值”:复制的是引用。如对象 a=b,那么a和b复制了同一个引用(原来只有d指向的那个对象)
t1和t2两个对象在指向了同一个引用之后,当t1指向的对象被改变,t2也随之改变。
以上的f()并不只是在作用域内进行参数Letter y的复制,而是将引用传入,而进行了指向对象的修改。
3.5 算数操作符
“+”,“-”,“*”,“/”,“%(取模:从整数除法中产生余数)”,操作符紧跟等号实现运算、赋值。
产生随机数:Random rand = new Random(),当创建过程没传递参数时,Java利用当前时间作为随机数生成器的种子,所以每次都会产生不同的随机数,如果传递参数,那么种子既定,每次都会产生相同的随机数。调用Random对象的nextInt(),nextFloat,nextLong(),nextDouble()方法可以产生相应类型的随机数。
一元加减号和二元加减号相同,x=-a,和x=c-a编译器可以自动判断,一元减号可以改变符号,一元加号只是与一元减号对应并将操作数提升为int。
3.6 自动递增/自动递减
他们不仅使用了自己的值,还改变了操作数,前缀加减(++i)是先运算再生成值,后缀加减(i++)是先生成值再运算。
3.7 关系操作符
关系操作符(<,>,<=,>=,==,!=)计算操作数间关系,结果为true或false,==和!=使用包括boolean类型的所有类型,其余比较符不适用于boolean类型,true和false无法比较。
==和!=可以比较对象和基本类型,比较对象:比较的是引用;比较基本类型:直接比较的是内容。
equals():默认比较对象引用,当在新类中覆盖equals方法时,可以来比较对象内容(大多数java类库都实现了equals()方法,所以通常情况比较对象内容)。
3.8 逻辑操作符
逻辑操作符:与(&&)、或(||)、非(!)只能判断布尔值,对浮点数比较时,极微小的差异也认为“不相等”。
操作符&&和||两边条件并不是全部运行,if((....)&&(...)&&(...)):前面有一个不符合,后面即不运行。if((....)||(...)||(...)):前面有一个符合,后面也不再浪费时间运行,获得潜在性能提升。
代码:
public static void main(String args[]){
int i=3;
int j =4;
if((i<5)||(i>j++)){
System.out.println("短路"+j); //j结果为4
}
public static void main(String args[]){
int i=3;
int j =4;
if((i>5)&&(i<j++)){
System.out.println("i>5");
}
System.out.println(j); //j结果为4
}