100+ вопросов и ответов на собеседовании по Java (2024 г.)

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

 

Вопросы и ответы на собеседовании по программированию на Java для новичков

1) В чем разница между внутренним классом и подклассом?

Внутренний класс — это класс, вложенный в другой класс. Внутренний класс имеет права доступа для вложенного в него класса и может получить доступ ко всем переменным и методам, определенным во внешнем классе.

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

👉 Бесплатная загрузка PDF-файла: Java-интервью, вопросы и ответы для собеседований >>


2) Каковы различные спецификаторы доступа для классов Java?

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

1) Общественный: Класс, Метод, Поле доступны из любого места.

2) Защищено: Доступ к методу и полю можно получить из того же класса, которому они принадлежат, или из подклассов и из класса того же пакета, но не извне.

3) По умолчанию: Доступ к методу, полю, классу возможен только из того же пакета, а не за пределами его собственного пакета.

4) Частный: Доступ к методу и полю возможен из того же класса, к которому они принадлежат.


3) Какова цель статических методов и статических переменных?

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


4) Что такое инкапсуляция данных и каково ее значение?

Инкапсуляция — это концепция объектно-ориентированного программирования, позволяющая объединить свойства и методы в одном модуле.

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


5) Что такое одноэлементный класс? Приведите практический пример его использования.

Одноэлементный класс в Java может иметь только один экземпляр, и, следовательно, все его методы и переменные принадлежат только одному экземпляру. Концепция класса Singleton полезна в ситуациях, когда необходимо ограничить количество объектов в классе.

Лучшим примером одноэлементного сценария использования является ситуация, когда существует ограничение на наличие только одного подключения к базе данных из-за некоторых ограничений драйвера или каких-либо проблем с лицензированием.


6) Что такое циклы в Java? Какие три типа петель существуют?

Циклы используются в программировании для многократного выполнения оператора или блока операторов. Есть три типы циклов в Java:

1) Для циклов

Циклы for используются в Java для многократного выполнения операторов заданное количество раз. Циклы for используются, когда программисту известно, сколько раз выполнять операторы.

2) Циклы «Пока»

Цикл while используется, когда определенные операторы необходимо выполнять повторно, пока не будет выполнено условие. В циклах while условие проверяется перед выполнением операторов.

3) Делайте циклы while

Цикл Do While аналогичен циклу While с той лишь разницей, что условие проверяется после выполнения блока операторов. Следовательно, в случае цикла do while операторы выполняются хотя бы один раз.


7) Что такое бесконечный цикл? Как объявляется бесконечный цикл?

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

Бесконечный цикл объявляется следующим образом:

for (;;)
{
    // Statements to execute

    // Add any loop breaking logic
}

8) В чем разница между операторами продолжения и прерывания?

Break и continue — два важных ключевых слова, используемых в циклах. Когда в цикле используется ключевое слово Break, цикл прерывается мгновенно, а при использовании ключевого слова continue прерывается текущая итерация и цикл продолжается со следующей итерации.

В приведенном ниже примере цикл прерывается, когда счетчик достигает 4.

for (counter = 0; counter & lt; 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    break;
}

}

В приведенном ниже примере, когда счетчик достигает 4, цикл переходит к следующей итерации, и все операторы после ключевого слова continue пропускаются для текущей итерации.

for (counter = 0; counter < 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    continue;
}
system.out.println("This will not get printed when counter is 4");
}

9) В чем разница между переменными double и float в Java?

В Java float занимает 4 байта в памяти, а Double — 8 байт. Float — это десятичное число с плавающей запятой одинарной точности, а Double — десятичное число двойной точности.


10) Что такое финальное ключевое слово в Java? Приведите пример.

В Java константа объявляется с использованием ключевого слова Final. Значение может быть присвоено только один раз, и после присвоения значение константы не может быть изменено.

В приведенном ниже примере объявлена ​​константа с именем const_val, которой присвоено значение:

Частный финал int const_val=100

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

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


11) Что такое тернарный оператор? Приведите пример.

