标签:lse pre sci 逻辑操作 1.4 oat 赋值 随机数生成器 移位
运算顺序1-7
1.1 一元操作符(单目操作符) - 负号, + 正号,--递减,++递增
1.2 算术操作符 + - * / %
1.3 移位操作符 <<左移(低位补0),>>右移(负数高位1,正数高位补0),
>>>无符号右移 (无论正负高位补0)(对二进制)
(可与 = 结合使用 <<= >>= >>>= 类似 i += 1) 移位操作符详解
1.4 关系操作符 > < >= <= == != (生成boolean值)
1.5 逻辑操作符 && || ! (生成boolean值)
1.6 按位操作符 &与 | 或 ^ 异或 ~ 非(一元) (对二进制)
1.7 三元操作符
boolean-exp? value0 : value1 //
2.1 前缀式 -- ++ 如 --i; ++i; 先对i执行-1,+1 ,再赋值给i然后执行后面的运算;
2.2 后缀式 -- ++ 如 i--; i++; 运算(i--)结束后立刻再对i进行-1 +1;
2.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
2.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
Random rand = new Random() ; int k = rand.nextInt(100); int j = rand.nextFloat(); //0.0~1.0间 位数不一定
4.1 创建Random对象时没有参数(种子)传入,会以当前时间作为随机数生成器的种子传入
4.2 对于相同的种子会长生相同的随机数序列,当前时间不停在变随机数序列也不同
4.3 生成不同类型随机数调用对应方法即可
4.4 nextInt()方法的参数决定了随机数的上限,同时也决定了下限0,做除数时要+1
7.1 byte,short,char 运算时会将结果提升为int
7.2 类型自动提升 小范围类型 + 大范围类型 = 大范围类型 (byte,short,char) int long float double 依次增大
7.3 char c = ‘a‘ 转整型会转为对应ASCII码值,char c = 98 转String会转为对应字符
7.4 float, double转为整型直接结尾,不会四舍五入,四舍五入使用java.lang.Math中的round()方法。
标签:lse pre sci 逻辑操作 1.4 oat 赋值 随机数生成器 移位
原文地址:https://www.cnblogs.com/mibloom/p/9040345.html