zoukankan      html  css  js  c++  java
  • 【Java】Java 语言中操作符的一些新特性

    1.一元操作符

    非运算

    ~ 是按位非运算,将操作数对应的二进制数的每一位(包括符号位)取反,即 1 变 0 , 0 变 1 。

    注意:在内存中,数值都是以二进制补码形式保存的,所以在读出的时候,都会执行一步操作:补码变原码(符号位不变,剩余位取反 +1)。

    代码示例:

    package test;
    
    public class Test {
        public static void main(String[] args) {
            int a = 10;
    
            System.out.println("十进制数 10 的二进制表示为 : " + Integer.toBinaryString(a));
            System.out.println("按位非运算后,内存中的结果为 : " + Integer.toBinaryString(~a));
            System.out.println("从内存中读出的结果为 : " + ~a);
        }
    }

    输出结果:

    2.二元操作符

    算术运算

    • 如果 / 和 % 的两个操作数都是整数类型,则除数不能为 0;
    • 若有一个或者两个都是浮点数,此时允许除数为 0 ,任何数除以 0 得到的结果都是无穷大(± Infinity),任何数对 0 求余,结果都是非数 NaN;
    • % 的操作数允许是浮点数。

    位运算

    操作符 描述 示例
    & 按位与,两位同时为 1 才返回 1 00101010 & 00001111 = 00001010
    | 按位或,两位之中有一位为 1 就返回 1 00101010 | 00001111 = 00101111
    ^ 按位异或,两位相同返回 0,不相同返回 1 00101010 ^ 00001111 = 00100101
    << 左移,N<<S 表示将 N 左移 S 位,空位填 0 11111000<<1 = 11110000
    >>

    右移,N>>S 表示将 N 右移 S 位,

    若为正数,空位填 0;若为负数,空位填 1

    11111000>>1 = 11111100
    >>> 无符号右移,无论正数还是负数,空位都填 0 11111000>>>1 = 01111100

    逻辑运算

    在逻辑运算中,为了提高运行效率,Java 提供了“短路运算”功能:

    • 对于 && ,当第一个操作数为 false 时,结果必为 false,无需检查第二个操作数;
    • 对于 || ,当第一个操作数为 true 时,结果必为 true,无需检查第二个操作数。
  • 相关阅读:
    重写、隐藏基类方法(new, override)
    Java FileHandler
    JMS example
    DB Locker
    计算与所有线段都重合的线段数目
    [转载] linux内存 问题
    oracle rownum & rowid mark a good tool
    java Wget Download
    java new way to implement singleton, use enum
    HttpPut Multipart and handle https request.
  • 原文地址:https://www.cnblogs.com/bjxqmy/p/13264623.html
Copyright © 2011-2022 走看看