zoukankan      html  css  js  c++  java
  • java基础 运算符

    算数运算符

    加号:在操作数值、字符、字符串时其结果是不同的,当两个字符相加得到的是ASCII码表值, 当两个字符串相加时表示将两个字符串连接在一起,从而组成新的字符串。

    除号:整数在使用除号操作时,得到的结果仍为整数(小数部分忽略),当整数除以0的时候,会引发算术异常。

           正无穷大(Infinity):当一个正浮点类型数除以0时,或者正整数除以0.0时;

          负无穷大(-Infinity):当一个负浮点类型数除以0时,或者负整数除以0.0时;

           NaN(Not a Number):当0.0除以0.0时;

    取模(求余数):模数的符号忽略不计,结果的正负取决于被模数.

    注意:无穷大和NaN都属于double浮点类型,但是所有正无穷大都是相等的,所有负无穷大也是相等的,NaN永远不相等,也不等于自己.

    ++和--详解:

    都只能操作变量,不能操作常量.

    ++: 表示当前操作变量自己累加1.

    --: 表示当前操作变量自己减去1

    自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。

    自减: -- ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。

    自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,

    现在单讲++: 代码 result ++和 ++result,都将使result变量的值加1。 唯一的区别是: 前置(++result): 表示对result加1之后的结果进行运算, 后置(result++): 表示对result变量加1之前的值(原始值)进行运算。 如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。

    int a1 = 5;
    a1 = a1 + 1;//6
    int temp = a1;
    int b1 = temp;//6
    --------------------------
    int a1 = 5;
    int temp = a1;//5
    a1 = a1 + 1;//6
    int b1 = temp;//5

    赋值运算符

    注意Java支持同时给多个变量赋值,好比支持同时声明多个变量一样,但因影响代码可读性,故也不推荐。

     加等于:x  +=  5; 相当于 x  =  x  +  5,但还包括隐式类型转换。

    public class Hello{ 
     public static void main(String[] args){ 
     int a, b, c;   //不推荐
     a = b = c = 5; //不推荐
     short s = 5;
     //s = s + 3;//编译出错,需要强转  s = (short)(s + 3); 
     s += 3;//编译OK,隐式类型转换
     }
    }

     

    比较运算符

    comparison operator

    用于比较两个变量或常量之间的关系,比较运算符的结果是boolean类型,其操作格式为: boolean result = 表达式A 比较运算符 表达式B;

    ==:等于,若比较的是两个操作数都是数值类型,即使他们的类型不同,只要值相同就返回true。 当然==也可以比较引用数据类型,比较的是地址

    三元运算符

    三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义表示if-else.

    语法格式:X ? Y :Z,

    其 中x为boolean类型表达式,先计算X的值,若X结果为true则整个三目运算表达式的结果是Y,否则就是Z。三目运算符结果的类型由Y和Z决定。

     

    逻辑运算符

    用于操作两个boolean类型的变量或常量,结果类型也是boolean。 语法格式为:boolean result = 表达式A 逻辑运算符 表达式B;

    &:表示并且,当操作数A和B都为true结果才为true,否则结果result 是false。

    &&:和&结果相同,具有短路效果,如果左边操作数A是false,result 一定为false,且不运行B的运算。

    |:表示或者,A和B都为false结果result为false,只要有A或B是true,结果就是true。

    ||:和|结果相同,具有短路效果,如果左边操作数A是true,result一定为true,且不运行B的运算。

    ^:判断A和B是否不同,不同则为true,相同则为false。

    !:取反,!true结果是false,!fasle结果是true。

     位运算符

    位操作是程序设计中对位模式按位或二进制数的一元和二元操作。

     

    boolean的true和false,在底层使用一位的1和0来表示. true: 1 false:0

    遵循规则:

    &:参与运算的两个数,若相应位数的值都为1,则该位结果值是1,否则是0。

    |:参与运算的两个数相应位中只要有一个1,结果就是1。

    ^:参与运算的两个数相应位相同则结果为0,否则为1。

    ~ :表示把每个二进制位的“1”换成“0”,把“0”换成“1”。

    <<:将操作数的二进制码整体左移指定位数,左移之后的空使用“0”来补充。

    >>:将操作数的二进制码整体右移指定位数,右移之后的空使用“符号位”来补充: 若是正数使用“0”补充; 若是负数使用“1”补充;(操作负数:取反,求补,操作,取反,求补)

    >>>:将操作数的二进制码整体右移指定位数,右移之后的空位使用“0”来补充。

     

     运算符操作的优先级

  • 相关阅读:
    常见数据结构的Java实现
    ASP.NET WEB API的服务托管(Self-HOST)
    Twitter Bootstrap3小结
    RESTful API后台系统架构设计(Java)
    同步函数的异步化
    C#并行库(TaskParallelLibrary)用法小结
    RestSharp用法小结
    如何选择JAVA培训机构,兼议什么样的人适合培训机构
    从零开始理解JAVA事件处理机制(3)
    简单实用UML关系图解
  • 原文地址:https://www.cnblogs.com/ctztake/p/8283599.html
Copyright © 2011-2022 走看看