Тернарный оператор, также называемый условным оператором, используется для принятия решения о том, какое значение присвоить переменной, на основе оценки логического значения. Это обозначается как?

В приведенном ниже примере, если ранг равен 1, статусу присваивается значение «Готово», иначе — «Ожидание».

public class conditionTest {
    public static void main(String args[]) {
        String status;
        int rank = 3;
        status = (rank == 1) ? "Done" : "Pending";
        System.out.println(status);
    }
}

12) Как генерировать случайные числа в Java?

  • Используя Math.random(), вы можете генерировать случайные числа в диапазоне больше или равного 0.1 и меньше 1.0.
  • Использование класса Random в пакете java.util

13) Что такое переключатель по умолчанию? Приведите пример.

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

В приведенном ниже примере, если оценка не равна 1 или 2, используется регистр по умолчанию.

public class switchExample {
    int score = 4;
    public static void main(String args[]) {
        switch (score) {
            case 1:
                system.out.println("Score is 1");
                break;
            case 2:
                system.out.println("Score is 2");
                break;
            default:
                system.out.println("Default Case");
        }
    }
}

14) Какой базовый класс в Java, от которого произошли все классы?

java.lang.object


15) Может ли метод main() в Java возвращать какие-либо данные?

В Java метод main() не может возвращать какие-либо данные и, следовательно, он всегда объявляется с возвращаемым типом void.


16) Что такое пакеты Java? Какое значение имеют пакеты?

В Java пакет — это набор классов и интерфейсов, связанных друг с другом. Использование пакетов помогает разработчикам модульно структурировать код и группировать его для правильного повторного использования. После того как код упакован в пакеты, его можно импортировать в другие классы и использовать.


17) Можем ли мы объявить класс как абстрактный, не имея абстрактного метода?

Да, мы можем создать абстрактный класс, используя ключевое слово Abstract перед именем класса, даже если у него нет абстрактного метода. Однако если в классе есть хотя бы один абстрактный метод, его необходимо объявить как абстрактный, иначе он выдаст ошибку.


18) В чем разница между абстрактным классом и интерфейсом в Java?

Основное различие между абстрактным классом и интерфейсом заключается в том, что интерфейс может содержать только объявление общедоступных статических методов без конкретной реализации, тогда как абстрактный класс может иметь члены с любыми спецификаторами доступа (открытыми, частными и т. д.) с конкретной реализацией или без нее.

Еще одно ключевое отличие в использовании абстрактных классов и интерфейсов заключается в том, что класс, реализующий интерфейс, должен реализовывать все методы интерфейса, в то время как класс, наследуемый от абстрактного класса, не требует реализации всех методов своего суперкласса.

Класс может реализовывать несколько интерфейсов, но расширять только один абстрактный класс.


19) Каково влияние интерфейсов на производительность по сравнению с абстрактными классами?

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

Использование интерфейсов также налагает дополнительную нагрузку на разработчиков, поскольку каждый раз интерфейс реализуется в классе; разработчик вынужден реализовать каждый метод интерфейса.


20) Импортирует ли пакет и его подпакеты в Java?

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

Например, если разработчик импортирует пакет University.*, все классы в пакете с именем University загружаются, но классы из подпакета не загружаются. Чтобы загрузить классы из своего подпакета (скажем, отдела), разработчик должен явно импортировать их следующим образом:

Импортировать университет.факультет.*


21) Можем ли мы объявить основной метод нашего класса закрытым?

В Java основной метод должен быть общедоступным статическим, чтобы любое приложение работало правильно. Если основной метод объявлен как частный, разработчик не получит никаких ошибок компиляции, однако он не будет выполнен и выдаст ошибку во время выполнения.


22) Как мы можем передать аргумент функции по ссылке, а не по значению?

В Java мы можем передавать аргумент функции только по значению, а не по ссылке.


23) Как сериализуется объект в Java?

В Java для преобразования объекта в поток байтов путем сериализации класс реализует интерфейс с именем Serializable. Все объекты класса, реализующего сериализуемый интерфейс, сериализуются, и их состояние сохраняется в потоке байтов.


24) Когда нам следует использовать сериализацию?

