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

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

难度级别: 简单

程序

程序一


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

public class RuntimePolymorphism
{
  public static void main(String[] args)
  {
    A a = new B();
    B b = new B();
    System.out.println(a.c + " " + a.getValue()
      + " " + b.getValue() + " " + b.getSuperValue());
  }
}
class A
{
  protected char c = 'A';
  char getValue()
  {
    return c;
  }
}
class B extends A
{
  protected char c = 'B';
  char getValue()
  {
    return c;
  }
  char getSuperValue()
  {
    return super.c;
  }
}

点此跳转到答案


程序二

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

public class RuntimePolymorphism
{
  public static void main(String[] args)
  {
    A a = new B();
    B b = new B();
    System.out.println(a.c + " " + a.getValue() +
      " " + b.getValue() + " " + b.getSuperValue());
  }
}
class A
{
  protected char c = 'A';
  char getValue()
  {
    return c;
  }
}
class B extends A
{
  protected char c = 'B';
  char getSuperValue()
  {
    return super.c;
  }
}

点此跳转到答案


程序三

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

class test
{
  public static int y = 0;
}
class HasStatic
{
  private static int x = 100;
  public static void main(String[] args)
  {
    HasStatic hs1 = new HasStatic();
    hs1.x++;
    HasStatic hs2 = new HasStatic();
    hs2.x++;
    hs1 = new HasStatic();
    hs1.x++;
    HasStatic.x++;
    System.out.println("Adding to 100, x = " + x);
    test t1 = new test();
    t1.y++;
    test t2 = new test();
    t2.y++;
    t1 = new test();
    t1.y++;
    System.out.print("Adding to 0, ");
    System.out.println("y = " + t1.y + " " + t2.y + " " + test.y);
  }
}

点此跳转到答案


程序四


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

public class Except
{
  public static void main(String[] args)
  { 
    try
    {
      throw new Error();
    }
    catch (Error e)
    {
      try
      {
        throw new RuntimeException();
      }
      catch (Throwable t)
      {
      }
    }
      System.out.println("haiyong");
  }
}

a) 由于第 23 行导致的编译错误

b) 由于第 24 行导致的编译错误

c) 由于第 25 行导致的编译错误

d) 以上所有

点此跳转到答案


程序五


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

public class Boot
{
  static String s;
  static
  {
    s = "";
  }
  {
    System.out.println("haiyong ");
  }
  static
  {
    System.out.println(s.concat("practice.haiyong "));
  }
  Boot()
  {
    System.out.println(s.concat("Quiz.haiyong"));
  }
  public static void main(String[] args)
  {
    new Boot();
    System.out.println("Videos.haiyong");
  }
}

点此跳转到答案


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

image.png


输出及解析

程序一输出


输出

ABBA

说明

这里没有多态的影响;A 中的实例变量 c 只是隐藏在 B 中——ac

是“A”,因为它在类 A 中是这样设置的——a.getValue() 返回“B”,因为对象是 B 类型


程序二输出


输出

AAAA

说明

此处不能使用方法的多态性概念,因为在 B 类中没有函数重载 A 类中的方法。


程序三输出


输出

Adding to 100, x = 104
Adding to 0, y = 3 3 3

说明

本例显示了静态的属性。当变量被声明为静态时,将创建一个变量副本并在类级别的所有对象之间共享。静态变量本质上是全局变量。类的所有实例共享相同的静态变量。


程序四答案

输出

java

复制代码

haiyong

说明

抛出和处理错误和运行时异常是合法的。RuntimeException 是 Throwable 的子类。


程序五答案

输出 :

practice.haiyong 
haiyong 
Quiz.haiyong
Videos.haiyong

说明:

静态 init 块在实例 init 块之前运行(分别按照它们出现的顺序)。初始化构造函数和初始化块的顺序无关紧要,初始化块总是在构造函数之前执行。


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


目录
相关文章
|
29天前
|
Java
Java的CAS机制深度解析
CAS(Compare-And-Swap)是并发编程中的原子操作,用于实现多线程环境下的无锁数据同步。它通过比较内存值与预期值,决定是否更新值,从而避免锁的使用。CAS广泛应用于Java的原子类和并发包中,如AtomicInteger和ConcurrentHashMap,提升了并发性能。尽管CAS具有高性能、无死锁等优点,但也存在ABA问题、循环开销大及仅支持单变量原子操作等缺点。合理使用CAS,结合实际场景选择同步机制,能有效提升程序性能。
|
13天前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
147 0
|
8天前
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
262 100
|
1月前
|
存储 缓存 Java
Java数组全解析:一维、多维与内存模型
本文深入解析Java数组的内存布局与操作技巧,涵盖一维及多维数组的声明、初始化、内存模型,以及数组常见陷阱和性能优化。通过图文结合的方式帮助开发者彻底理解数组本质,并提供Arrays工具类的实用方法与面试高频问题解析,助你掌握数组核心知识,避免常见错误。
|
2月前
|
人工智能 Cloud Native Java
2025 年 Java 应届生斩获高薪需掌握的技术实操指南与实战要点解析
本指南为2025年Java应届生打造,涵盖JVM调优、响应式编程、云原生、微服务、实时计算与AI部署等前沿技术,结合电商、数据处理等真实场景,提供可落地的技术实操方案,助力掌握高薪开发技能。
162 2
|
1月前
|
缓存 安全 Java
Java并发性能优化|读写锁与互斥锁解析
本文深入解析Java中两种核心锁机制——互斥锁与读写锁,通过概念对比、代码示例及性能测试,揭示其适用场景。互斥锁适用于写多或强一致性场景,读写锁则在读多写少时显著提升并发性能。结合锁降级、公平模式等高级特性,助你编写高效稳定的并发程序。
138 0
|
13天前
|
安全 Java API
Java SE 与 Java EE 区别解析及应用场景对比
在Java编程世界中,Java SE(Java Standard Edition)和Java EE(Java Enterprise Edition)是两个重要的平台版本,它们各自有着独特的定位和应用场景。理解它们之间的差异,对于开发者选择合适的技术栈进行项目开发至关重要。
66 1
|
1月前
|
存储 缓存 算法
Java数据类型与运算符深度解析
本文深入解析Java中容易混淆的基础知识,包括八大基本数据类型(如int、Integer)、自动装箱与拆箱机制,以及运算符(如&与&&)的使用区别。通过代码示例剖析内存布局、取值范围及常见陷阱,帮助开发者写出更高效、健壮的代码,并附有面试高频问题解析,夯实基础。
|
1月前
|
安全 Oracle Java
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
194 0
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
|
1月前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
110 0

热门文章

最新文章

推荐镜像

更多
  • DNS