基础语法-赋值运算符
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.Java中赋值运算符语法简介
/** * 赋值运算符 * @author 尹正杰 * */ public class Dome1 { public static void main(String[] args) { /* * 常见的赋值运算符: * =: * 表示赋值运算符,如"a = 100". * +=: * 也是一种加法赋值运算符的一种简写形式,如"a += 100"表示 "a = a + 100". * -=: * 也是一种减法赋值运算符的一种简写形式,如"a -= 100"表示 "a = a - 100". * *=: * 也是一种乘法赋值运算符的一种简写形式,如"a *= 100"表示 "a = a * 100". * /=: * 也是一种除法赋值运算符的一种简写形式,如"a /= 100"表示 "a = a / 100". * %=: * 也是一种取模赋值运算符的一种简写形式,如"a %= 100"表示 "a = a % 100". */ int a = 100; a += 20; //等价于a = a + 20; System.out.println(a); short b = 10; //b = b + 20; //这种写法时编译失败的,因为b会被隐式提升为int类型,运算之后的结果还是int类型,所以赋值给short类型会失败,即会有安全隐患。 b = (short)(b + 20); //等价于 "b += 20;",因为"+="运算在赋值时,会自动帮咱们完成了转换操作. System.out.println(b); } }
二.不引入第三方变量使得两个整数值发生互换
public class Demo { public static void main(String[] args) { /* * 面试题: * 对两个整数变量的值进行互换,不使用第三方变量. */ int x = 3000; int y = 6000; System.out.println("x=" + x + ",y=" + y); //使用第三方变量实现两个整数变量的值进行互换,不符合题意. // int temp = x; // x = y; // y = temp; // System.out.println("x=" + x + ",y=" + y); /* * 虽然没有引入一个新的变量就实现了整数互换,但是这种方式有一个安全隐患. * * 当x和y的值都比较大,那么相加后的结果可能会超过int的取值范围,因此这种方法不推荐使用. */ // x = x + y; // y = x - y; // x = x - y; // System.out.println("x=" + x + ",y=" + y); /* * 使用^位运算符,这种方式使用了位运算,效率是最高,而且还能避免超出int取值范围的问题. * * 但是可读性很差,这种形式只有在面试的时候会写,一般工作中都会借助于第三方变量实现. */ x = x ^ y; y = x ^ y; x = x ^ y; System.out.println("x=" + x + ",y=" + y); } }