Рубрики
Без рубрики

Основная викторина по Java

Основная викторина по Java для проверки ваших навыков в базовом программировании на Java, концепциях OOPS и функциях программирования на Java. Проверьте свои знания Java с помощью этих вопросов.

Автор оригинала: Pankaj Kumar.

Добро пожаловать в основную викторину Java. Java-это объектно-ориентированный язык программирования.

Основная викторина по Java

В этом тесте вы будете протестированы на основные основы Java и концепции OOPS. Также есть несколько фрагментов кода, чтобы проверить ваши базовые навыки программирования на Java.

На некоторые вопросы есть несколько ответов. Вы можете нажать на кнопку ” Раскрыть ответ ” для правильного ответа и объяснения.

Попробуйте и поделитесь им с другими, если вам это нравится.

1. Какой из приведенных ниже способов является допустимым для создания экземпляра массива в java?

A. в моем мире [] = {1, 3, 5}; B. int myArray [] [] = {1,2,3,4}; C. int [] myArray = (5, 4, 3); D. int [] myArray = {“1”, “2”, “3”};

Нажмите, чтобы открыть ответ

Правильный ответ: A int [] myArray = {“1”, “2”, “3”}; недопустимо, поскольку строка не может быть преобразована в int. int [] myArray = (5, 4, 3); недопустимо, поскольку элементы массива должны быть определены в фигурных скобках ({}). int myArray [] [] = {1,2,3,4}; недопустимо, поскольку myArray является двумерным массивом, тогда как в данном случае он определяется как одномерный массив. Компилятор будет жаловаться на несоответствие типов: не удается преобразовать из int в int[].

2. Какое из приведенных ниже ключевых слов зарезервировано в Java?

A. массив B. goto C. null D. int

Нажмите, чтобы открыть ответ

Правильный ответ: B, D goto и int являются зарезервированными ключевыми словами в java. массив и null не являются ключевыми словами в java.

3. Что произойдет, если мы попытаемся скомпилировать и запустить приведенную ниже программу?

interface Foo{ int x = 10;}

public class Test { 
    public static void main(String[] args) { 
        Foo.x = 20; 
        System.out.println(Foo.x); 
    }
}

A. Выводит 10 B. Выводит 20 C. Ошибка времени компиляции D. Ошибка времени выполнения, потому что Foo.x является окончательным.

Нажмите, чтобы открыть ответ

Правильный ответ: C По умолчанию любое поле интерфейса является общедоступным, статическим и окончательным. Таким образом, мы не можем изменить is, следовательно, ошибка во время компиляции в операторе Foo.x; .

4. Каков будет результат приведенной ниже программы?

public class Test {
	public static void main(String[] args) {
		char c = 65;
		System.out.println("c = " + c);
	}
}

A. Ошибка времени компиляции B. Печать” C. Ошибка времени выполнения D. Печать”

Нажмите, чтобы открыть ответ

Правильный ответ: компилятор B Java пытается автоматически преобразовать int в char. Поскольку 65 преобразуется в A, следовательно, вывод будет”. Диапазон значений символов составляет от u0000 до uffff. Таким образом, char; допустимо, но char; приведет к ошибке во время компиляции.

5. Что будет выводиться из приведенной ниже программы?

public class Test { 
    public void main(String[] args) {
        int x = 10*20-20; 
        System.out.println(x); 
    }
}

A. Ошибка во время выполнения B. Выводит 180 C. Выводит 0 D. Ошибка во время компиляции.

Нажмите, чтобы открыть ответ

Правильный ответ: ошибка Во время выполнения, потому что основной метод не статичен. Сообщение об ошибке будет Основной метод не статичен в тесте класса, пожалуйста, определите основной метод как: public static void main(String[] args)

6. Каковы допустимые операторы для статического ключевого слова в Java?

A. У нас может быть статический блок в классе. B. Статический блок в классе выполняется каждый раз, когда создается объект класса. C. У нас могут быть реализации статических методов в интерфейсе. D. Мы можем определить статический блок внутри метода.

Нажмите, чтобы открыть ответ

