【Java练习题】Java 程序的输出 | 第十二套(含解析)

简介: 【Java练习题】Java 程序的输出 | 第十二套(含解析)

难度级别: 中级

程序

程序一


1) 以下程序的输出是什么?

public class Test implements Runnable
{
  public void run()
  {
    System.out.printf("%d",3);
  }
  public static void main(String[] args) throws InterruptedException
  {
    Thread thread = new Thread(new Test());
    thread.start();
    System.out.printf("%d",1);
    thread.join();
    System.out.printf("%d",2);
  }
}

a) 123

b) 213

c) 132

d) 321



程序二


2) 以下程序的输出是什么?

public class Test
{
  private static int value = 20;
  public int s = 15;
  public static int temp = 10;
  public static class Nested
  {
  private void display()
  {
    System.out.println(temp + s + value);
  }
  }
  public static void main(String args[])
  {
  Test.Nested inner = new Test.Nested();
  inner.display();
  }
}

a) 编译错误

b) 1020

c) 101520

d) 以上都不是



程序三


3) 以下程序的输出是什么?

import java.io.*;
public class Test
{
  public void display() throws IOException
  {
    System.out.println("Test");
  }
}
class Derived extends Test
{
  public void display() throws IOException
  {
    System.out.println("Derived");
  }
  public static void main(String[] args) throws IOException
  {
    Derived object = new Derived();
    object.display();
  }
}

a) 测试

b) 派生

c) 编译错误

d) 运行时错误



程序四


4) 以下程序的输出是什么?

public class Test extends Thread
{
  public void run()
  {
    System.out.printf("Test ");
  }
  public static void main(String[] args)
  {
    Test test = new Test();
    test.run();
    test.start();
  }
}

a) 编译错误

b) 运行时错误

c) Test

d) Test Test



程序五


5) 以下程序的输出是什么?

public class Test extends Thread
{
  public static void main(String[] args)
  {
    String a = "Haiyong";
    String b = new String(a);
    int value = 0;
    value = (a==b) ? 1:2;
    if(value == 1)
    {
      System.out.println("Haiyong");
    }
    else if(value == 2)
    {
      System.out.println("Blog");
    }
    else
    {
      System.out.println("HY");
    }
  }
}

a) Haiyong

b) Blog

c) HY

d) 以上都不是



程序六


6) 以下程序的输出是什么?

public class Test
{
  try
  {
    public Test()
    {
      System.out.println("Haiyong");
      throw new Exception();
    }
  }
  catch(Exception e)
  {
    System.out.println("HY");
  }
  public static void main(String[] args)
  {
    Test test = new Test();
  }
}

a) Haiyong

b) HY

c) 编译错误

d) 以上都不是



程序七


7) 对于给定的代码,选择正确的答案。

public interface Test
{
  public int calculate();
  protected interface NestedInterface
  {
    public void nested();
  }
}

b)由于 NestedInterface 的访问修饰符导致的编译时错误

c) 没有编译时错误

d) NestedInterface 不能保存任何函数声明。



程序八

8) 下列关于构造函数声明的说法正确的是?

a) 构造函数可以声明为 final。

b) 构造函数可以被 try/catch 块包围。

c) 构造函数不能抛出异常。

d) 构造函数可以持有同步代码(以便每个线程可以顺序访问构造函数)。



文章后半部分是程序的输出及解析

image.png


输出及解析

程序一输出

答案

(c)

说明

父线程使用join等待新创建的线程完成。join()方法允许一个线程等待另一个线程完成它的执行。因此,父线程打印 1 并等待子线程完成。子线程在控制台上打印 3,最后父线程打印 2。


程序二输出

答案

(a)

说明

不能在静态嵌套内部类中访问非静态变量。“嵌套”不能访问非静态变量[在这种情况下是变量]。因此错误:

10:错误:不能从静态上下文中引用非静态变量 s 
            System.out.println(temp + s + value); 
                                      ^

程序三输出

答案

(b)

说明

如果超类方法声明了异常,子类覆盖的方法可以声明相同、子类异常或不声明异常,但不能声明父类异常。


程序四答案

回答 :

(d)

说明

test.run() 执行 run 方法。test.start() 创建一个新线程并执行 Thread 类的重写 run 方法。Thread.start() 方法总是启动一个新线程,这个线程的入口点是 run() 方法。如果您直接调用 run() 它将在同一个线程中执行,但始终建议在逻辑上调用 Thread.start() 以启动一个新的执行线程,然后是 run() 方法。


程序五答案

回答 :

(b)

说明:

== 运算符检查两个变量是否指向同一个对象。这里 a 和 b指的是两个不同的对象。?: 是 if else 语句的另一种形式,可以理解为,condition : if true then do this : else do this。


程序六答案

回答 :

(c)

说明:

构造函数不能包含在 try/catch 块中


程序七答案

回答 :

(b)

说明:

NestedInterface 的访问修饰符只能是公共的。因此错误:

4:错误:修饰符的非法组合:公共和受
    保护的受保护接口 NestedInterface 
              ^ 
1 错误

程序八答案

回答 :

(d)

说明:

构造函数允许在线程之间顺序访问数据。


以上就是本篇文章的所有内容了


目录
相关文章
|
3月前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
837 0
|
3月前
|
Java
Java的CAS机制深度解析
CAS(Compare-And-Swap)是并发编程中的原子操作,用于实现多线程环境下的无锁数据同步。它通过比较内存值与预期值,决定是否更新值,从而避免锁的使用。CAS广泛应用于Java的原子类和并发包中,如AtomicInteger和ConcurrentHashMap,提升了并发性能。尽管CAS具有高性能、无死锁等优点,但也存在ABA问题、循环开销大及仅支持单变量原子操作等缺点。合理使用CAS,结合实际场景选择同步机制,能有效提升程序性能。
|
4月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
143 2
|
2月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
332 98
|
3月前
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
457 100
|
4月前
|
存储 缓存 Java
Java数组全解析:一维、多维与内存模型
本文深入解析Java数组的内存布局与操作技巧,涵盖一维及多维数组的声明、初始化、内存模型,以及数组常见陷阱和性能优化。通过图文结合的方式帮助开发者彻底理解数组本质,并提供Arrays工具类的实用方法与面试高频问题解析,助你掌握数组核心知识,避免常见错误。
|
4月前
|
缓存 安全 Java
Java并发性能优化|读写锁与互斥锁解析
本文深入解析Java中两种核心锁机制——互斥锁与读写锁,通过概念对比、代码示例及性能测试,揭示其适用场景。互斥锁适用于写多或强一致性场景,读写锁则在读多写少时显著提升并发性能。结合锁降级、公平模式等高级特性,助你编写高效稳定的并发程序。
263 0
|
2月前
|
存储 安全 Java
《数据之美》:Java集合框架全景解析
Java集合框架是数据管理的核心工具,涵盖List、Set、Map等体系,提供丰富接口与实现类,支持高效的数据操作与算法处理。
|
3月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。

推荐镜像

更多
  • DNS