zoukankan      html  css  js  c++  java
  • 【Thinking in Java-CHAPTER 3】操作符

    优先级

    赋值

    对象在使用c=d,那么c和d都指向原本只有d指向的那个对象。

    image

    方法调用中的别名问题:当一个对象作为参数传递到一个函数中,函数改变了这个参数,则改变了传递进来的对象;

    image

    自增和自减

    浮点型的变量也是可以++或--的。

    关系操作符

    double x=0.1;
    double y=0.1;
    System.out.println(x==y);

    输出:true

    Integer x=new Integer(47);
    Integer y=new Integer(47);
    System.out.println(x==y);
    System.out.println(x.equals(y));

    输出:false

              true

    基本数据类型直接使用==和!=即可,但除此之外的数据类型,如果要比较等价,需要使用equals方法;

    逻辑操作符

    Integer x=new Integer(47);
    Integer y=new Integer(47);
    System.out.println(x
    &&y); //出错,此处与C/C++不同

    短路现象:

    image

    移位操作符:>>,<<,>>>

    >>:

    11 >> 2,则是将数字11右移2位
    计算过程:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010.转换为十进制是3.数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。

    <<:

    3 << 2,则是将数字3左移2位:

    计算过程:
      3 << 2
      首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.数学意义:
      在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

    >>>:

    按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。

    类型转换

    将float或double转型为整型时,总是对该数字执行截尾。如果想要得到舍入操作,就需要使用java.lang.Math中的round()方法:

    double x=0.5;
    System.out.println((int)x);             //0
    System.out.println(Math.round(x));         //1
  • 相关阅读:
    Qt(python) + 百度语音合成 实现demo
    windows7 + Qt(MSVC2017) + VS2019安装配置
    ubuntu下openCV-Haar特征分类器训练
    坚果云+typora(个人十分喜欢的一个记笔记方式)
    文本编辑--程序员专属技能
    ftp、tftp、nfs--服务器搭建
    QT--动态人流量监测系统
    C++ --内存四区概述
    CTFHUB-技能树-Web-信息泄露
    网络教育行业频发奖金高薪挖人,在线教育行业将迎来快速发展
  • 原文地址:https://www.cnblogs.com/XBWer/p/4442608.html
Copyright © 2011-2022 走看看