使用运算符之后,肯定有返回结果.

六种运算符:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 三元运算符

1. 算术运算符

加(+), 减(-), 乘(*), 除(/), 取余(%), 自增(++), 自减(--)

注意:

  • 2%5 = 2;
  • 字符串与数字用加号连接: 3 + "2", 结果为 32;
  • 字符与数字用加号连接: 3 + 'a' = 100, 字符 a 默认转换为 ASCII 字码表对应值 97;
  • 自增:
int a = 3, b;
b = a++; // b = 3;
b = ++a; // b = 4;

2. 赋值运算符

=, +=, -=, /=, %=

3. 比较运算符

>, <, >=, <=, ==, !=, instanceof(指出对象是否是特定类的一个实例,返回布尔类型值)

4. 逻辑运算符

  • 用于连接两个 boolean 类型的表达式;
  • 逻辑与 "&" 运算规律: 表达式两边只要有一个为 false, 结果肯定是 false. 只有两边都为 true, 结果才是 true;
  • 逻辑或 "|" 运算规律: 表达式两边只要有一个为 true, 结果肯定是 true. 只有两边都为 false, 结果才是 false;
  • 逻辑异或 "^" 运算规律: 表达式两边结果相同(同为 true 或 false), 最终结果为 false. 如果不同, 结果为 true;
  • 逻辑非 "!" : 判断事物的另一面;
  • 短路与 "&&" 运算规律: 和 & 的运算结果一样,但是运算过程有区别


    & : 无论左边的运算结果是什么, 右边都参与运算


    && : 当左边为 false 时, 右边不参与运算
  • 短路或 "||" 运算规律: 和 | 的运算结果一样,但是运算过程有区别


    | : 无论左边的运算结果是什么, 右边都参与运算


    || : 当左边为 true 时, 右边不参与运算

5. 位运算符

  • 直接对二进制进行运算,效率高
  • & 运算: 6 & 3 = 2; (见下图)
  • | 运算: 6 | 3 = 7; (见下图)
  • ^ 运算: 一个数异或同一个数两次, 结果还是这个数. 例 6 ^ 3 ^ 3 = 6
  • 左移位 << 运算: 左移几位就是该数据乘以 2 的几次方, 换句话说, 左移位可以完成 2 的次幂运算
  • 右移位 >> 运算: 右移几位就是该数据除以 2 的几次幂, 对于高位出现的空位, 原来高位是什么就用什么补足
  • 无符号右移 >>> 运算: 数据进行右移时, 高位出现的空位, 无论原高位是什么,空位都用 0 补

练习: 对两个整数变量的值进行互换
方式一: 使用第三方变量 (开发时使用, 阅读性强)
方式二: 使用位运算 (面试时使用, 但阅读性差). 例
int a = 3, b = 5;
a = a ^ b;
b = a ^ b; //b = (a ^ b) ^ b, 即 b 的值为 a
a = a ^ b; //a = (a ^ b) ^ a, 即 a 的值为 b 方式三:
int a = 3, b = 5;
a = a + b;
b = a - b;
a = a - b;

6. 三元运算符

  • 格式: 条件表达式 ? 表达式1 : 表达式2;
  • 条件为 true, 返回表达式1; 反之, 返回表达式2;
  • 与 if 语句的区别: if 语句没有返回值, 三元运算符肯定有返回值;

参考资料:

JavaSE 基础视频(毕向东)

Java 语言基础之运算符的更多相关文章

  1. java语言基础02

    一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...

  2. day03<Java语言基础+>

    Java语言基础(逻辑运算符的基本用法) Java语言基础(逻辑运算符&&和&的区别) Java语言基础(位运算符的基本用法1) Java语言基础(位异或运算符的特点及面试题) ...

  3. day02<Java语言基础+>

    Java语言基础(常量的概述和使用) Java语言基础(进制概述和二,八,十六进制图解) Java语言基础(不同进制数据的表现形式) Java语言基础(任意进制到十进制的转换图解) Java语言基础( ...

  4. Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)

    Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...

  5. 第二十二节:Java语言基础-详细讲解位运算符与流程控制语句

    位运算符(二进制位运算) 运算符 运算 例子 << 左移 3 << 2 = 12 --> 3 * 2 * 2 =12 >> 右移 3 >> 1 = ...

  6. 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符

    Java语言基础-关键字,标识符,注解,常量和变量,运算符 class Demo { public static void main(String[] args){ System.out.printl ...

  7. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  8. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  9. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

随机推荐

  1. 多线程-CAS原理

    背景 在JDK1.5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁,锁机制存在以下问题: (1)在多线程竞争中,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能问题 ...

  2. TomEE

    https://tomee.apache.org/ Apache TomEE, pronounced "Tommy", is an all-Apache Java EE 6 Web ...

  3. Binary Tree Postorder Traversal --leetcode

    原题链接:https://oj.leetcode.com/problems/binary-tree-postorder-traversal/ 题目大意:后序遍历二叉树 解题思路:后序遍历二叉树的步骤: ...

  4. android studio - installation failed with message Invalid File

    今天将windows上的as项目移动到mac下,使用mac下的as编译时出现下列错误: 解决办法: 1.点击工具栏上的Build中的Clean Project 2.再点击工具栏上的Build中的Reb ...

  5. WebApi接口安全认证——HTTP之摘要认证

    摘要访问认证是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法.它在密码发出前,先对其应用哈希函数,这相对于HTTP基本认证发送明文而言,更安全.从技术上讲,摘要认证是使用随机数来阻止 ...

  6. 消除^M

    在Linux和windows之间移动文件时,总是会出现在windows下编辑的文件在Linux打开时每一行都显示一个^M,虽然不影响使用,但是却影响美观,于是就想自己实现个小程序来进行转换. 要实现转 ...

  7. href中使用相对路径访问上级目录的方法

    项目ProjectXXX目录如下: WebContent> hello.jsp Folder1> foo.jsp Folder2> foo2.jsp 在foo.jsp中访问hello ...

  8. sql注入的防御和挖掘

    首先我们可以在PHP.ini当中将display_errror关闭,以防止报错型的注入. 1.字符型防护 is_number 正则来判断是否是数字. ctype_digit() intval() st ...

  9. SQLi-Labs学习笔记

    结构化查询语言,也叫做SQL,从根本上说是一种处理数据库的编程语言.对于初学者,数据库仅仅是在客户端和服务端进行数据存储.SQL通过结构化查询,关系,面向对象编程等等来管理数据库.编程极客们总是搞出许 ...

  10. 机器学习算法( 五、Logistic回归算法)

    一.概述 这会是激动人心的一章,因为我们将首次接触到最优化算法.仔细想想就会发现,其实我们日常生活中遇到过很多最优化问题,比如如何在最短时间内从A点到达B点?如何投入最少工作量却获得最大的效益?如何设 ...