Сериализация используется, когда данные необходимо передать по сети. Используя сериализацию, состояние объекта сохраняется и преобразуется в поток байтов. Поток байтов передается по сети, и объект воссоздается в пункте назначения.


25) Обязательно ли в Java за блоком Try должен следовать блок Catch для обработки исключений?

За блоком Try должен следовать либо блок Catch, либо блок Final, либо оба. Любое исключение, выброшенное из блока try, должно быть либо перехвачено в блоке catch, либо какие-либо конкретные задачи, которые необходимо выполнить, прежде чем прерывание кода будет помещено в блок Final.


Вопросы и ответы на собеседовании по Java для опытных

26) Есть ли способ пропустить блок исключений Final, даже если в блоке исключений возникает какое-то исключение?

Если в блоке Try возникает исключение, управление передается блоку catch, если он существует, в противном случае — окончательной блокировке. Блок Final всегда выполняется при возникновении исключения, и единственный способ избежать выполнения каких-либо операторов в блоке Final — это принудительное прерывание кода, написав следующее:wing строка кода в конце блока try:

System.exit(0);

27) Когда вызывается конструктор класса?

Конструктор класса вызывается каждый раз, когда создается объект с новым ключевым словом.

Например, в следующемwing Объекты класса два создаются с использованием нового ключевого слова и, следовательно, конструктор вызывается два раза.

public class const_example {

    const_example() {

        system.out.println("Inside constructor");
    }
    public static void main(String args[]) {

        const_example c1 = new const_example();

        const_example c2 = new const_example();
    }
}

28) Может ли класс иметь несколько конструкторов?

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


29) Можем ли мы переопределить статические методы класса?

Мы не можем переопределить статические методы. Статические методы принадлежат классу, а не отдельным объектам, и разрешаются во время компиляции (а не во время выполнения). Даже если мы попытаемся переопределить статический метод, мы не получим ни ошибки компиляции, ни влияния переопределения при запуске код.


30) Каков будет результат в приведенном ниже примере?

public class superclass {

    public void displayResult() {

        system.out.println("Printing from superclass");

    }

}

public class subclass extends superclass {

    public void displayResult() {

        system.out.println("Displaying from subClass");

        super.displayResult();

    }

    public static void main(String args[]) {

        subclass obj = new subclass();

        obj.displayResult();

    }

}

Ans: Выход будет:

Отображение из подкласса

Печать из суперкласса


31) Является ли String типом данных в Java?

Строка не является примитивным типом данных в Java. Когда строка создается в Java, на самом деле создается объект класса Java.Lang.String. После создания этого строкового объекта все встроенные методы класса String можно использовать для этого строкового объекта.


32) Сколько строковых объектов создано в приведенном ниже примере?

String s1="I am Java Expert";

String s2="I am C Expert";

String s3="I am Java Expert";

В приведенном выше примере создаются два объекта класса Java.Lang.String. s1 и s3 являются ссылками на один и тот же объект.


33) Почему строки в Java называются неизменяемыми?

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

В приведенном ниже примере ссылка str относится к строковому объекту, имеющему значение «Значение один».

String str="Value One";

Когда ему присваивается новое значение, создается новый объект String, и ссылка перемещается на новый объект.

str="New Value";

34) В чем разница между массивом и вектором?

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


35) Что такое многопоточность?

Многопоточность — это концепция программирования, позволяющая одновременно выполнять несколько задач в одной программе. Потоки используют один и тот же стек процессов и работают параллельно. Это помогает улучшить производительность любой программы.


36) Почему в Java используется Runnable Interface?

Интерфейс Runnable используется в Java для реализации многопоточных приложений. Интерфейс Java.Lang.Runnable реализован классом для поддержки многопоточности.


37) Каковы два способа реализации многопоточности в Java?

Многопоточные приложения можно разрабатывать на Java, используя любой из следующих способов.wing две методологии:

1) С помощью интерфейса Java.Lang.Runnable. Классы реализуют этот интерфейс для включения многопоточности. В этом интерфейсе реализован метод Run().

2) Написав класс, расширяющий класс Java.Lang.Thread.


