文章目录

  • java基础语法
  • 运算符
  • 赋值运算符
  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 按位与(&)
  • 按位或(|)
  • 按位异或(^)
  • 按位反 (~)
  • 移位运算符
  • 左移位(左移1位)
  • 右移位(右移1位)
  • 条件运算符


java基础语法

运算符

赋值运算符

即 ”=“符号,给变量进行赋值,注意这不是数学中的等于,数学中的等于再java中是”==“。

算术运算符

算术运算符即我们生活学习中经常用到的四则运算(±*/)外加一个取余运算(%)

public class markdown2 {
 public static void main(String[] args) {
 long a=2000l;
 long b=3l;
 System.out.println(a/b);
 }
 }


结果:666

  • 整型除以整型得到的结果仍然是整数,不是四舍五入而是直接舍去小数
    如果, double c=a/b,那么结果是什么呢?
    答案是,666.0,这里是先将a/b进行运算,得到的类型是long类型的666,再对long类型进行隐式转换为double类型
    除法和取模中除数不能为0
    在进行算术运算有时也可以对其进行简化,如a=a+2可简化为,a+=2,其他运算同理可以更进一步,当a=a+1时既可以a+=1,a++;(减法也如此)

关系运算符

即数学中的比较符号,包括”<,>,==,<=,>=,!=“

逻辑运算符

就是我们常说的 与,或,非,符号分别是:&&,||,!
与:A与B,只有当A和B都为真的情况下得到的结果才为真
或:A或B,只有当A和B都为假的情况下得到的结果才为假
非:!A 简单理解就是取它相反的结果,A为真得到的结果为假,A为假得到的结果为真

*有个东西叫短路求值,A && B,当A为假时,结果一定为假,故判断完A后可以直接得到结果,这就是短路求值,同理,对于A||B,当A为真时,结果一定为真,故判断完A后可以直接得到结果
那么问题来了
boolean a=(1>0 || 1/00)
结果是 ,报错?true?false?
答案是true,因为计算了1>0为真即可直接得到结果,不会再取计算1/0
0的结果,故尽管1/0==0,是不合法但也不会报错
& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && 和 || 相比, 它们不支持短路求值.

位运算符

java中位运算符主要有四个: &(与) |(或) ~(取反) ^(异或) ,除 ~ 是一元运算符外,其余都是二元运算符。
位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位	 运算就是在按照二进制位的每一位依次进行计算.

按位与(&)

对于数A(用二进制表示)与数B(用二进制表示),对数A与数B的每一位进行与计算,只有都为1时返回的结果才是1
举例:1111 与 1001 得到的结果是 1 0 0 1

按位或(|)

与按位与类似,不同的是,只有都为0时返回的结果才是0
举例:1111 或 1001 得到的结果是 1111

按位异或(^)

与按位与类似,不同的是,只有当二者值不同(即一个1 一个 0 )时,结果才是1,相同时为0
举例:1111 与 1001 得到的结果是 0 1 1 0

按位反 (~)

这是一元计算符
~1111 得到的结果是 0000

移位运算符

移位运算符有三个: << >> >>> ,都是二元运算符,且都是按照二进制比特位来运算的。

左移位(左移1位)

最左侧一位不要了,最右侧补零,最左侧一位如果是零,相当于乘以二(如果是一,则没有此规律,变化会很大)

右移位(右移1位)

最右侧一位不要了,最右侧补零,最右侧一位如果是0,相当于除以二,如果是一,则没有此规律

条件运算符

又称三目运算符
语法格式:A:B?C 解释,当A为真时,返回的结果是B,为假时返回的结果是C

public class test {
    public static void main(String[] args) {
        // 求两个整数的最大值
        int a = 20;
        int b = 30;
        int max = a > b ? a : b;
        System.out.println(max);
		//max的值是30
    }
}