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

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

Это пятый день моего участия в августовском испытании обновлений, подробности о мероприятии:Испытание августовского обновления

Сложный уровень:средний

программа

программа один

Предскажите вывод следующей программы Java:

public class Base{
	private int data;
	public Base(){
		data = 5;
	}
	public int getData(){
		return this.data;
	}
}

class Derived extends Base{
	private int data;
	public Derived(){
		data = 6;
	}
	private int getData(){
		return data;
	}
	public static void main(String[] args){
		Derived myData = new Derived();
		System.out.println(myData.getData());
	}
}

a) 6
b) 5
в) ошибка времени компиляции
г) ошибки во время выполнения

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


программа вторая

public class Test{
	private int data = 5;
	public int getData()	{
		return this.data;
	}
	public int getData(int value)	{
		return (data+1);
	}
	public int getData(int... value)	{
		return (data+2);
	}
	public static void main(String[] args)	{
		Test temp = new Test();
		System.out.println(temp.getData(7, 8, 12));
	}
}

а) ошибки времени компиляции или времени выполнения
b) 8
c) 10
d) 7

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


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

public class Base{
	private int multiplier(int data){
		return data*5;
	}
}

class Derived extends Base{
	private static int data;
	public Derived(){
		data = 25;
	}
	public static void main(String[] args){
		Base temp = new Derived();
		System.out.println(temp.multiplier(data));
	}
}

a) 125
b) 25
в) ошибка выполнения
г) ошибка времени компиляции

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


Вопрос четвертый

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

а) Для каждого блока try может быть только 1 блок finally.
б) если программа завершается вызовом System.exit(), блок finally не будет выполнен;
c) Если исключение не обрабатывается в операторе catch, JVM выполнит блок finally перед завершением программы.
г) Блок finally содержит важный сегмент кода, поэтому код в блоке finally выполняет код при наличии/отсутствии блока try в java.

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


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

import java.io.IOException;
import java.util.EmptyStackException;

public class newclass{
	public static void main(String[] args){
		try{
			System.out.printf("%d", 1);
			throw(new Exception());
		}
		catch(IOException e){
			System.out.printf("%d", 2);
		}
		catch(EmptyStackException e){
			System.out.printf("%d", 3);
		}
		catch(Exception e){
			System.out.printf("%d", 4);
		}
		finally{
			System.out.printf("%d", 5);
		}
	}
}

a) 12345
b) 15
c) 135
d) 145

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


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

public class javaclass{
	static{
		System.out.printf("%d", 1);
	}
	static{
		System.out.printf("%d", 2);
	}
	static{
		System.out.printf("%d", 3);
	}
	private static int myMethod(){
		return 4;
	}
	private int function(){
		return 5;
	}

	public static void main(String[] args){
		System.out.printf("%d", (new javaclass()).function() + myMethod());
	}
}

a) 123
b) 45
c) 12345
d) 1239

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


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

9ae3f2f42415ec425ac3df6d87dfc531.jpg


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

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

Отвечать:

(c)

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

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

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

Отвечать:

(d)

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

Когда вы не знаете количество входных параметров, но знаете тип параметра (в данном случае int), (int... values) передается методу в качестве параметра. Когда в основном методе создается новый объект, переменная data инициализируется значением 5. Вызов метода getData() со свойствами (7, 8, 12) вызывает третий метод getData(), который увеличивает значение переменной данных на 2 и возвращает 7.

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

Отвечать:

(d)

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

Поскольку множитель метода помечен как закрытый, он не наследуется и, следовательно, не виден потомкам.

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

отвечать :

(d)

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

Утверждение (d) неверно, потому что блок finally может существовать только в том случае, если блок try или catch завершается успешно. Использование блока finally без блока try приводит к ошибке времени компиляции.

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

отвечать :

(d)

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

Порядок, в котором пишутся операторы catch, следующий: от более конкретного к более общему. В приведенном выше коде создается новое исключение типа Exception. Сначала код переходит к первому блоку catch, чтобы найти обработчик исключений. Но поскольку IOException не того же типа, он перемещается вниз ко второму блоку catch и, наконец, к третьему, где перехватывается исключение и печатается 4. Следовательно, ответ равен 145, потому что порядок выполнения блоков такой: try->catch->finally.

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

отвечать :

(d)

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

Статические блоки в Java выполняются еще до того, как компилятор вызовет main. В основном методе создайте новый объект javaclass, вызовите его метод function() для возврата 5 и статический метод myMethod() для возврата 4, то есть 4+5=9. Таким образом, вывод программы равен 1239, потому что 123 выводится на консоль еще до выполнения основного метода, а основной метод возвращает 9 при выполнении.


Это все для этой статьи

Статьи по Теме:

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

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

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