38) Когда в данных требуется много изменений, какой из них следует использовать? Строка или StringBuffer?

Поскольку StringBuffer являются динамическими по своей природе, и мы можем изменять значения объектов StringBuffer в отличие от String, который является неизменяемым, всегда полезно использовать StringBuffer, когда данные изменяются слишком сильно. Если в таком случае мы используем String, для каждого изменения данных будет создаваться новый объект String, что будет дополнительными накладными расходами.


39) Какова цель использования Break в каждом случае оператора Switch?

Break используется после каждого случая (кроме последнего) в переключателе, чтобы код прерывался после действительного случая и не выполнялся также в последующих случаях.

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


40) Как осуществляется сбор мусора в Java?

В Java, когда на объект больше не ссылаются, вывоз мусора происходит, и объект автоматически уничтожается. Для автоматической сборки мусора Java вызывает либо метод System.gc(), либо метод Runtime.gc().


41) Как мы можем выполнить любой код еще до основного метода?

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


42) Может ли класс быть суперклассом и подклассом одновременно? Приведите пример.

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

В приведенном ниже примере класс континента является подклассом мирового класса и суперклассом класса страны.

public class world {

..........

}
public class continenet extends world {

............

}
public class country extends continent {

......................

}

43) Как создаются объекты класса, если в классе не определен конструктор?

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


44) Как при многопоточности мы можем гарантировать, что ресурс не будет использоваться несколькими потоками одновременно?neoобычно?

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


45) Можем ли мы вызвать конструктор класса для объекта более одного раза?

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


46) Есть два класса: classA и classB. Оба класса находятся в одном пакете. Может ли объект класса B получить доступ к частному члену класса A?

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


47) Можем ли мы иметь в классе два метода с одинаковым именем?

Мы можем определить два метода в классе с одинаковым именем, но с разным количеством/типом параметров. Какой метод будет вызван, будет зависеть от переданных параметров.

Например, в приведенном ниже классе у нас есть два метода печати с одинаковым именем, но с разными параметрами. В зависимости от параметров соответствующий будет называться:

public class methodExample {

    public void print() {

        system.out.println("Print method without parameters.");

    }

    public void print(String name) {

        system.out.println("Print method with parameter");

    }

    public static void main(String args[]) {

        methodExample obj1 = new methodExample();

        obj1.print();

        obj1.print("xx");

    }

}

48) Как мы можем сделать копию Java-объекта?

Мы можем использовать концепцию клонирования для создания копии объекта. Используя клонирование, мы создаем копии с фактическим состоянием объекта.

Clone() — это метод интерфейса Cloneable, поэтому для создания копий объектов необходимо реализовать интерфейс Cloneable.


49) В чем преимущество использования наследования?

Ключевым преимуществом использования наследования является возможность повторного использования кода, поскольку наследование позволяет подклассам повторно использовать код своего суперкласса. Полиморфизм (расширяемость) — еще одно большое преимущество, позволяющее внедрять новые функциональные возможности, не затрагивая существующие производные классы.


50) Какой спецификатор доступа по умолчанию для переменных и методов класса?

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


51) Приведите пример использования указателей в классе Java.

В Java нет указателей. Поэтому мы не можем использовать концепцию указателей в Java.


52) Как мы можем ограничить наследование класса, чтобы ни один класс не мог быть от него унаследован?

Если мы хотим, чтобы класс не расширялся дальше каким-либо классом, мы можем использовать ключевое слово конец с именем класса.

В следующемwing например, класс Stone является финальным и не может быть расширен

public Final Class Stone {
	// Class methods and Variables
}

53) Какова область доступа спецификатора защищенного доступа?

Когда метод или переменная объявлены со спецификатором доступа Protected, они становятся доступными в том же классе, любом другом классе того же пакета, а также в подклассе.

Модификатор Класс Упаковка Подкласс Мир
что такое варган? Y Y Y Y
защищенный Y Y Y N
без модификатора Y Y N N
частная Y N N N

54) В чем разница между стеком и очередью?

