1. Что такое Java Development Kit (JDK)?
JDK — это комплект для разработки программного обеспечения, который включает инструменты и библиотеки, необходимые для разработки приложений Java.2. Что делает Java Runtime Environment (JRE)?
JRE относится к среде выполнения (Runtime Environment), в которой выполняется байт-код Java. JRE поддерживает файлы и библиотеки для среды выполнения.3. Что делает виртуальная машина Java (JVM)?
JVM — это абстрактная машина, которая предоставляет среду выполнения, в которой может выполняться байт-код Java.4. Java не зависит от платформы. Почему?
На любом другом языке программирования исходный код компилируется в исполняемый код, и этот код не может быть запущен на всех платформах. Используя JVM, мы можем сделать байт-код понятным для любой платформы, и этот байт-код не зависит от платформы. Хотя JVM различается для каждой платформы, Java не зависит от платформы, поскольку не имеет зависимости от какого-либо типа платформы.5. Java не на 100% объектно-ориентирована. Почему?
Потому что Java использует восемь примитивных типов данных, таких как boolean, byte, char, int, float, double, long, short, которые не являются объектами.6. Что такое конструкторы в Java?
Конструктор — это блок кода, используемый для инициализации объектов. Синтаксис:
class DemoClass
{
// constructor name is same as class name
DemoClass()
{
....
}
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
Пример:
public class ConstructorDemo
{
int a; // class attribute
// create constructor for class ConstructorDemo
ConstructorDemo()
{
a = 26; // initial value for class attribute 'a'
}
public static void main(String[] args)
{
// creating object for ConstructorDemo class
// here we're calling constructor ConstructorDemo()
ConstructorDemo obj = new ConstructorDemo();
System.out.println(obj.a);
}
}
Результат:
7. Что делает одноэлементный класс?
В одноэлементных классах может быть только один объект (экземпляр класса) одновременно. После того, как объект создан, и мы пытаемся создать экземпляр класса singleton, новая переменная также указывает на первый созданный объект.8. Что такое классы-обертки (wrapper classes) в Java?
Классы-обертки позволяют примитивным типам данных преобразовывать в объект и наоборот. Пример:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class
9. В чем разница между оператором == и методом равенства в Java?
В общем случае == — это оператор, а equals() — это метод. Мы используем оператор == для эталонного сравнения объектов в куче. В Java нет концепции перегрузки операторов. Несмотря на это, оператор == используется для проверки того, что адрес двух объектов совпадает или нет. То есть оператор == проверяет, указывают ли оба объекта на одно и то же место в памяти или нет. Также оператор == используется для сравнения типов объектов и примитивных типов, таких как логическое значение. В то время как метод equals() класса String сравнивает содержимое двух объектов.10. Каковы концепции ООП в Java?
- Абстракция определяется как скрытие внутренней реализации и отображение только необходимой информации.
- Наследование — это процедура преобразования всех свойств и поведения родительского класса (суперкласса) в дочерний класс (подкласс).
- Инкапсуляция — это процедура связывания данных или переменных и методов вместе.
- Полиморфизм буквально означает множество форм. Полиморфизм — это способность метода выполнять различные задачи. Этого можно добиться с помощью методов.
11. Почему метод main() в Java всегда статичен?
Потому что вызывать статический метод объекта не требуется. Если main() должен был быть нестатическим методом, виртуальная машина Java должна сначала создать свой объект, а затем вызвать метод main(), который приведет к выделению дополнительной памяти.12. Почему в Java строки неизменяемы?
Строки в Java неизменяемы, потому что объекты String кэшируются в пуле строковых констант (string constant pool).13. Что такое массивы и ArrayList в Java?
Массив — это объект, который содержит фиксированное количество элементов аналогичного типа.ArrayList является частью структуры коллекции.
ArrayList реализует интерфейс списка.
ArrayList — это масштабируемый массив, который динамически увеличивается при добавлении элементов и уменьшается при удалении элементов.
Для частой операции извлечения лучше всего подходит Java ArrayList. Потому что элементы ArrayList хранятся в последовательных ячейках памяти.
ArrayList не может содержать примитивные типы данных, такие как int, double, char и long.
ArrayList может содержать объекты класса String и оболочки (Double, Integer).
ArrayList позволяет дублировать элементы.
ArrayList сохраняет порядок вставки.
ArrayList широко используется благодаря своей функциональности и гибкости. Он предназначен для хранения разнородных коллекций объектов.
ArrayList может иметь любое количество нулевых значений.
14. В чем разница между HashSet и HashMap в Java?
В HashSet:Мы можем хранить объекты в HashSet. Например, HashSet: {«Hello», «World»}.
Порядок вставки не сохраняется. Он основан на хэш-коде.
Имеет метод add().
Реализует интерфейс Set.
Не допускает дублирования элементов.
Допускает одиночное нулевое значение.
В HashMap мы можем хранить пары ключ и значение. Например, {1 -> “Hello”, 2 -> “World”}.
Не поддерживает порядок вставки. Он основан на функции хеширования.
Имеет метод put().
Реализует интерфейс карты.
Допускает повторяющиеся значения. Не допускает дублирования ключей.
Допускает одиночный нулевой ключ и любое количество нулевых значений.
16. В чем разница между this и super в Java?
Ключевое слово this в Java:this — это ключевое слово, которое является ссылочной переменной, которая ссылается на текущий объект.
Может использоваться для неявного вызова текущего метода класса.
Ключевое слово this(), используемое для вызова конструктора текущего класса.
This можно использовать для передачи в качестве аргумента при вызове метода.
Ключевое слово super — это ссылочная переменная, которая используется для ссылки на непосредственный объект родительского класса.
super может использоваться для непосредственного вызова метода родительского класса, конструктора родительского класса и для доступа к методам базового класса.
17. Что такое оператор break и continue в Java?
Если оператор break встречается в цикле, этот цикл завершится, и управление перейдет к следующему оператору того же цикла. Пример:
public class Example
{
public static void main(String[] args)
{
for(int a = 1; a <= 10; a++)
{
if(a == 3)
{
// breaking loop
break;
}
System.out.println(a);
}
}
}
Результат:
public class Example
{
public static void main(String[] args)
{
for(int a = 1; a <= 10; a++)
{
if(a % 2 != 0)
{
continue;
}
System.out.println(a + " ");
}
}
}
Результат:
18. Что такое модификаторы доступа в Java?
Модификаторы доступа определяют предел или область действия переменной, конструктора, класса или метода. В Java есть четыре типа модификаторов доступа:- Модификатор частного доступа.
- Модификатор защищенного доступа.
- Модификатор общего доступа.
- Модификатор доступа по умолчанию.
19. В чем разница между циклами for и for each в Java?
Цикл for:- Не имеет исполняемой последовательности. В цикле for мы можем изменить счетчик по своему желанию.
- Появился в самом начале, в JDK 1.
- Нет необходимости реализовывать интерфейс.
- Может иметь доступ к index. Следовательно, можно заменить элемент в массиве.
- Счетчик может увеличиваться и уменьшаться.
- Выполняется последовательно. Счетчик увеличивается на единицу.
- Впервые появился в JDK 5.
- Чтобы перебирать контейнеры, используя для каждого цикла, контейнер должен реализовывать интерфейс Iterable.
- Невозможно заменить элемент по данному индексу, так как нет доступа к индексу массива.
- Может выполнять итерацию только в возрастающем порядке, не может уменьшаться.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
public static void main(String[] args)
{
List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
// iterate over List using for loop
System.out.println("using for loop: ");
for(int a = 0; a < players.size(); a++)
{
System.out.println(players.get(a));
}
// iterate over List using enhanced for loop
System.out.println("using for each loop: ");
for(String str : players)
{
System.out.println(str);
}
}
}
Результат для циклов for и for each:
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