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

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

«Эта статья участвовала в мероприятии Haowen Convocation Order, щелкните, чтобы просмотреть:Заявки на бэк-энд и фронт-энд с двумя треками, призовой фонд в 20 000 юаней ждет вас, чтобы бросить вызов! "

Уровень сложности: средний

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

проблема

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

class Gfg
{
    // constructor
    Gfg()
    {
        System.out.println("juejin");
    }
      
    static Gfg a = new Gfg(); //line 8
  
    public static void main(String args[])
    {
        Gfg b; //line 12
        b = new Gfg();
    }
}

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

Вопрос второй

class Gfg
{
    static int num;
    static String mystr;
  
    // constructor
    Gfg()
    {
        num = 100;
        mystr = "Constructor";
    }
  
    // First Static block
    static
    {
        System.out.println("Static Block 1");
        num = 68;
        mystr = "Block1";
    }
  
    // Second static block
    static
    {
        System.out.println("Static Block 2");
        num = 98;
        mystr = "Block2";
    }
  
    public static void main(String args[])
    {
        Gfg a = new Gfg();
        System.out.println("Value of num = " + a.num);
        System.out.println("Value of mystr = " + a.mystr);
    }
}

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

Вопрос третий

class superClass
{
	final public int calc(int a, int b)
	{
		return 0;
	}
}
class subClass extends superClass
{
	public int calc(int a, int b)
	{
		return 1;
	}
}
public class Gfg
{
	public static void main(String args[])
	{
		subClass get = new subClass();
		System.out.println("x = " + get.calc(0, 1));
	}
}

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

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

public class Gfg
{
	public static void main(String[] args)
	{
		Integer a = 128, b = 128;
		System.out.println(a == b);

		Integer c = 100, d = 100;
		System.out.println(c == d);
	}
}

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


Поместите картинку милой девушки для снятия усталости глаз.Вторая половина статьи - вывод и разбор программы

9992fc8fbcb7d37eac355b3c01f68bb3.jpg


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

вопрос ответ

вывод:

juejin
juejin

объяснять:

Мы знаем, что статические переменные вызываются при загрузке класса, а статические переменные вызываются только один раз. Теперь строка 13 вызывает создание объекта, который, в свою очередь, вызывает конструктор, печатающий «juejin» во второй раз. Если бы статическая переменная не использовалась в строке 8, объект вызывался бы бесконечно рекурсивно, что приводило бы к ошибке StackOverFlow. См. этот пример запуска.

Вопрос два ответа

вывод:

Static Block 1
Static Block 2
Value of num = 100
Value of mystr = Constructor

инструкция:

Статические блоки выполняются, когда класс загружается в память. Класс может иметь несколько статических блоков, которые выполняются в том же порядке, в котором они были записаны в программу.

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

Вопрос три ответа

вывод:

Compilation fails

объяснять:

Метод calc() в классе superClass является окончательным и поэтому не может быть переопределен.

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

вывод:

false
true

инструкция:

Объяснение: В исходном коде объекта Integer мы находим метод 'valueOf', в этом методе мы видим, что диапазон объекта Integer находится в пределах от IntegerCache.low(-128) до IntegerCache.high(127). Таким образом, числа выше 127 не дадут ожидаемого результата. Объем IntegerCache можно увидеть из исходного кода класса IntegerCache.


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

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

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

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