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

2,288 阅读5分钟

这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战

难度级别: 中级

程序

程序一

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();
	}
}

a) 由于 NestedInterface 导致的编译时错误
b)由于 NestedInterface 的访问修饰符导致的编译时错误
c) 没有编译时错误
d) NestedInterface 不能保存任何函数声明。

点此跳转到答案


程序八

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

a) 构造函数可以声明为 final。
b) 构造函数可以被 try/catch 块包围。
c) 构造函数不能抛出异常。
d) 构造函数可以持有同步代码(以便每个线程可以顺序访问构造函数)。

点此跳转到答案


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

ef0db78e99c84c19ec33f6497895ccec.jpg


输出及解析

程序一输出

答案

(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)

说明:

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


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

相关文章:

【Java练习题】Java程序的输出 | 第一套(含解析)
【Java练习题】Java程序的输出 | 第二套(含解析)
【Java练习题】Java程序的输出 | 第三套(含解析)
【Java练习题】Java程序的输出 | 第四套(含解析)
【Java练习题】Java程序的输出 | 第五套(含解析)
【Java练习题】Java程序的输出 | 第六套(含解析)
【Java练习题】Java程序的输出 | 第七套(含解析)
【Java练习题】Java程序的输出 | 第八套(含解析)
【Java练习题】Java程序的输出 | 第九套(含解析)
【Java练习题】Java 程序的输出 | 第十套(垃圾回收)
【Java练习题】Java 程序的输出 | 第十一套(含解析)

我已经写了很长一段时间的技术博客,这是我的一篇技术文章/教程。希望你们会喜欢!这里汇总了我的全部原创及作品源码:GitHub,还有这是我最近刚搭建的博客:haiyong.site,里面还没啥内容,放了一些HTML小游戏,有兴趣的可以尝试一下,源码可以自己F12复制,或者直接找我要。

如果你真的从这篇文章中学到了一些新东西,喜欢它,收藏它并与你的小伙伴分享。🤗最后,不要忘了❤或📑支持一下哦。