>大于
>= 大于等于
< 小于
<= 小于等于
以上操作符只适用于整数类型和浮点数类型;
int a=1,b=1;
double d=1.0;
boolean result1 = a>b; //result1的值为false;
boolean result2 = a<b; //result2的值为false;
boolean result3 = a>=d; //result3的值为true;
boolean result4 = a<=b; //result4的值为true;
#### instanceof
判断一个引用类型所引用的对象是否是一个类的实例。该操作符左边是一个对象,右边是一个类名或接口名。形式如下:
如:String str="hello"
System.out.println(str instanceof String);
System.out.println(str instanceof Object);
System.out.println(str instanceof Student); //false
java.lang.Object是所有类的父类, 每一个类都会默认继承Object 子类是一个父类 是is a的关系
== 等于 != 不等于 既可以是基本类型,也可以是引用类型: 基本数据类型比较是真正的数值 引用类型比较的是地址,如果要比较引用类型真正的数据使用equals
如:int a=1,b=1;
System.out.println(a==b); //输出true;
如:String s1="hello";
String s2="hello";
String s3=new String("hello");
String s4=new String("hello");
System.out.println(s1==s2); //true
System.out.println(s3==s4); //false
System.out.println(s1==s3); //false
System.out.println(s3.equals(s4)); //true
算术右移位运算,也称做带符号右移位运算。最高为补符号位。
> 逻辑右移位运算,也称为不带符号右移位运算。
> << 左移位运算,也称为不带符号左移位运算。
&: 与运算,运算规则为:1&1->1, 1&0->0, 0&1->0, 0&0->0;
|: 或运算,运算规则为:1|1->1, 1|0->1, 0|1->1, 0|0->0;
^: 异或运算,运算规则为:1^1->0, 1^0->1, 0^1->1, 0^0->0;
两个值相同为0,不同为1;
~ : 取反运算, ~1->0, ~0->1;
例如:8>>2====>8/2^2=2
8:0000...00001000
0000.........10 ====>2
8>>>3=====>8/2^3=1
8:0000...00001000
00000000.000001=====>1
8<<2======>8*2^2=32
8:0000...00001000
000000000100000======>32
1&1=1 1&0=0 0&0=0
1|1=1 1|0=1 0|0=0
1^1=0 1^0=1 0^0=0
~1=0
~0=1
8&2=0 8|2=10 8^2=10
~8=
~2=
1010
10===>第三位置1===>14
10===>第二位清0===>8
10===>第一位置反===>11
10===>输出相应的二进制
短路操作符: 如果能根据操作左边的布尔表达式就能推算出整个表达式的布尔值,将不执行操作符右边的布尔表达式;
&&:左边的布尔表达式的值为false, 整个表达式值肯定为false,
此时会忽略执行右边的布尔表达式。
||:左边的布尔表达式的值为true, 整个表达式值肯定为true,
此时会忽略执行右边的布尔表达式。
if(条件1&&条件2){}
if条件1为假,不会执行条件2
if条件1为真,会执行条件2
if(条件1||条件2){}
if条件1为真,不会执行条件2
if条件1为假,会执行条件2
布尔表达式 ? 表达式1 : 表达式2
如果布尔表达式的值为true,就返回表达式1的值,否则返回表达式2的值。
int score = 61;
String result = score>=60?"及格":"不及格";
h)++,--
前++与后++
前--与后--
int a=10;
b=++a =====>a=11,b=11,先计算,后赋值
b=a++ =====>a=11,b=10,先赋值,后计算
System.out.println("a:"+a+" b:"+b);
隐式的数据类型转换:精度小的数据给精度大的数据
强制(显式)的数据类型转换:(type)精度大的数据给精度小的数据
System.out.println((int)(char)(byte)-1);
数据类型在转换的时候注意:
a)如果将精度小的数据转为精度大的数据时。
如果转之前是有符号数,在前面补符号位
如果转之前是无符号数,在前面补0
b)如果将精度大的数据转为精度小的数据时。
从低位窃取位数
隐式的数据类型转换:子类转换父类
强制(显式)的数据类型转换:父类转换子类
String str="hello";
Object o=str;
String str2=(String)o;