JAVA 运算符

本页面更新日期: 2016年06月16日

前言

运算符是一种特殊的符号,用以表示数据的运算, 赋值, 和比较等.
JAVA语言使用运算符将 一个或多个操作数 连缀成执行性语句, 用以实现特定功能.
JAVA语言中的运算符可分为如下几种.

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 类型相关运算符

算数运算符

加法运算符 +

例如下面代码

double a = 5.12;
double b = 3.1;
double sum = a + b;
// sum 值为 8.3
System.out.println(sum);

除此之外, + 加法运算符 还可以作为 字符串的连接运算符.

减法运算符 -

例如下面代码

double a = 5.2;
double b = 3.1;
double sub = a - b;
//sub的值为 2.1
System.out.println(sub);

乘法运算符 *

例如下面代码

double a = 5.2;
double b = 3.1;
double multiply = a * b;
// multiply 的值为 16.12
System.out.println(multiply);

除法运算符 /

除法运算符有些特殊.
如果除法运算符的两个操作数都是整数类型, 则计算结果也是整数. 例如 19/4 结果是4, 而不是5 . 理论上结果是 4.75 但JAVA会自动把 0.75 砍掉, 从而输出一个整数.
同理, 如果两个操作数是浮点数, 那么结果也会是浮点数.

求余运算符 %

顾名思义, 两个操作数相除, 余数就是结果.

自加运算符 ++

自加运算符用于操作 单个数值型变量, 不能操作常量或表达式.
它可以出现在变量的左边, 也可以是右边. 但效果会不同.
如果 ++ 在变量左边, 变量会先自加 1 , 然后才会在表达式中运算.
如果 ++ 在变量右边, 则变量会先参与表达式运算, 然后才会自加 1.
例如如下代码

int a = 5;
int b = a++ + 6;
//输出 a 的值为 6, b 的值为 11
System.out.println(a);
System.out.println(b);

相对的代码

int a = 5;
int b = ++a + 6;
//输出a 的值为 6, b 的值为 12
System.out.println(a);
System.out.println(b);

自减运算符 –

和自加运算符的用法一样, 只不过是变量 -1
具体你要自己写代码试试看.

赋值运算符 =

赋值运算符 = 用于 为变量指定变量值.
例如下面代码

String str = "Java"; //为变量 str 赋值 Java
double pi = 3.14; //为变量 pi 赋值 3.14
boolean visited = true; //为变量 visited 赋值 true

//除此之外, 也可以使用赋值运算符 将一个变量的值 赋给 另外一个变量.
String str2 = str; //将变量 str 的值赋给 str2

//赋值运算符还可以将 表达式的值 赋给变量.
double d1 = 12.34;
double d2 = d1 + 5; //将表达式的值赋给 d2

其它常用的赋值运算符

  • += 对于 x += y 来说, 即对应 x = x + y
  • -= 对于 x -= y 来说, 即对应 x = x - y
  • = 对于 x = y 来说, 即对应 x = x * y
  • /= 对于 x /= y 来说, 即对应 x = x / y
  • %= 对于 x %=y 来说, 即对应 x = x % y

如果情况允许, 请尽量使用这些赋值运算符, 性能会更好.

比较运算符

比较运算符用于判断两个变量 或 常量的大小, 比较运算的结果时一个布尔值(true 或 false).
JAVA支持的比较运算符如下

  • > 大于 (仅支持左右两边操作数是 数值类型). 如果前面变量的值 大于 后面变量的值, 则返回 true.
  • >= 大于等于 (仅支持左右两边操作数是 数值类型). 如果前面变量的值 大于等于 后面变量的值, 则返回 true.
  • < 小于 (仅支持左右两边操作数是 数值类型).如果前面变量的值 小于 后面变量的值, 则返回 true
  • <= 小于等于 (仅支持左右两边操作数是 数值类型).如果前面变量的值 小于等于 后面变量的值, 则返回 true.
  • == 等于 如果进行比较的两个操作数都是数值类型, 即使它们的数据类型不同, 只要它们的值相等, 就会返回 true. 例如 97 == ‘a’ 返回true. 5.0 == 5 也返回true.
    如果两个操作数都是引用类型, 那么只有当两个引用变量的类型具有父子关系时才可以比较, 而且这两个引用必需指向同一个对象才会返回 ture.
  • != 不等于 和 == 的用途一样, 就是反过来.

现在,让我们示范一下 比较运算符 的使用. 请自己写出来哦, 粘贴复制是小狗.

public class ComparableOperatorTest
{
  public static void main(String[] args)
  {
    System.out.println("5 是否大于 4:" + (5 > 4));
    System.out.println("5 和 5.0 是否相等:" + (5 == 5.0));
    System.out.println("97 和 'a' 是否相等:" + (97 == 'a'));

    //创建 2个 ComparableOperatorTest 对象, 分别赋给 t1 和 t2 两个引用
    ComparableOperatorTest t1 = new ComparableOperatorTest();
    ComparableOperatorTest t2 = new ComparableOperatorTest();
    // t1 和 t2 时同一个类的两个实例的引用, 所以可以拿来比较
    // 但 t1 和 t2 引用的对象不同, 所以会返回 false
    System.out.println("t1 是否等于 t2:" + (t1 == t2));

    // 将 t1 的值 赋给 t3, 让 t3 指向 t1 指向的对象
    ComparableOperatorTest t3 = t1;
    // t1 和 t3 指向同一个对象, 所以返回 true
    System.out.println("t1 是否等于 t3:" + (t1 == t3));
  }
}

逻辑运算符

逻辑运算符用于 操作两个布尔类型的变量或常量, 有如下 6 个

  • && “与” 前后两个操作数必需都是 true 才会返回 true , 否则返回 false
  • || “或” 只要两个操作数中有一个时 true , 就会返回 true , 否则返回 false
  • ! “非” 只需要一个操作数, 如果操作数为 true , 就返回 false; 如果操作数为 false , 则返回 true 简单来说就是对着干.
  • ^ “亦或” 当两个操作数不同时才会返回 true , 如果两个操作数相同, 则返回 false

下面我们试试看

public class LogicOperatorTest
{
  public static void main(String[] args)
  {
    // && 与
    System.out.println(5 > 3 && 7 > 5);
    System.out.println(5 > 3 && 7 > 9);

    // || 或
    System.out.println(5 > 3 || 5 > 7);
    System.out.println(5 > 9 || 5 > 7);

    // ! 非
    System.out.println(!false);
    System.out.println(!true);

    // ^ 亦或
    System.out.println(5 > 3 ^ 5 > 7);
    System.out.println(5 > 3 ^ 9 > 7);
  }
}

三目运算符

三目运算符的语法格式如下 ? :
(expression) ? if-true-statement : if-false-statement;
三目运算符的执行顺序是: 先对逻辑表达式 expression 求值, 如果逻辑表达式返回 true, 则返回 : 号左边操作数的值.
如果逻辑表达式返回 false, 则返回 : 号右边操作数的值.

代码演示

String str = 5 > 3 ? "5大于3" : "5不大于3";
System.out.println(str); //将会输出 "5大于3"

结尾

如果你想学习更多JAVA知识, 可以 点我进入目录页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值