Стек и очередь используются в качестве заполнителя для набора данных. Основное различие между стеком и очередью заключается в том, что стек основан на принципе «Последним пришел — первым обслужен» (LIFO), а очередь основана на принципе FIFO (первым пришел — первым обслужен).


55) Как в Java запретить сериализацию переменных?

Если мы хотим, чтобы определенные переменные класса не сериализовались, мы можем использовать ключевое слово преходящий при их объявлении. Например, переменная trans_var ниже является временной переменной и не может быть сериализована:

public class transientExample { 
	private transient trans_var; 
    // rest of the code 
}

56) Как мы можем использовать примитивные типы данных в качестве объектов?

Примитивные типы данных, такие как int, можно обрабатывать как объекты, используя соответствующие классы-оболочки. Например, Integer — это класс-оболочка для примитивного типа данных int. Мы можем применять разные методы к классу-оболочке, как и к любому другому объекту.


57) Какие типы исключений перехватываются во время компиляции?

Проверенные исключения можно отловить во время компиляции программы. Проверенные исключения должны обрабатываться с помощью блока try catch в коде, чтобы успешно скомпилировать код.


58) Опишите различные состояния потока.

Поток в Java может находиться в любом из следующих вариантов:wing гласит:

  • Готов: когда поток создан, он находится в состоянии готовности.
  • Выполняется: поток, выполняющийся в данный момент, находится в рабочем состоянии.
  • Ожидание: поток, ожидающий освобождения определенных ресурсов от другого потока, находится в состоянии ожидания.
  • Мертвый: поток, который прекратил работу после выполнения, находится в мертвом состоянии.

59) Можем ли мы использовать конструктор класса по умолчанию, даже если определен явный конструктор?

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


60) Можем ли мы переопределить метод, используя то же имя метода и аргументы, но разные типы возвращаемых значений?

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


61) Что будет на выходе фоллоwing кусок кода?

public class operatorExample {

    public static void main(String args[]) {

        int x = 4;

        system.out.println(x++);
	}
}

В этом случае используется оператор postfix++, который сначала возвращает значение, а затем увеличивает его. Следовательно, его результат будет 4.


61) Человек говорит, что успешно скомпилировал Java-класс, даже не имея в нем основного метода? Является ли это возможным?

Основной метод является точкой входа в класс Java и, однако, необходим для выполнения программы; класс успешно компилируется, даже если у него нет основного метода. Хотя его нельзя запустить.


62) Можем ли мы вызвать нестатический метод изнутри статического метода?

Нестатические методы принадлежат объектам класса и имеют область действия на уровне объекта, и для вызова нестатических методов из статического блока (например, из статического основного метода) сначала необходимо создать объект класса. Затем, используя ссылку на объект, эти методы можно вызвать.


63) Какие две переменные среды необходимо установить для запуска любых программ Java?

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

  1. Переменная PATH
  2. ПУТЬ К КЛАССУ переменная

64) Можно ли использовать переменные в Java без инициализации?

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


65) Может ли класс в Java быть унаследован более чем от одного класса?

В Java класс может быть производным только от одного класса, а не от нескольких классов. Множественное наследование не поддерживается Java.


66) Может ли конструктор иметь имя, отличное от имени класса в Java?

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


67) Каков будет результат работы Round(3.7) и Ceil(3.7)?

Round(3.7) возвращает 4, а Ceil(3.7) возвращает 4.


68) Можем ли мы использовать goto в Java для перехода к определенной строке?

В Java нет ключевого слова goto, и Java не поддерживает эту функцию перехода к определенной помеченной строке.


69) Можно ли запустить мертвую тему снова?

В Java поток, находящийся в мертвом состоянии, не может быть запущен снова. Невозможно перезапустить мертвый поток.


70) Это следованиеwing объявление класса правильное?

public abstract final class testClass {
	// Class methods and variables
}

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


71) Требуется ли JDK на каждом компьютере для запуска программы Java?

JDK — это комплект разработки Java, который требуется только для разработки, а для запуска программы Java на компьютере JDK не требуется. Требуется только JRE.


72) В чем разница между сравнением, выполняемым методом равенства и оператором ==?

