1.String和int之间的转换
int a = 10;
int b = 20;
String ret = "计算结果:" + a + b ;
则输出的结果为计算结果:1020
因为在java中其他类型和字符串相"+"都会将其他类型转换为字符串并进行拼接操作。
2.String->int
调用整型包装类Integer的parselnt方法
字符串必须为纯数字组成,且要在int的保存范围内
例:
String str = "12345";
int a = Integer.parseInt(str);
输出a和a+1 结果为12345 和12346 由于12345为字符串并且转换成了整型所以可以完成正常的运算;并且字符串因为是纯数字所以不能超过整型的范围,如果超出范围则会报错。
3.算数运算符
除了+ - * / 还有%,"%"表示求余数 例:12%5 输出结果为2。 并且在除法和取模运算中右侧不能为0
运算符还包括+= -= *= /= 例a+=2 就是a+2
++ -- 如果前置则先自增再取值 反之先取值后自增 ==表示等于不是赋值
4.逻辑运算符
&&类似于数学中的与 有一个假则假,||为数学中的或 一个真则为真。并且在使用&&||时必须左右都为boolean表达式;!为逻辑取反。
还有一个重要的短路求值问题。
打印(10>20&&10/0==0)即便10/0为错误表达,但是因为10>20为假,所以发生短路。
按位与&
int a = 10;
int b = 20;
输出a&b :运算法则为10的二进制为01010 20的二进制为10100 都为1则返回1,否则为0,所以最终结果为00000.
按位或|:两个都为0则返回0,否则1
按位异或:两个相同返回0,不同返回1
按位取反:符号为~ 取反时 正数变为负数,绝对值-1;负数变正数,绝对值-1
5.移位运算
<<相当于*2 >> 相当于/2 +的优先级大于移位
条件运算符:三目运算符 表达式1?表达式2:表达式3 表达式1 true则返回表达式2的值,否则为3的值
6.顺序结构
1.if...else if(布尔表达式){//满足条件时执行的语句}
2.if...else ...分支
if(布尔表达式){
//满足表达式1执行的语句
}else{
//不满足1执行的语句
}
3. if(表达式){
//语句1
}else if(表达式2){
//语句2
}
互斥关系,只能走一个分支。
例: