Java中的运算符和C/C++相差无几。

数学运算符

数学运算,结果为一个数值。见下表:

运算符 说明 举例
+ 加法 1 + 2
- 减法 4 - 3.4
* 乘法 7 * 1.5
/ 除法 3.5 / 7
% 取余 7 % 2
++ 自增 3++
-- 自减 3--

关系运算符

关系运算符,结果为一个布尔值。见下表:

运算符 说明 举例
> 大于 a > 4.2
>= 大于等于 3.4 >= b
< 小于 1.5 < 9
<= 小于等于 6 <= 1
== 等于 2 == 2
!= 不等于 2 != 2
&& true && false
|| (3 > 1) || (2 == 1)
! !true

位运算符

位运算符对整数的二进制形式逐位进行逻辑运算,得到一个整数。见下表:

运算符 说明 举例
& 1 & 4
| 2 | 5
^ 异或 2 ^ 3
~ ~5
<< 左移 5 << 3
>> 右移 6 >> 1

条件运算符

Java中也有一个条件运算符(三目运算符):
    condition ? x1 : x2
condition为一个boolean值。根据condition,取x1或x2的值。

下面是关于运算符的一个综合举例:

 public class Demo {
2   public static void main(String[] args){
    int a=10;
4     int b=10;
    int x=10;
6     int y=21;
    int z=10;
    System.out.println("后自加 a=" + (a++));
9     System.out.println("a的值 a=" + a);
10     System.out.println("前自加 b=" + (++b));
    System.out.println("---------------------");
    System.out.println("说 x>y,对吗?" + (x>y));
    System.out.println("认为 x>y 并且 x<y,对吗?" + ( (x>y) && (x<y) ));
    System.out.println("认为 x>=y 或者 x==y,对吗?" + ( (x>=y) || (x==y) ));
    System.out.println("认为 x<y 或者 x=z,对吗?" + ( (x<y) || (x==z) ));
    System.out.println("---------------------");
17     System.out.println("a&x 的结果是:" + (a&x));
    System.out.println("a|x 的结果是:" + (a|x));
    System.out.println("y^z 的结果是:" + (y^z));
    System.out.println("---------------------");
    System.out.println("a 左移2位的结果是:" + (a<<2));
    System.out.println("y 右移3位的结果是:" + (y>>3));
23   }
}

运行结果:
后自加 a=10
a的值 a=11
前自加 b=11
---------------------
说 x>y,对吗?false
认为 x>y 并且 x<y,对吗?false
认为 x>=y 或者 x==y,对吗?false
认为 x<y 或者 x=z,对吗?true
---------------------
a&x 的结果是:10
a|x 的结果是:11
y^z 的结果是:31
---------------------
a 左移2位的结果是:44
y 右移3位的结果是:2

Java知多少(12)运算符的更多相关文章

  1. 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题

    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...

  2. Java知多少(完结篇)

    Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...

  3. Java知多少(14)数组

    如果希望保存一组有相同类型的数据,可以使用数组. 数组的定义和内存分配 Java 中定义数组的语法有两种: type arrayName[]; type[] arrayName; type 为Java ...

  4. Java知多少(上)

    Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...

  5. Java学习笔记四——运算符

    算术运算符 加减乘除(+.-.*./)就不说了. 求余运算符% 描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数 注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可 ...

  6. Java中的移位运算符

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  7. Java知多少(19)访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: 1 public class className { 2 // body of class 3 } 4 pr ...

  8. Java 逻辑运算符、位运算符、移位操作符 总结(Java 学习中的小记录)

    Java 逻辑运算符.位运算符.移位操作符  总结     作者:王可利(Star·星星) 逻辑运算符,表格如下: 解析逻辑运算符表: 1.与 (&) 特点:两个都为真的时候,结果为真.两个为 ...

  9. Java知多少(87)选择框和单选按钮(转)

    选择框.单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的 “on/off”选择功能,让用户在一组选择项目中作选择. 选择框 选择框(J ...

随机推荐

  1. bzoj4237: 稻草人 cdq分治 单调栈

    目录 题目链接 题解 代码 题目链接 bzoj4237: 稻草人 题解 暴力统计是n^2的 考虑统计一段区间对另一端的贡献 对于y值cdq分治,降调一维 对于当前两个分治区间统计上面那部分对下面那部分 ...

  2. BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)

    题目链接 一个点到达终点的期望步数 \(E_i=\sum_{(i,j)\in G}\frac{E_j+1}{out[i]}\),\(out[i]\)为点\(i\)的出度. 那么对于一个DAG可以直接在 ...

  3. HDU.2829.Lawrence(DP 斜率优化)

    题目链接 \(Description\) 给定一个\(n\)个数的序列,最多将序列分为\(m+1\)段,每段的价值是这段中所有数两两相乘的和.求最小总价值. \(Solution\) 写到这突然懒得写 ...

  4. Springzz中使用监听器,用于容器一启动就加载准备数据(application范围内的数据,用于减轻服务器压力,不用每次都去查数据)

    java代码: public class InitListener implements ServletContextListener { public void contextInitialized ...

  5. java中线程安全的map是ConcurrentHashMap

    原理:http://www.cnblogs.com/ITtangtang/p/3948786.html 与hashtable的区别:  http://blog.csdn.net/songfeihu08 ...

  6. Android MediaPlayer架构 -- 前言小知识点(二)

    本文系作者自己学习之所用,文章内容仅出自作者拙劣之思考,问题之处烦请不吝指教. 在frameworks\av\media\libmedia\mediaplayer.cpp中会有语句:const sp& ...

  7. 喵哈哈村的魔法考试 Round 16 (Div.2) 比赛题解

    A 实际上我们for一遍就好. 坑点就是会爆int #include<bits/stdc++.h> using namespace std; const int maxn = 1e5+7; ...

  8. xtrabackup备份MySQL并主从同步

    为什么要使用xtarbackup? mysqldump备份数据库的时候,会锁库锁表,导致业务服务的暂时停滞,数据库数量小还没有感觉,当数据超过几个G的时候,使用mysqldump会严重影响服务器性能, ...

  9. Resources for Learning about .NET Internals

    http://adamsitnik.com/Disassembly-Diagnoser/ http://mattwarren.org/2018/01/22/Resources-for-Learning ...

  10. vim 语法着色完全配置

    原文地址:http://blog.sina.com.cn/s/blog_878940b3010156ku.html 在终端输入:sudo vim /etc/vim/vimrc   打开配置文件.编辑命 ...