В Java метод Equals() используется для сравнения содержимого двух строковых объектов и возвращает true, если они имеют одинаковое значение, а оператор == compares ссылки двух строковых объектов.

В следующемwing Например, функцияquals() возвращает true, поскольку два строковых объекта имеют одинаковые значения. Однако оператор == возвращает false, поскольку оба строковых объекта ссылаются на разные объекты:

public class equalsTest {

    public static void main(String args[]) {

        String str1 = new String("Hello World");

        String str2 = new String("Hello World");

        if (str1.equals(str2))

        { // this condition is true

            System.out.println("str1 and str2 are equal in terms of values");

        }

        if (str1 == str2) {

            //This condition is true

            System.out.println("Both strings are referencing same object");

        } else

        {

            // This condition is NOT true

            System.out.println("Both strings are referencing different objects");

        }

    }

}

73) Можно ли определить метод в классе Java, но предоставить его реализацию в коде другого языка, например C?

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


74) Как в Java определяются деструкторы?

В Java в классе не определены деструкторы, поскольку в этом нет необходимости. В Java есть собственный механизм сбора мусора, который выполняет работу автоматически, уничтожая объекты, на которые больше нет ссылок.


Вопросы и ответы на собеседовании по Java для людей с опытом работы более 5 лет

75) Может ли переменная быть локальной и статической одновременно?

Нет, переменная не может быть одновременно статической и локальной. Определение локальной переменной как статической приводит к ошибке компиляции.


76) Можем ли мы использовать статические методы в интерфейсе?

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


77) Можем ли мы изменить значение любой переменной, определенной в интерфейсе, в классе, реализующем интерфейс?

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


78) Правильно ли сказать, что благодаря функции сборки мусора в Java Java-программа никогда не выходит из памяти?

Несмотря на то, что Java обеспечивает автоматическую сборку мусора, это не гарантирует, что Java-программа не выйдет за пределы памяти, поскольку существует вероятность того, что создание объектов Java выполняется более быстрыми темпами по сравнению со сборкой мусора, что приводит к заполнению памяти. все доступные ресурсы памяти.

Таким образом, сбор мусора помогает снизить вероятность выхода программы из памяти, но не гарантирует этого.


79) Можем ли мы иметь какой-либо другой тип возвращаемого значения, кроме void для основного метода?

Нет, основной метод класса Java может иметь только тип возврата void для успешного выполнения программы.

Тем не менее, если вам абсолютно необходимо вернуть значение по завершении основного метода, вы можете использовать System.exit(int status)


80) Я хочу снова получить доступ к объекту и использовать его после того, как он был собран. Как это возможно?

Как только объект был уничтожен сборщиком мусора, он больше не существует в куче, и к нему невозможно снова получить доступ. Нет возможности сослаться на него еще раз.


81) Какой метод в Java-программировании потоков является обязательным для всех потоков?

Run() — это метод интерфейса Runnable, который должен быть реализован всеми потоками.


82) Я хочу контролировать соединения с базой данных в своей программе и хочу, чтобы только один поток мог одновременно подключаться к базе данных. Как я могу реализовать эту логику?

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


83) Как программист может вручную вызвать исключение?

Чтобы вручную вызвать исключение в блоке кода, бросать используется ключевое слово. Затем это исключение перехватывается и обрабатывается в блоке catch.

public void topMethod() {
    try {
        excMethod();
    } catch (ManualException e) {}
}

public void excMethod {
    String name = null;
    if (name == null) {
        throw (new ManualException("Exception thrown manually ");
        }
    }

84) Я хочу, чтобы мой класс был разработан таким образом, чтобы ни один другой класс (даже производный класс) не мог создавать его объекты. Как я могу это сделать?

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


85) Как в Java хранятся объекты?

В Java каждый объект при создании получает пространство памяти из кучи. Когда объект уничтожается сборщиком мусора, пространство, выделенное для него из кучи, перераспределяется в кучу и становится доступным для любых новых объектов.


86) Как узнать реальный размер объекта в куче?

В Java нет возможности узнать точный размер объекта в куче.


