[Java-упражнения] Вывод Java-программ | Набор 12 (включая синтаксический анализ)

Java задняя часть
[Java-упражнения] Вывод Java-программ | Набор 12 (включая синтаксический анализ)

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

а) ошибка компиляции
b) 1020
c) 101520
г) ничего из вышеперечисленного

Нажмите здесь, чтобы перейти к ответу


Процедура третья

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

тест
б) производное
в) ошибка компиляции
г) ошибки времени выполнения

Нажмите здесь, чтобы перейти к ответу


программа четыре

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

а) ошибка компиляции
б) ошибки времени выполнения
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
г) ничего из вышеперечисленного

Нажмите здесь, чтобы перейти к ответу


программа шесть

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
в) ошибка компиляции
г) ничего из вышеперечисленного

Нажмите здесь, чтобы перейти к ответу


программа семь

7) Для данного кода выберите правильный ответ.

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

а) Ошибки времени компиляции из-за NestedInterface
б) Ошибка времени компиляции из-за модификатора доступа NestedInterface
c) отсутствие ошибок времени компиляции
г) NestedInterface не может содержать никаких объявлений функций.

Нажмите здесь, чтобы перейти к ответу


Процедура восьмая

8) Какое из следующих утверждений об объявлениях конструкторов верно?

а) Конструкторы могут быть объявлены окончательными.
б) Конструкторы могут быть окружены блоками try/catch.
c) Конструкторы не могут генерировать исключения.
г) Конструктор может содержать синхронизированный код (чтобы каждый поток мог обращаться к конструктору последовательно).

Нажмите здесь, чтобы перейти к ответу


Вторая половина статьи - вывод и анализ программы

ef0db78e99c84c19ec33f6497895ccec.jpg


вывод и разбор

вывод программы

Отвечать:

(c)

иллюстрировать:

Родительский поток использует соединение, чтобы дождаться завершения вновь созданного потока. Метод join() позволяет одному потоку ждать, пока другой поток завершит свое выполнение. Таким образом, родительский поток печатает 1 и ждет завершения дочернего потока. Дочерний поток выводит на консоль 3, и, наконец, родительский поток выводит 2.


Программа два выхода

Отвечать:

(a)

иллюстрировать:

Нестатические переменные недоступны в статических вложенных внутренних классах. «Вложенный» не может получить доступ к нестатическим переменным [переменным в данном случае]. Отсюда ошибка:

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

Программа три выхода

Отвечать:

(b)

иллюстрировать:

Если метод суперкласса объявляет исключение, метод, переопределяемый подклассом, может объявить то же самое, исключение подкласса или отсутствие исключения, но не исключение суперкласса.


Запрограммируйте четыре ответа

отвечать :

(d)

иллюстрировать:

test.run() выполняет метод запуска. test.start() создает новый поток и выполняет переопределенный метод запуска класса Thread. Метод Thread.start() всегда запускает новый поток, точкой входа которого является метод run(). Если вы вызовете run() напрямую, он будет выполняться в том же потоке, новсегда рекомендую вThread.start() логически вызывается для запуска нового потока выполнения, за которым следует метод run().


Программа пять ответов

отвечать :

(b)

проиллюстрировать:

Оператор == проверяет, указывают ли две переменные на один и тот же объект. Здесь a и b относятся к двум разным объектам. ?: — это еще одна форма оператора if else, которую можно понимать как условие: если верно, то сделайте это: иначе сделайте это.


Программа Шесть Ответов

отвечать :

(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-программ | Набор 10 (сборка мусора)
[Java-упражнения] Вывод Java-программ | Набор 11 (включая синтаксический анализ)

Я давно веду блог о технологиях, и это одна из моих технических статей/руководств. Надеюсь, вам это понравится! Вот краткое изложение всех моих оригинальных и исходных кодов работ:GitHub, и это блог, который я недавно создал:haiyong.site,контента в ней не так много,есть какие-то HTML игры,если интересно можете попробовать.Вы можете сами скопировать исходники по F12,или спросите у меня напрямую.

Если вы действительно узнали что-то новое из этой статьи, ставьте лайк, добавляйте в закладки и делитесь с друзьями. 🤗Наконец, не забудьте поставить ❤ или 📑 в поддержку.