• 【JAVA SE基础篇】9.运算符的分类与内容


    1.运算符的分类

    1.算术运算符:+(加法)、-(减法)、*(乘法)、/(除法)、%(取模/取余)、++(自增)、--(自减)

    2.赋值运算符:=(赋值)、+=(加等)、-=(减等)、*=(乘等)、/=(除等)、%=(模等/取余等)

    3.关系运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)、instanceof(对象是否是类的实例)

    4.逻辑运算符:&&(短路与)、||(短路或)、^(异或)、&(逻辑与)、|(逻辑或)、!(逻辑非)

    5.位运算符:&(按位与)、|(按位或)、^(按位异或)、~(取反)、>>(按位右移)、<<(按位左移)

    6.其他运算符:?:(条件运算符)、+(字符串连接符)

    2.各类运算符详解

    1.算术运算

    算数运算符分一元运算符(一个操作数)和二元运算符(两个操作数)

    二元运算符:+(加法)、-(减法)、*(乘法)、/(除法)、%(取模/取余)

    如果整数进行运算:有一个操作数是long型,那么结果就是long型。操作数没有long,结果就是int,不管其中哪个操作数是byte还是short还是int

    如果是浮点数进行运算:只要有一个是double型,结果就是double型。只有两个操作数都是float型时,结果才是float型。

    (关于类型转换后面会单独讲,了解这两个即可)

    一元运算符:

    a++和++a的区别:

    ++a是指a先自身加1,a的值变为a+1,再进行运算,输出结果a+1,此时a的值是a+1。

    a++是指先运算,输出结果为a,a自身加1,a的值变为a+1,此时a的值是a+1

    int a=3;
    int b=++a;
    此时输出ab:a的值是4,b的值是4

    int a=3;
    int b=a++;
    此时输出ab:a的值是4,b的值是3

    2.赋值运算符:

    =(赋值)用法:讲等号右边的操作数赋值给左边

    例:a=b  讲b的值赋给a,且b的值不变

    +=(加等)、-=(减等)、*=(乘等)、/=(除等)、%=(模等/取余等)用法类似

    例:

    a+=b 相当于 a=a+b、a-=b 相当于 a=a-b、a*=b 相当于 a=a*b。。。。

    int a=3;int b=4;a=a+b;等价于int a=3;int b=4; a=a+b;

    输出结果a为7,b为4。

    3.关系运算符:

    所有的关系运算符输出结果只有true/false

    =(赋值)是赋值运算符、==(等于)才是判断两个操作数是否相等的运算符

    ==(等于)、!=(不等于)适用于所有数据结构

    >(大于)、<(小于)、>=(大于等于)、<=(小于等于)仅适用于byte、short、int、long、float、double、char

    (instanceof暂时不用了解)

    4.逻辑运算符:

    逻辑运算符是用来操作布尔型(true/false)的运算符

    同时^(异或)、&(逻辑与)、|(逻辑或)这三个也是位运算符

    &(逻辑与):两个操作数同时为true,结果为true

    |(逻辑或):两个操作数有一个为true,结果为true

    &&(短路与):只要有一个为false,结果为false

    ||(短路或):只要有一个为true,结果为true

    ^(异或):两个操作数相同为false,不同为true

    !(逻辑非):取反 例:!true的值为false

    |(逻辑或)与||(短路或)区别:

    “||”:   如果左边计算后的操作数为true,右边则不再执行,返回true;

    “|”:前后两个操作数都会进行计算。也就是说:“|”不存在短路。

    &(逻辑与)与&&(短路与)区别同上

    例:

    boolean c=1>2&&2>(3/0);
    System.out.println(c);//不报错,不运行&&后面代码
    boolean d=1>2&2>(3/0);
    System.out.println(d);//报错,会运行&后面的代码

    5.位运算符:

    位运算符是将操作数转化位2进制后的操作(具体2进制有关内容自行学习)

    &(按位与)、|(按位或)、^(按位异或)、~(取反):这四个运算符和逻辑运算符用法一致,只是将两个十进制变成转换为2进制后,每一位的逻辑运算后,再组成的新的二进制,最后转换为十进制

    >>(按位右移)、<<(按位左移):这两个运算符,向左1位相当于操作数的乘2,向右1位相当于操作数除2取商

    例:

    int a=3*2*2;
    int b=3<<2;
    int c=12/2/2;
    int d=12>>2;

    a的值和b的值相等,c的值和d的值也相等

    5.其他运算符:

    +(字符串连接符):讲两个字符串来接起来,组成新的字符串

    俩个操作数只要有一个是字符串类型,系统就会将另一个变成字符串再连接。

    例:

    System.out.println(3+4);//输出7

    System.out.println(3+"4");//输出34

    System.out.println(3+3+"4");//输出64 (第一个为算术运算符的加法,第二个为字符串连接符)

    ?:(条件运算符):

    格式:x?y:z

    其中x为布尔型表达式,如果x的值为true输出y的值,z的值为false输出z的值

    例:

    int score1=40;

    int score2=80;

    String reslut1=score1>60?"及格":"不及格";

    String reslut2=score2>60?"及格":"不及格";

    System.out.println(reslut1);//输出不及格

    System.out.println(reslut2);//输出及格

  • 相关阅读:
    UVALive 5066 Fire Drill --BFS+DP
    Codeforces 486E LIS of Sequence --树状数组求LIS
    Codeforces 460D Little Victor and Set --分类讨论+构造
    Codeforces Round #285 (Div.1 B & Div.2 D) Misha and Permutations Summation --二分+树状数组
    计算机组成原理知识总结
    HDU 5155 Harry And Magic Box --DP
    【Python数据分析】简单爬虫 爬取知乎神回复
    《查拉图斯特拉如是说》读书笔记
    POJ 3384 Feng Shui --直线切平面
    POJ 2540 Hotter Colder --半平面交
  • 原文地址:https://www.cnblogs.com/chengkuan/p/12855624.html
Copyright © 2020-2023  润新知