Java中的表达式
文章目录
一、运算符
Java中运算符大部分与C语言一样,在本文中只讲Java特殊的部分
1.位运算符
针对二进数的操作运算符,在图像处理、编码等方面常用。
(1)按位与运算符
A&B:A与B
– a: 0000000
& b: 1000001
————————
– c: 0000000
(2)按位或运算符
– a: 0000000
‘|’ b: 1000001
————————
– c: 1000001
(3)按位非运算符
b: 1000001
————————
~b: 0111110
(4)按位异或运算符
相异则为1,相同则为0
– a: 1000000
^ b: 1000001
————————
– c: 0000001
(5)应用案例
利用异或运算符进行加密
package sentence;
public class PassWord {
public static void main(String args[]) {
char a1 = '十', a2 = '点', a3 = '进', a4 = '攻';
//加密字符
char secret = 'A';
//加密
a1 = (char) (a1 ^ secret);
a2 = (char) (a2 ^ secret);
a3 = (char) (a3 ^ secret);
a4 = (char) (a4 ^ secret);
System.out.println("密文:"+a1+a2+a3+a4);
a1 = (char) (a1 ^ secret);
a2 = (char) (a2 ^ secret);
a3 = (char) (a3 ^ secret);
a4 = (char) (a4 ^ secret);
System.out.println("原文:"+a1+a2+a3+a4);
}
}
输出结果:
密文:匀烸辚敺
原文:十点进攻
2.移位运算符
(1)左移位
“<<”:二进数溢出最左位数,在最右位补零。
package sentence;
public class PassWord {
public static void main(String args[]) {
int num=11; //00001011
System.out.println(num<<2);
}
}
输出:44,即00101100
(2)左移位
“>>“: 二进数溢出最左位数,在最右位补零。
package sentence;
public class PassWord {
public static void main(String args[]) {
int num=11; //00001011
System.out.println(num>>2);
}
}
输出:2,即00000010
3.instanceof运算符
instanceof是对象obj比较运算符,即左边是对象,右边是类。
如(a instanceof B):
a是B类或B的子类创建的对象,返回true,否则返回false。
package sentence;
public class PassWord {
public static void main(String args[]) {
Cat cat=new Cat();
System.out.println(cat instanceof Dog);
}
}
class Dog{
int tall=30;
int len=60;
}
class Cat extends Dog{
int tall=30;
int len=60;
}
输出为true。
4.switch语句
switch语句中表达式的值为byte、short、int、char。
5.Scanner类
各种数据类型输入如下:
package sentence;
import java.util.*;
public class PassWord {
public static void main(String args[]) {
Scanner scanner=new Scanner(System.in); //建输入类
Boolean bools=scanner.nextBoolean(); //输入Boolean
Byte bytes=scanner.nextByte(); //输入Byte
Short shorts=scanner.nextShort(); //输入Short
Long longs=scanner.nextLong(); //输入Long
Float floats=scanner.nextFloat(); //输入Float
Double doubles=scanner.nextDouble(); //输入Double
}
}