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

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

难度等级: 中等

预测以下 Java 程序的输出:

问题

问题一

class GfG
{
  public static void main(String args[])
  {
    String s1 = new String("geeksforgeeks");
    String s2 = new String("geeksforgeeks");
    if (s1 == s2)
      System.out.println("Equal");
    else
      System.out.println("Not equal");
  }
}

点此跳转到答案

问题二

class Person
{
  private void who()
  {
    System.out.println("Inside private method Person(who)");
  }
  public static void whoAmI()
  {
    System.out.println("Inside static method, Person(whoAmI)");
  }
  public void whoAreYou()
  {
    who();
    System.out.println("Inside virtual method, Person(whoAreYou)");
  }
}
class Kid extends Person
{
  private void who()
  {
    System.out.println("Kid(who)");
  }
  public static void whoAmI()
  {
    System.out.println("Kid(whoAmI)");
  }
  public void whoAreYou()
  {
    who();
    System.out.println("Kid(whoAreYou)");
  }
}
public class Gfg
{
  public static void main(String args[])
  {
    Person p = new Kid();
    p.whoAmI();
    p.whoAreYou();
  }
}

点此跳转到答案

问题三

class GfG
{
  public static void main(String args[])
  {
    try
    {
      System.out.println("First statement of try block");
      int num=45/3;
      System.out.println(num);
    }
    catch(Exception e)
    {
      System.out.println("Gfg caught Exception");
    }
    finally
    {
      System.out.println("finally block");
    }
    System.out.println("Main method");
  }
}

点此跳转到答案

问题四

class One implements Runnable
{
  public void run()
  {
    System.out.print(Thread.currentThread().getName());
  }
}
class Two implements Runnable
{
  public void run()
  {
    new One().run();
    new Thread(new One(),"gfg2").run();
    new Thread(new One(),"gfg3").start();
  }
}
class Three
{
  public static void main (String[] args)
  {
    new Thread(new Two(),"gfg1").start();
  }
}

点此跳转到答案


放张可爱妹子的图缓解一下眼睛疲劳,文章后半部分是程序的输出及解析

微信截图_20231124163532.png


输出及解析

问题一答案

输出:

Not equal

解释:

由于 s1 和 s2 是两个不同的对象,因此引用不相同,并且 == 运算符比较对象引用。所以它打印“不等于”,来比较字符串中的实际字符,必须使用 .equals() 方法。

问题二答案

输出:

Inside static method, Person(whoAmI)
Kid(who)
Kid(whoAreYou)

说明:

静态绑定(或编译时)发生在静态方法上。这里p.whoAmI()调用静态方法,因此它在编译时被调用,因此导致静态绑定并在 Person 类中打印该方法。 而p.whoAreYou()调用Kid类中的方法,因为默认情况下 Java 将其作为虚拟方法,即动态绑定。


问题三答案

输出:

First statement of try block
15
finally block
Main method

解释:

由于没有异常,所以不调用catch块,但不管异常是否处理,finally块总是在try块之后执行。


问题四答案

输出:

gfg1gfg1gfg3

说明:

最初新线程以名称gfg1启动,然后在类二中,第一个 run 方法运行名为gfg1的线程,然后创建一个新线程调用 run 方法,但由于只能通过调用 start 方法创建新线程所以以前的线程执行的行动,并再次gfg1是printed.Now一个新的线程是通过调用start方法使一个新的线程启动创建gfg3名称,因此打印gfg3。




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

推荐镜像

更多
  • DNS