📜  Java程序的输出| 28套

📅  最后修改于: 2022-05-13 01:56:10.836000             🧑  作者: Mango

Java程序的输出| 28套

问题 1. 以下问题的输出是什么?

class Test {
    int a = 10;
    static int b = 20;
  
public
    static void main(String[] args)
    {
        Test t1 = new Test();
        t1.a = 100;
        t1.b = 200;
  
        Test t2 = new Test();
  
        System.out.println("t1.a =" + t1.a + " t1.b =" + t1.b);
        System.out.println("t2.a =" + t2.a + " t2.b =" + t2.b);
    }
}

选项
A) t1.a=100 t1.b=200
t2.a=10 t2.b=200

B) t1.a=10 t1.b=200
t2.a=10 t2.b=200

C) t1.a=100 t1.b=200
t2.a=10 t2.b=20

D) t1.a=100 t1.b=200
t2.a=100 t2.b=200



Output: A

说明:静态变量是类级变量。如果我们创建多个类的对象并且所有对象都可以指向静态变量的相同引用意味着如果您可以更改任何对象中静态变量的值,那么编译器会自动更新所有对象静态变量的值。

问题 2. 以下问题的输出是什么?

class Test2 {
public
    static void main(String[] args)
    {
        byte x = 12;
        byte y = 13;
        byte result = x + y;
        System.out.print(result);
    }
}

选项
一)25
b) 错误
c) -25
d) 没有

Output : b

说明:如果我们在两个变量 x 和 y 之间应用任何算术运算运算符,则结果类型为 max(int, type of x, type of y)。因此,这里编译器会给出错误可能的有损转换 int 到 byte。

问题 3. 以下问题的输出是什么?

class Test3 {
public
    static void main(String[] args)
    {
        int x = 011;
        int y = 0xfee;
        int result = x + y;
        System.out.print(x + ":" + y + ":" + result);
    }
}

选项
a) 错误
b) 010 : 0xfee : 4089
c) 9 : 4078 : 4087
d) 010 : 0xfee : 4087

Output : C

说明:如果任何整数以 0 开头,则该数字被视为八进制数,因此 011 表示 (1*8^1 + 1*8^0) 9 并且如果任何以 0x 开头的整数表示该数字被视为十六进制数意味着我们可以有 [0-9] 和 [az 或 AZ] 之间的值。 oxfee =(15*16^2 + 14*16^1 + 14*16^0) =>4078。

问题 4. 以下问题的输出是什么?



class Test4 {
public
    static void main(String[] args)
    {
        int x = 0198;
        int y = 0xfree;
        int result = x + y;
        System.out.print(x + " : " + y + " : " + result);
    }
}

选项
a) 错误
b) 0198 : 0xfree : 68734
c) 144 : 68590 : 68734
d) 0198 :68590 : 68788

Output : a

说明:如果我们在整数前分配一个 0,那么该数字被视为八进制数,我们知道八进制数的范围是 [0-7]。如果我们分配超出此范围的数字,则会出现错误。与此类似,如果任何整数以 0x 开头,则该数字将被视为十六进制,这意味着我们可以在 [0-9] [az 或 AZ] 之间分配值。如果我们分配它超出范围,那么程序将得到错误。

问题 5. 以下问题的输出是什么?

class Test5 {
public
    static void main(String[] args)
    {
        final int a = 1, b = 5;
  
        for (int i = 0; a < b; i++) {
            System.out.println("Hello");
        }
        System.out.println("Hi");
    }
}

选项
一)你好
你好
……
……
……
b) 错误
c) 你好
你好
你好
你好
你好

d) 你好
你好
你好
你好
你好
你好

Output: b

说明:在Java,如果我们将任何变量声明为 final,那么该变量的值是固定的,不能在运行时更改。在最终变量中,在编译时赋值意味着在这个程序中,编译器看到 a 和 b 都是最终变量,最终变量的值永远不会改变,条件始终为真。 “Hi”语句无法访问,因此编译器给出错误 Unreachable 语句“Hi”。