zoukankan      html  css  js  c++  java
  • 《Java编程思想》笔记 第三章 操作符

    1.操作符种类: 

    运算顺序1-7

    1. 一元操作符(单目操作符)  - 负号, + 正号,--递减,++递增
    2. 算术操作符 + - *  /  %
    3. 移位操作符  <<左移(低位补0),>>右移(负数高位1,正数高位补0), >>>无符号右移 (无论正负高位补0)(对二进制),(可与 = 结合使用 <<=     >>=   >>>=  类似 i += 1)
    4. 关系操作符 >  <  >=  <=  ==  !=   (生成boolean值
    5. 逻辑操作符  &&  ||  ! (生成boolean值)
    6. 按位操作符 &与  | 或  ^ 异或  ~ 非(一元) (对二进制)
    7. 三元操作符 
    boolean-exp? value0 : value1 //如果表达式为真则为值value0,为假则为value1

    2.前缀式和后缀式

    1. 前缀式 -- ++  如 --i; ++i; 先对i执行-1,+1 ,再赋值给i然后执行后面的运算;
    2.  后缀式 -- ++ 如 i--; i++; 运算(i--)结束后立刻再对i进行-1 +1;
    3.  后缀式有一个陷阱就是 i = i++ , 这代码有坑, i 不会自增,原因
    int s = 1;
    int i =    s++ * 3;
    System.out.println(s);//2
    System.out.println(i);//3
    s = 1;
    i = ++s * 3;
    System.out.println(s);//2
    System.out.println(i);//6
    s = 1;
    i = s++ + (s * 3);
    System.out.println(s);//2
    System.out.println(i);//7

       4.  因后缀式在表达式中位置不同而造成计算结果的不同

    int g = 5;               //表达式g + (g++ + g) 在内存中从左往右加载,计算时按优先级计算
    int i = g + (g++ + g);  //第一个g=5, g++为5 最后一个g为6, 向内存中加载数据时第一个g是5,加载运算完g++后,之后的g就是6
    System.out.println(i);//16
    g = 5;
    i = g++ + (g + g);//g++为5 后两个g为6
    System.out.println(i);//17

    3.别名现象: 不同引用指向同一个对象

    4.随机数生成

    Random rand = new Random() ;
            int k = rand.nextInt(100);
            int j = rand.nextFloat(); //0.0~1.0间 位数不一定
    1.  创建Random对象时没有参数(种子)传入,会以当前时间作为随机数生成器的种子传入
    2. 对于相同的种子会长生相同的随机数序列,当前时间不停在变随机数序列也不同
    3. 生成不同类型随机数调用对应方法即可
    4. nextInt()方法的参数决定了随机数的上限,同时也决定了下限0,做除数时要+1

    5. 短路: 

    • 使用逻辑操作符时会出现不再计算表达式余下部分例如:test1() && test2() && test3();
    • 如果首先计算出test1()为false,那么false && test2 肯定为false,test2()就不会执行,【false && test2】为false test3()也不会执行,如果&&成了|| 那么就要执行test3()了。

    6.直接常量规范 

    • float  或 Float 赋初始值时使用L 如 float  f =  2L;  double加d或者D,16进制数前缀0X, 8进制前缀o

    7.基本数据间的类型转换详情

    1. byte,short,char 运算时会将结果提升为int  
    2. 类型自动提升 小范围类型 + 大范围类型 = 大范围类型   (byte,short,char)  int  long  float  double    依次增大
    3. char c = 'a' 转整型会转为对应ASCII码值,char c = 98 转String会转为对应字符
    4. float, double转为整型直接结尾,不会四舍五入,四舍五入使用java.lang.Math中的round()方法。

    8.数据类型

    7 数据类型

  • 相关阅读:
    使用内部单向链表实现的一个简单堆栈
    通过反射调用内部类的隐藏方法
    动态代理生成空对象
    通过使用java.lang.reflect.Proxy实现动态代理
    简单代理模式
    暗色CSS,适用与Stylish, IE, FF, OPERA等.
    CWnd派生的控件处理MouseMove, MouseHover, MouseLeave
    _tcscpy_s的size应至少为src的长度+1(要把计算在内)
    用INET(CHttpFile)下载有重定向链接时获取最终URL的方法.
    GetDlgItem以及其他获得CWnd相关的函数要注意。。
  • 原文地址:https://www.cnblogs.com/mibloom/p/9040345.html
Copyright © 2011-2022 走看看