美文网首页
Java 运算系统 & 控制流

Java 运算系统 & 控制流

作者: bowen_wu | 来源:发表于2022-05-17 14:46 被阅读0次

运算系统

% 取余

5 % 2 = 1
-5 % 2 = -1

// 判断一个整数是不是奇数
public static boolean isOdd (int number) {
    // return number % 2 == 1; // 没有考虑负值的情况
    return number % 2 != 0;
}

public static boolean isOdd (int number) {
  return number & 1;
}

位运算

按位取反 ~

1's complement => 反码

~3 == -4

补码

2's complement => 补码 = 按位取反之后 +1 => 使用补码来表示相应的负数

可以使用相同的硬件电路同时表示 + 和 - => 4 的补码就是 -4 => 计算机中 4 -> -4

4 => 00000100
// 1. 按位取反 => 11111011
// 2. +1 得到 -4
-4 => 11111100

亦或 ^

不进位的加法

x ^ x == 0;
x ^ 0 == x;

左移 <<

z 进制中的 x << y => x * (z ^ y)

5 << 1 == 10; // 5 * (2 ^ 1)
5 << 2 == 20; // 5 * (2 ^ 2)
5 << 3 == 40; // 5 * (2 ^ 3)

右移 >>

z 进制中的 x >> y => (x >= z ^ y) ? (x / (z ^ y)) : 0

  • >> => 带符号右移
  • >>> => 无符号右移
-4 // 11111011
-4 >> 1 == -2 // 符号位补之前的符号,缺位补 0 -> 11111101 -> 00000010 == 2
-4 >>> 1 // 缺位补 0 -> 01111101

作用

  1. 掩码 -> 设置使用 |,读取使用 &
  2. 清除 A 位 -> Flag & (~A)

运算符优先级

  1. 乘除高于加减
  2. 其他全部加括号

控制流

for & for each 循环

任何接口实现了 Iterable 就是可以使用 for each 循环访问其中的元素

break & continue

  • break; => 立即结束包裹当前 break 的第一层循环
  • continue; => 跳过包裹当前 continue 的第一层循环中的其余语句,继续下一次循环
  • break label; => break 出带有 label 的循环
    // 标志符: == label 
    最外层的循环:
    for(int i = 0; i < 2; i++) {
        for(int j = 0; j < 2; j++) {
            break 最外层的循环; // 直接 break 出最外层的循环
        }
    }
    

switch

switch 具有穿透性。哪些东西可以 switch

  • int | long | char | byte | short
  • enum
  • String => JDK7+

知识点

  1. 字符串中的 +
    • String 不可变
    • StringBuilder -> 在一块内存上面不停的连接新的东西,可以避免频繁的创建零碎的不可变的 String 对象带来的内存开销
    • 使用字符串的 + 时 -> 引用数据类型会调用 toString() 方法,原生数据类型会使用对应的表示
    • 当连接一个很长的字符串 + 时 -> JDK 内部会自动的转换成 StringBuilder 调用,以减轻内存开销,提高性能

相关文章

  • Java 运算系统 & 控制流

    运算系统 % 取余 位运算 按位取反 ~ 1's complement => 反码 ~3 == -4 补码 2's...

  • Web_8 Javascript(不完整...)

    1 基本语法 2 数据类型 3 变量 4 控制流:if & else 5 控制流:switch 6 运算符 7 循...

  • 基础运算

    上一篇:造物之初当前篇:基础运算下一篇:控制流 运算符 运算符是用来表示某个运算的特殊符号,在数学中用 +,-,×...

  • 第八章《异常》(一)

    异常控制流 计算机系统的异常跟平时Java代码中的Exception是两码事,对于计算机系统而言,导致‘平滑的’控...

  • 2018-11-29

    ## 异常控制流 异常控制流存在于系统的每个层级,最底层的机制称为**异常(Exception)**,用以改变控制...

  • Java学习总结之Java IO系统(二)

    本文接着Java学习总结之Java IO系统(一),我们继续总结Java IO系统的相关知识。 字符流(Write...

  • Java的控制流

    什么是控制流 控制流就是在任何时刻将要进⾏的⼯作 控制流:⽅法调⽤ 实战:使⽤调试器分析Java程序运⾏的最详细过...

  • 时区

    Java java程序会取系统默认时区作为Date运算的时区。如果不想跟着系统时区走,可以 前端传过来的字符串如果...

  • Java中流(Stream)、文件(file)和I/O、目录

    Java 流、文件和I/O、目录目录:1.流(Stream)-控制台1.1 控制台读取多字符输入BufferedR...

  • 2018-01-26

    ##Java线程 Java中,并发的基本单元是线程,可以将线程看作控制流(thread of control)。线...

网友评论

      本文标题:Java 运算系统 & 控制流

      本文链接:https://www.haomeiwen.com/subject/zulnurtx.html