Правильные ответы: A, C У нас может быть статический блок в классе, он выполняется только один раз при загрузке класса. Начиная с java 8 и далее, у нас могут быть реализации статических методов в интерфейсах.

7. Выберите все основные концепции OOPS.

A. Абстракция B. Наследование С. Интерфейс D. Полиморфизм E. Дженерики

Нажмите, чтобы открыть ответ

Правильные ответы: A, B, D Основными понятиями OOPS являются;

  1. Абстракция
  2. Инкапсуляция
  3. Полиморфизм
  4. Наследование
  5. Композиция
  6. Ассоциация
  7. Агрегация

Подробнее читайте в разделе Концепции OOPS

8. Какие из следующих утверждений верны для наследования в Java?

A. Ключевое слово “расширить” используется для расширения класса в java. B. Вы можете расширить несколько классов в java. C. Частные члены суперкласса доступны для подкласса. D. Мы не можем расширить конечные классы в java.

Нажмите, чтобы открыть ответ

Правильный ответ: D Наследование-одна из основных концепций Java. Вы должны быть знакомы с этим. Пожалуйста, прочитайте следующие статьи, чтобы узнать больше о вариантах ответов – Наследование в Java , Множественное наследование в Java .

9. Каков будет результат приведенной ниже программы?

package com.journaldev.java;

public class Test {
	public static void main(String[] args) {
		Super s = new Subclass();
		s.foo();
	}
}

class Super {
	void foo() {
		System.out.println("Super");
	}
}

class Subclass extends Super {
	static void foo() {
		System.out.println("Subclass");
	}
}

A. Ошибка времени компиляции B. Супер C. Подкласс D. Ошибка времени выполнения

Нажмите, чтобы открыть ответ

Правильный ответ: Метод Подкласса foo() не может быть статическим, это приведет к ошибке во время компиляции Этот статический метод не может скрыть метод экземпляра от Super .

10. Каков будет результат приведенной ниже программы?

package com.journaldev.java;

public class Test {
	public static void main(String[] args) {
		Subclass s1 = new Subclass();
		s1.foo(); // line 6
		Super s = new Subclass();
		s.foo(); // line 8
	}
}

class Super {
	private void foo() {
		System.out.println("Super");
	}
}

class Subclass extends Super {
	public void foo() {
		System.out.println("Subclass");
	}
}

A. Ошибка времени компиляции в строке 6 B. Ошибка времени компиляции в строке 8 C. Ошибка времени компиляции как в строке 6, так и в строке 8 D. Работает нормально и печатает “Подкласс” два раза.

Нажмите, чтобы открыть ответ

Правильный ответ: B Ошибка во время компиляции в строке 8, потому что метод Super class foo() является частным. Сообщение об ошибке Метод foo() из типа Super не виден .

11. Каков будет результат приведенной ниже программы?

import java.io.IOException;

public class Test {
	public static void main(String[] args) {
		try {
			throw new IOException("Hello");
		} catch (IOException | Exception e) {
			System.out.println(e.getMessage());
		}
	}
}

A. Ошибка во время компиляции B. Выводит “Привет” C. Ошибка во время выполнения

Нажмите, чтобы открыть ответ

Правильный ответ: Ошибка Во время компиляции, поскольку Исключение IOException уже поймано альтернативным исключением .

12. Каков будет результат приведенной ниже программы?

public class Test {
	public static void main(String[] args) {
		String x = "abc";
		String y = "abc";
		x.concat(y);
		System.out.print(x);
	}
}

A. abc B. abc C. ноль

Нажмите, чтобы открыть ответ

Правильный ответ: B x.concat(y); создаст новую строку, но она не назначена x, поэтому значение x не изменяется.

13. Какие из приведенных ниже исключений являются непроверенными в java?

A. Исключение RuntimeException B. Исключение ClassCastException C. Исключение NullPointerException D. Исключение IOException

Нажмите, чтобы открыть ответ

Правильный ответ: Исключение A, B, C RuntimeException и его подклассы являются непроверенными исключениями. Непроверенные исключения не нужно объявлять в предложении метода или конструктора throws.

14. Каков будет результат приведенной ниже программы?

package com.journaldev.java;