87) Какой из следующихwing классам будет выделено больше памяти?

Класс A: три метода, четыре переменные, без объекта.

Класс B: пять методов, три переменные, ни одного объекта.

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


88) Что произойдет, если исключение не будет обработано в программе?

Если исключение не обрабатывается в программе с использованием блоков try catch, программа прерывается, и после оператора, вызвавшего исключение, не выполняется ни один оператор.wing.


89) У меня в классе определено несколько конструкторов. Можно ли вызвать конструктор из тела другого конструктора?

Если класс имеет несколько конструкторов, можно вызвать один конструктор из тела другого, используя это().


90) Что подразумевается под анонимным классом?

Анонимный класс — это класс, определенный без имени в одной строке кода с использованием ключевого слова new.

Например, в приведенном ниже коде мы определили анонимный класс в одной строке кода:

public java.util.Enumeration testMethod()

{

    return new java.util.Enumeration()

    {

        @Override

        public boolean hasMoreElements()

        {

            // TODO Auto-generated method stub

            return false;

        }

        @Override

        public Object nextElement()

        {

            // TODO Auto-generated method stub

            return null;

        }

    }

91) Есть ли способ увеличить размер массива после его объявления?

Массивы статичны, и как только мы указали их размер, мы не можем его изменить. Если мы хотим использовать такие коллекции, где нам может потребоваться изменение размера (количества элементов), мы должны предпочесть вектор массиву.


92) Если в приложении есть несколько классов, можно ли иметь основной метод более чем в одном классе?

Если в Java-приложении есть метод main более чем в одном классе, это не вызовет никаких проблем, поскольку точкой входа для любого приложения будет определенный класс, а код начнется только с основного метода этого конкретного класса.


93) Я хочу сохранить данные объектов для дальнейшего использования. Какой лучший подход для этого?

Лучший способ сохранить данные для использования в будущем — использовать концепцию сериализации.


94) Что такое локальный класс в Java?

В Java, если мы определяем новый класс внутри определенного блока, он называется локальным классом. Такой класс имеет локальную область действия и не может использоваться за пределами блока, в котором он определен.


95) String и StringBuffer представляют объекты String. Можем ли мы сравнить String и StringBuffer в Java?

Хотя String и StringBuffer оба представляют объекты String, мы не можем сравнивать их друг с другом, и если мы попытаемся их сравнить, мы получим ошибку.


96) Какой API предоставляет Java для операций над множеством объектов?

Java предоставляет API-интерфейс Collection, который предоставляет множество полезных методов, которые можно применять к набору объектов. Некоторые из важных классов, предоставляемых Collection API, включают ArrayList, HashMap, TreeSet и TreeMap.


97) Можем ли мы привести любой другой тип к логическому типу с помощью приведения типов?

Нет, мы не можем ни привести какой-либо другой примитивный тип к логическому типу данных, ни привести логический тип данных к любому другому примитивному типу данных.


98) Можем ли мы использовать разные типы возвращаемых значений для переопределенных методов?

Основное требование переопределения метода в Java заключается в том, что переопределенный метод должен иметь то же имя и параметры. Но метод может быть переопределен с другим типом возвращаемого значения, если новый тип возвращаемого значения расширяет исходный.

Например, метод возвращает ссылочный тип.

Class B extends A {

    A method(int x) {

        //original method

    }

    B method(int x) {

        //overridden method

    }

}

99) Каков базовый класс всех классов исключений?

В Java Java.lang.Throwable является суперклассом всех классов исключений, и все классы исключений являются производными от этого базового класса.


100) Каков порядок вызова конструкторов при наследовании?

В случае наследования при создании нового объекта производного класса сначала вызывается конструктор суперкласса, а затем конструктор производного класса.

Подготовьтесь к собеседованию!!! Проходить через Учебник по Java чтобы быть лучше подготовленным.

Этот подробный тест по Java Mock Test поможет вам развеять сомнения по поводу вопросов на собеседовании по Java, а также поможет вам успешно пройти собеседование.

Эти Java и Вопросы для собеседования по Java 8 также поможет в вашей вива (оральной части)