【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。




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

推荐镜像

更多
  • DNS