一(算术运算符):
+ ; - ; *(乘);/(除) ;%(取余数)
对于 /(除法)而言,若左右两边都是整数,就会做相除取整运算,如果左右两边有一边为小数,就做正常的除法运算。
在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。例如,(-5)%3的结果为-2,而5%(-3)的结果为2.
二(关系运算符(比较运算符)):
< > <=(小于或等于) >=(大于或等于) ==(等于) !=(不等于)
关系运算符,算出来的结果为boolean类型,要么为true,要么为false。
三(逻辑运算符/位运算符):
& 与:&左右两边的条件都为true的时候,最终结果才为true,否则结果都为false(一假则假)
| 或:| 左右两边的条件都为false的时候,最终结果才为false,否则结果都为true(一真则真)
! 非: 颠倒黑白
^ 异或:相同为假,不同为真。当运算符两边的boolean值相同时(都为true或false),其结果为 false。当两边的boolean值不相同时,其结果为true。
四(自增与自减):
自增:
前++ 比如 ++j 表示先将j的值自加1,然后加1后的结果再参与运算
后++ 比如 j++ 表示先用j的值参与运算,然后j的值再自加1
自减:
前-- 比如 --j 表示先将j的值自减1,然后减1后的结果再参与运算
后-- 比如 j-- 表示先用j的值参与运算,然后j的值再自减1
注意:num1+=num2————等价于num1=num1+num2
int a=10;
a+=5;//等价于a=a+5
System.out.println(a);//15
num1-=num2————等价于num1=num1-num2
int a=10;
a-=5;//等价于a=a-5
System.out.println(a);//5
num1*=num2————等价于num1=num1*num2
int a=10;
a*=5;//等价于a=a*5
System.out.println(a);//50
num1/=num2————等价于num1=num1/num2
int a=10;
a/=5;//等价于a=a/5
System.out.println(a);//2
num1%=num2————等价于num1=num1%num2
int a=10;
a%=5;//等价于a=a%5
System.out.println(a);//0
五(逻辑运算符):
逻辑运算符 (推荐)
&& (短路与) :左右两边的条件都为true的时候,最终结果才为true,否则结果都为false
左边表达式的结果为false,整个表达式的结果就已经为false。
此时右边的表达式的结果如何,对最终的结果毫无影响。
就不需要再做判断,右边的表达式会被屏蔽(会被短路)不再执行。
|| 短路或 左右两边的条件都为false的时候,最终结果才为false,否则结果都为true
左边表达式的结果为true,整个表达式的结果就已经为true。
此时右边的表达式的结果如何,对最终的结果毫无影响。
就不需要再做判断,右边的表达式会被屏蔽(会被短路)不再执行。
六(字符串):Java中的字符串类型——String类型(不是基本数据类型)
就是一串字符序列(由多个字符组成),用双引号包裹,里面可以写多个内容
eg:
String str="刀不锋利马太瘦,你拿什么和我斗!"
字符串中的字符索引(下标)从左往右是0开始,最小值为0,最大值为字符串长度-1。
0 1 2 3 4 5 67 8 9 10 11 12 13 14 15
String str="刀 锋 利 马 太 瘦,你 拿 什 么 和 我 斗!"
字符串常用的方法:
1.获取字符串的长度(有多少个字符): 字符串.length()
2.获取字符串中某个位置上的字符:字符串.charAt(索引),索引从0开始
3.截取字符串中部分字符串内容:
字符串.subString(start) 从start位置开始,截取全部的字符串
字符串.subString(start,end),截取从start位置开始,到end-1位置结束的字符串
注意:截取字符串的范围是[start,end),取不到索引为end的字符!!!
4.比较字符串的内容是否相同,比较结果为true或false;
注意:比较字符串不能使用 == ,需要使用equals()
格式: 字符串1.equals(字符串2)
5.比较字符串的同时忽略大小写:str1.equalsIgnoreCase(str2)。
七(三木运算符/条件运算符/三元运算符): 格式: 条件表达式?值1:值2;
如果条件表达式成立(结果为true),选择值1做最终结果,否则选择值2做最终结果
条件表达式: 使用关系运算符或者逻辑运算符组合而成的表达式,结果为boolean类型
使用三目运算符需要注意的问题:
1.值1和值2的数据类型要相同
2.值是什么数据类型,那么就需要用什么类型去接收最终结果
3.三目运算符可以嵌套使用(慎用,不推荐).
八(赋值运算符):赋值运算符中强制类型转换的自动实现
有+=,-=,*=,/=,%=这5种算术运算符。
我们在前面介绍过,在为变量赋值时,当两种数据类型彼此不兼容,或者目标类型取值范围小于源类型时,需要进行强制类型转换。例如,将一个int类型的值赋给一个short类型的变量,需要显示地进行强制类型转换。然而在使用5种赋值运算符进行赋值时,会自动完成强制类型转换,程序不需要做任何显示地声明。
package day03;
public class Demo3 {
public static void main(String[] args) {
short s=3;
int i=5;
s+=i;//s=(short)s+i
System.out.println("s="+s);
}
}