import java.io.IOException;

public class Test {
	public static void main(String[] args) {
		try {
			throw new Exception("Hello ");
		} catch (Exception e) {
			System.out.print(e.getMessage());
		} catch (IOException e) {
			System.out.print(e.getMessage());
		} finally {
			System.out.println("World");
		}
	}
}

A. Ошибка во время компиляции B. Привет C. Привет, Мир D. Привет, Привет, Мир

Нажмите, чтобы открыть ответ

Правильный ответ: ошибка Во время компиляции Недостижимый блок перехвата для исключения IOException. Он уже обработан блоком catch для исключения .

15. Какие из следующих утверждений верны для java?

A. JVM отвечает за преобразование байтового кода в машинный код. B. Нам нужен JRE только для запуска программ java. C. JDK необходим для компиляции программ java. D. JRE не содержит JVM

Нажмите, чтобы открыть ответ

Правильный ответ: A, B, C Для полного объяснения прочитайте JDK, JRE и JVM .

16. Можем ли мы иметь два основных метода в классе java?

А. Да Б. Нет

Нажмите, чтобы открыть ответ

Правильный ответ: A Это был сложный вопрос. У нас может быть несколько методов, имеющих имя “main” в java, с помощью перегрузки методов.

17. Какие из следующих утверждений верны в отношении аннотаций в java?

A. ключевое слово @interface используется для создания пользовательской аннотации B. @Override-это встроенная аннотация в java C. Аннотации не могут быть применены к полям в классе. D. @Retention является одной из мета-аннотаций в java. E. Информация об аннотациях Java теряется при компиляции класса.

Нажмите, чтобы открыть ответ

Правильный ответ: A, B, D Для полного объяснения прочитайте Аннотации Java .

18. Какие из следующих утверждений верны относительно перечисления в java?

A. Все перечисления java неявно расширяются java.lang.Перечисление класс. B. Перечисление Java может реализовывать интерфейсы. С. Мы можем создать экземпляр перечисления, используя новый оператор. D. Перечисления не могут использоваться в операторах switch. E. Константы перечисления неявно статичны и конечны.

Нажмите, чтобы открыть ответ

Правильный ответ: A, B, E Подробнее читайте в Перечисление в Java .

19. Какие из перечисленных ниже встроенных загрузчиков классов в java?

A. Загрузчик классов начальной загрузки B. Загрузчик классов расширений C. Загрузчик классов во время выполнения D. Загрузчик системных Классов

Нажмите, чтобы открыть ответ

Правильный ответ: A, B, D Подробнее читайте в Загрузчики классов в Java .

20. Каков будет результат приведенной ниже программы?

package com.journaldev.util;

public class Test {
	public static String toString() {
		System.out.println("Test toString called");
		return "";
	}

	public static void main(String args[]) {
		System.out.println(toString());
	}
}

A. “Вызывается тестовая строка” B. Ошибка во время компиляции C. “Тест@7fh2bd8” (Вызывается метод toString() класса объектов)

Нажмите, чтобы открыть ответ

Правильный ответ: B Мы получим ошибку во время компиляции, потому что мы не можем переопределить метод класса объектов ключевым словом static. Класс объекта имеет метод toString () . Вы получите ошибку во время компиляции, как “Этот статический метод не может скрыть метод экземпляра от объекта”.

21. Каковы будут результаты приведенной ниже программы?

public class Test {
	public static void main(String[] args) {
		String s1 = "abc";
		String s2 = "abc";
		System.out.println("s1 == s2 is:" + s1 == s2);
	}
}

A. s1 является:истинным B. ложным C. s1 является:ложным D. истинным

Нажмите, чтобы открыть ответ

Правильный ответ: B Вывод данных операторов будет “ложным”, потому что в java + приоритет оператора больше, чем. Таким образом, данное выражение будет оценено как “s1 is:abc”, т. е. ложно.

Вывод

Надеюсь, вам понравилась Основная Java-викторина. Если вы думаете, что я пропустил некоторые важные области, дайте мне знать, и я добавлю сюда еще несколько сложных вопросов викторины. Следующий тест : Java String Quiz