栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java运算符

  作为一门计算机语言, Java 提供了一套丰富的运算符来操纵变量。 Java 中运算符可分为以下:算术运算符 (+ - * /)、关系运算符 (< > ==) 、逻辑运算符、位运算符、 移位运算符以及条件运算符等。 算术运算符 下面是算术运算符的使用
        int a = 30;
        int b = 10;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);
        System.out.println(a%b);

 加减乘除和数学里面的没有区别,取模运算相当于数学中除法的余数

下面我们看一下字符串

        String str = "ObiWan";
        System.out.println(str);

字符串相加是什么效果?

 我们可以看到他是拼接在一起了

如果字符串加数字会怎么样?

我们没有得到ObiWan30,而是得到了ObiWan1020

这是为什么?

因为:其他数据类型和字符串使用+拼接,结果就是一个字符串

那我们要是想要得到ObiWan30,怎么做呢?

 两个解决办法,第一个办法是把数字加法放到前面,第二个办法是加括号

我们想要10+20在前面还是输出1020ObiWan,怎么做呢?

我们想要输出a=10,b=20,又怎么做呢?

 第一个,我们可以给10+20的中间加上“”,中间加不加空格都可以,这样相当于数字加字符串加数字加字符串,而不是数字加数字加字符串

第二个也是同样的方法,把其中一个数字变成字符串,就可以了

我们再看一下java的转义字符

下面这些代码的输出是什么 

        String s1 = ""bit"";
        String s2 = "\bit\";
        String s3 = "\\bit\\"

答案是

\代表一个反斜字符
"代表一个双引号字符

那么数字可不可以转换成字符串呢?

 

 可以看到它输出了一个10

 我们借用一个String.valueof()

这个方法里面可以看到八大类型都在里面

 

 就变成了字符串

我们还可以字符串变整数

是用 Integer.valueOf

 做几个简单的数学题

        System.out.println(10%3);
        System.out.println(-10%3);
        System.out.println(10%-3);
        System.out.println(-10%-3);

答案是多少呢?

 因为java里面的,取余,求模,取模全是求余数

自增/自减运算符 ++ -- 下面这段代码结果是什么
        int a = 10;
        int b = a++;
        int c = 10;
        int d = ++c;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);

 

  1. 如果单独使用,【前置++】和【后置++】没有任何区别
  2. 如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式 结束时给变量+1
  3. 只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改
关系运算符 关系运算符主要有六个 : == != < > <= >= ,其计算结果是 true 或者 false 。 使用关系运算符,其结果就有一个是布尔值 if(布尔表达式) [表达式1 && 表达式2]   -> 这两个表达式都是布尔表达式 问,下面这段代码,什么结果,那些输出true , 那些输出false
        System.out.println(a == b);
        System.out.println(a != b);
        System.out.println(a < b);
        System.out.println(a > b);
        System.out.println(a <= b);
        System.out.println(a >= b);

逻辑运算符  逻辑运算符主要有三个 : && || ! ,运算结果都是 boolean 类型。 语法规则:表达式 1 && 表达式 2 ,左右表达式必须是 boolean 类型的结果。
        int a = 1;
        int b = 2;
        System.out.println(a==1 && b==2);
        System.out.println(a==1 && b > 100);
        System.out.println(a>100 && b==2);
        System.out.println(a>100 && b>100);

上面代码结果是什么?

 两个表达式都为真,结果才是真,只要有一个是假,结果就是假。

逻辑 || 语法规则:表达式 1 || 表达式 2 ,左右表达式必须是 boolean 类型的结果。 下面这段代码又是什么结果
        int a = 1;
        int b = 2;
        System.out.println(a==1 || b==2);
        System.out.println(a==1 || b > 100);
        System.out.println(a>100 || b==2);
        System.out.println(a>100 || b>100);

左右表达式至少有一个位真,则结果为真 

逻辑非 !

语法规则: ! 表达式 ,真变假,假变真。 下面这段代码结果又是什么
        int a = 1;
        System.out.println(!(a==1));
        System.out.println(!(a!=1));

 

短路求值 && 和 || 遵守短路求值的规则 代码结果是什么
        System.out.println(10 > 20 && 10 / 0 == 0);
        System.out.println(10 < 20 || 10 / 0 == 0);

 

我们都知道 , 计算 10 / 0 会导致程序抛出异常 . 但是上面的代码却能正常运行 , 说明 10 / 0 并没有真正被求值 . 注意 :
  1. 对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.
  2. 对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.
  3. & 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值.

下面这段代码结果是什么?

        System.out.println(10 > 20 & 10 / 0 == 0);
        System.out.println(10 > 20 | 10 / 0 == 0);

  位运算符

 移位运算 移位运算符有三个 : << >> >>> ,都是二元运算符,且都是按照二进制比特位来运算的。 1. 左移 << : 最左侧位不要了, 最右侧补 0. 注意: 向左移位时,丢弃的是符号位,因此正数左移可能会编程负数

 

2. 右移 >> : 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

 

无符号右移 >>>: 最右侧位不要了, 最左侧补 0. 1111 1111 >>> 1 -> 0111 1111 注意 : 1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方. 2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方. 3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替. 4. 移动负数位或者移位位数过大都没有意义. 条件运算符:三目运算符

表达式1?表达式2:表达式3

表达式为布尔表达式

运算符的优先级 注意:运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号即可.
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029006.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号