zoukankan      html  css  js  c++  java
  • 2.13号Java复习题目——Java 中的运算符和流程控制(面试题)

    1. Java 中 i++ 和 ++i 有什么区别?

    答:i 先赋值再运算(加一);i 先运算再赋值

    代码举例:

    int i = 0;
    int i2 = i++;
    int j = 0;
    int j2 = ++j;
    System.out.println("i2=" + i2);
    System.out.println("j2=" + j2);

    输出结果:i2=0,j2=1

    2. 以下代码 i 的值是多少?

    int i = 0;
    i = i++;
    System.out.println(i);
    

    答:i=0

    题目解析:因为 Java 虚拟机在执行 i++ 时,把这个值有赋值给了 i,而 i++ 是先赋值再相加,所以这个时候 i 接收到的结果自然是 0 了。

    3. 以下代码 i2 和 i3 的值分别为多少?

    int i = 0;
    int i2 = i++;
    int i3 = ++i;

    答:i2=0,i3=2

    4. 以下代码能不能正常执行?

    if (true) System.out.println("laowang");

    答:可以正常执行,其中判断条件的括号不能省略,大括号是可以省略的(并不建议为了省代码的而牺牲代码的可读性)。

    5. 以下 switch 执行的结果是什么?

    int num = 1;
    switch (num) {
        case 0:
            System.out.print("0");
        case 1:
            System.out.print("1");
        case 2:
            System.out.print("2");
        case 3:
            System.out.print("3");
        default:
            System.out.print("default");
    }

    答:123default

    6. switch 能否用于 byte 类型的判断上?能否用于 long 类型的判断上?

    答:switch 支持 byte 类型的判断,不支持 long 类型的判断。

    题目解析:switch 支持的全部类型(JDK 8):char、byte、short、int、Charachter、Byte、Short、Integer、String、enum。

    7. while 必须配合 break 一起使用的说法正确吗?

    答:错误,while 可以单独使用。

    代码示例:

    int i = 0;
    while (i < 3) {
        System.out.println(++i);
    }

    8. 以下代码可以正常运行吗?为什么?

    int i = 0;
    while (i < 3) {
        if (i == 2) {
            return;
        }
        System.out.println(++i);
    }

    答:可以正常运行,这里的 return 和 break 的效果是一致的,while 可以配合 return 或 break 一起使用。

    9. 以下的程序执行结果什么?

    int i = 0;
    do {
      System.out.println(++i);
    } while (i < 3)

    答:编译器报错,do/while 之后必须使用分号 ; 结尾。

    10. 以下程序输出的结果是?

    String s = new String("laowang");
    String s2 = new String("laowang");
    System.out.println(s == s2);
    switch (s) {
        case "laowang":
            System.out.println("laowang");
            break;
        default:
            System.out.println("default");
            break;
    }

    答:false,laowang

    11. 以下代码循环执行了几次?

    for (float i = 0; i != 10; i += 0.1) {
        System.out.println("hi");
    }

    无数次,循环永远不会停下来。由于舍入误差,因为 0.1 无法精确的用二级制表示,所以上面代码到 0.9000001 之后,会直接跳到 1.0000001,不会等于 1,所以循环就永远不会停下来。

    12. 以下代码输出的结果是?

    int num = -4;
    System.out.println(num % 2 == 1 || num % 2 == -1);

    答:false

    题目解析:-4 % 2 = 0 既不等于 1 也不等于 -1,所以结果为 false。

    13. 以下代码输出的结果是?

    int num = 4;
    num = ((num & 1) == 1);
    System.out.println(num);

    A:4
    B:1
    C:以上都不是

    答:C

    题目解析:== 运算返回的是 boolean 类型,不能使用 int 接收,所以程序会报错。

  • 相关阅读:
    CSS filter属性
    css过渡的使用
    关于2D、3D的转换
    3D立体旋转
    css的规范命名
    html标签的简单总结
    css之简单动画
    几种动态的学习链接
    css之规范命名
    css
  • 原文地址:https://www.cnblogs.com/LeoLRH/p/12305161.html
Copyright © 2011-2022 走看看