Java Flashcards

1
Q

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

A

Вне метода, в рамках класса. static и final.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Как вычислить квадратный корень из числа?

A

double х = 4;
double у= Math.sqrt(x);
System.out.println(y);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Как возвести в степень?

A

double у= Math.pow(x,a); //второе число - степень.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Как округлить число с плавающей точкой до ближайшего целого числа? Почему необходимо приведение?

A

double х = 9.997;
int nx = (int)Math.round(x);
Значение, возвращаемое методом round (), относится к типу long и поэтому может
быть присвоено переменной типа int только с явным приведением.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Дано: String s = “Hello”;

Как сделать из нее “Hell”

A

String s1 = s.substring (0,4);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Как создать строку из строк, разделенную определенным знаком? Например, “/”?

A

String all = String.join(“ / “, “S”, “М”, “L”, “XL”);

//в итоге переменная all содержит строку “S / М / L / XL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как проверить идентичность строк, игнорируя регистр?

A

“Hello”.equalsignoreCase(“hello”);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Как определить символ в строке по номеру символа?

A

String greeting = “Hello”;
char first = greeting.charAt(0);

//первый символ - ‘Н’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Какой метод возвращает true, если строка начинается или заканчивается указанной в нем подстрокой?

A
• String Str = new String("Добро пожаловать на ProgLang.su");
System.out.println(Str.startsWith("Добро пожаловать") );

Возвращаемое значение: true

• boolean endsWith(Strinq suffix);

//в скобках то, с чего начинается/заканчивается.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Как найти индекс определенного фрагмента строки str в другой строке? Что вернет метод, если ничего не найдет?

A

String hello = “Hello”;

int index1 = hello.indexOf(‘H’);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Где находится класс String и все его методы?

A

java.lang.String

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Как “вырезать” кусок строки с определенного места? С определенного места до определенного места?

A

String Str = new String(“Добро пожаловать на ProgLang.su”);

System.out.println(Str.substring(5));

tem.out.println(Str.substring(5, 15));

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Как поменять все буквы строки на маленькие/большие?

A

toLowerCase ();

toUpperCase ();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Как вернуть исходную строку n раз?

A

String repeat (int count);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Есть необходимость поэтапно добавлять в объект строки, после перевести его в String. Как это сделать?

A

StringBuilder builder = new StringBuilder(); //создать
builder.append(ch); // добавить единственный символ
builder.append(str); //добавить символьную строку
String completedString = builder.toString(); //перевести в строку

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Как добавить строку в StringBuilder?

A

StringВuilder append (String str) ;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Как вставить в StringBuilder строку на определенное место? Сколько параметров?

A

StringBuilder insert (int n, String str) ;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Как создать объект для считывания информации?

A

Scanner in = new Scanner(System.in);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Как считать строку и помесить ее в переменную класса Scanner?

A
Scanner in = new Scanner(System.in); 
String name = in.nextLine();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Когда два объекта StringBuilder будут выдавать true, equals ?

A

Только тогда, когда они ссылаются на один объект.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Что можно использовать для создания String?

A

Массив типа char

char [] arr = new char [] {'p','r','i', 'v', 'e', 't'} ;
String s = new String(arr);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Как написать метод, получающий сколько угодно параметров int и печатающий их сумму?

Чем по сути является эта переменная?

A
public static void sum(int ... a) {
int summa = 0;
for (int i = 0; i < a.length; i++) {
summa+=i;
Sout(summa);
}
}

это обычный массив.

только один.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Сколько varargs переменных может быть в параметре?

Где должен стоять vararhs параметр?

A

Один.

В конце листа параметров.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Что нельзя ставить в список перезаписанных методов вместе с varargs и почему?

A

в параметре не может быть массив, потому что varargs переменная и есть массив .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Что можно вписать вместо varargs переменной? При желании.

A

Обычный массив.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Какие два способа удалить элемент из ArrayList?

A

remove();

по индексу и по значению.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Мы clone() клонировали ArrayList или задали в конструкторе new ArrayList <> (list3); какой-то другой ArrayList. На что будут ссылаться новосозданные ArrayList?

A

Будут новые ссылки на уже существующие объекты. И оригинал и клон содержат ссылки на одно и тоже.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Как создать массив StringBuilder из ArrayList? Массив Object?

A

StringBuilder [] arraySB = list.toArray(new
StringBuilder[10]);

где list - наш ArrayList, 10 - размер нового обычного массива.

тот же метод без параметров.

(!!!) Ново созданный массив ссылается на те же объекты, что и ArrayList.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Как перевести массив в список List?

Что уже никогда не изменится в этом List?

A

List list = Arrays.asList(массив);

Длина.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

На что указывают ссылки новосозданного массива методом toArray()?

A

На объекты изначального List.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Как создать из массива список?

A

StringBuilder [] array = { sb1, sb2, sb2 };

List list = Arrays.asList(array);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Как отсортировать ArrayList?

A

Collections.sort(arrayList);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Как использовать метод equals() на ArrayList?

Каким образом перезаписан equals для ArrayList?

A

arraylist1.equals(arraylist2);

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Где лежит Iterator?

A

java.util.Iterator;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Как создать Iterator?

A

Iterator it = list1.iterator();

где list1 - наш ArrayList, в <> тип ArrayList

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Как пройтись по коллекции с помощью итератора и вывести на экран элементы?

A

Iterator it = list1.iterator();

while(it.hasNext()) {
System.out.println(it.next());
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Как удалить элемент с помощью итератора?

A

Iterator it = list1.iterator();

while(it.hasNext()) {
it.next();
it.remove();
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Как сравнить два массива лексикографически?

Что возвращает метод?

A

System.out.println(Arrays.compare(array1, array2);

-1, если элементы первого массива “выше лексиграфически = выше в словаре” второго,
+1, если “ниже”
0, если равны

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Как, сравнивая два массива, узнать место, где их значения становятся разными?

Что возвращает метод?

A

System.out.println(Arrays.mismatch(array1, array2);

если одинаковые -1;
иначе индекс расхождения.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Какой метод позволит удалить из ArrayList все элементы, содержащие элементы другого ArrayList?

A

arraylist1.removeAll(arraylist2);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Как оставить в ArrayList только те элементы, которые есть в другом ArrayList? Какому методу противоположен этот метод?

A

arraylist1.retainAll(arraylist2);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Как вырезать кусок ArrayList?
Какой тип будет куска?
Что будет с исходным ArrayList, если в его subList добавить элемент?

A

List list = arraylist1.subList(1,3);

List.

Элемент добавится и в него.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Как создать и заполнить List без использования метода add();

Как копировать коллекцию, сделав ее неизменяемой?

Какое свойство созданных List?

A

List list = List.of(“один”, “два”, “три”);

List list2 = List.copyOf(list);

неизменяемый.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Как передать переменной s i-тый элемент массива String?

A

String s = new String [] {“A”, “B”,”C”} [i];

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Какой возвращаемый тип у геттера и что в параметрах?

A

Тип переменной, в параметрах ничего.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Какой возвращаемый тип у сеттера и что в параметрах?

A

Тип void, принимают изменяемое значение.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Как сделать так, чтобы геттер не позволял изменять свою переменную? Например, геттер типа StringBuilder?

A

В геттере нужно создать новую переменную и приравнять ее к старой. Возвращать нужно копию.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

В классе есть несколько overloaded конструкторов, как вызвать один из другого?

A

this()

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Какое необходимое условие должен соблюдать класс, чтобы быть унаследованным?

A

быть public

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Что такое overriding метода?

Каким должен быть метод?

A

Это изменение non-static, non-final метода, который он унаследовал от родительского класса.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Что должно соблюдаться при overrinding метода?

A

Такое же имя, список параметров и return type ( или это subclass нашего return type)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

Что такое binding?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q

Какие методы не могут быть перезаписаны? и, соответственно, какой binding?

A

private, static, final

compile time binding

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

Когда вызывается метод, основанный на реально созданном объекте? Какой binding?

A

Когда метод НЕ private, static, final.

Runtime = dynamic

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
55
Q

Когда вызывается метод, основываясь на типе ссылочной переменной?

Какой binding.

A

Когда метод private, static, final.

Compile time = static

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
56
Q

Если в параметрах метода ссылочная переменная, то какой метод вызовется и какой будет binding?

A

Вызовется тот метод, который определяется ТИПОМ этой переменнной.

Compile time;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
57
Q

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

A

Функциональный интерфейс, с одним лишь методом, который надо перезаписать.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
58
Q

По сути, чем является лямбда выражение и что позволяет лямбда выражение?

A

Можно думать о лямбда как об анонимных методах.

Позволяют нам внутрь параметр листа метода записывать метод.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
59
Q

Чтобы использовать лябмда мы должны?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
60
Q

В чем разница методов next() и nextLine() в классе Scanner?

A

ййй

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
61
Q

Какой метод служит для считывания числа? Числа с точкой?

A

System.out.print(“How old are you? “);
int age = sc.nextInt();
double age1 = sc.nextDouble () ;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
62
Q

Где находится класс Scanner?

A

import java.util.*;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
63
Q

Как проверить, есть ли следующее слово в потоке?

Что возвращает метод?

A

while (sc.hasNext()) {
System.out.println(scan.next());
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
64
Q

Как проверить, есть ли следующее число в потоке?

A
  • boolean hasNextInt()

* boolean hasNextDouble ()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
65
Q

Как вывести число, с дробной частью в двух знаках?

A

System.out.printf(“%.2f”, х);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
66
Q

Как определить ширину поля в семь символов?

Как сделать отступ справа или слева?

A

System.out.printf(“%8.2f”, х);

добавить минус перед 8;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
67
Q

При считывании информации с файла, что мы должны сделать в первую очередь?

A

Создать объект класса File c указанием пути к файлу:

File file = new File (“C:\Users\Admin\Desktop\myfile.txt”);

Создать объект класса Scanner и задать в параметры наш файл.

Scanner sc = new Scanner(file);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
68
Q

Как вывести на экран все строки нашего файла?

A
File file = new File ("C:\\Users\\Admin\\Desktop\\myfile.txt");
        Scanner sc = new Scanner(file);
        while(sc.hasNextLine()) {
            System.out.println(sc.nextLine());
        }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
69
Q

Что нужно делать в конце работы Scanner?

A

sc.close();

чтобы освобождать ресурсы

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
70
Q

Как разделить строку на несколько по определенному “разделителю”?

Что возвращает метод?

A

String Str = new String(“Разделяем эту строку на слова”);

for (String retval : Str.split(“ “)) {
System.out.println(retval);
}

Массив строк.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
71
Q

Какой метод принимает на вход строку и возвращает число?

A

int x =Integer.parseInt(“9”);

double c = Double.parseDouble(“5”);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
72
Q

Как объявить массив?

A

int [] а;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
73
Q

Напиши простой способ объявления и инициализации массива.

A

int [] smallPrimes = { 2, 3, 5, 7, 11, 13 };

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
74
Q

Как заполнить массив числами от 0 до 99 в цикле?

A

int [] а= new int[100];
for (int i = 0; i < 100; i++)
a[i] = i;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
75
Q

Чем инициализируются все элементы массива при его создании?

A

Нулями.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
76
Q

Как определить количество элементов в массиве? На что обратить внимание?

A

имя_массива.length.

без скобок, это не метод.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
77
Q

Как перебрать массив с помощью for each? Пример.

A

for (переменная : коллекция) что делаем.

пример:
for (iпt elemeпt : а)
System.out.printlп(elemeпt);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
78
Q

Как вывести все значения массива с помощью одного метода?

A

System.out.println(Arrays.toString(array));

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
79
Q

Как создать два массива, чтобы изменяя значение одного элемента массива мы изменяли значение элемента второго массива на той же позиции?

A

int [] array1 = {1,2,3};

int [] array2 = array1;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
80
Q

Как копировать один массив в другой? Что указывается вторым параметром метода?

A

int [] copy = Arrays.copyOf ( array1, array1.length);

длина массива.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
81
Q

Как отсортировать массив?

A

Arrays.sort(array);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
82
Q

Как копировать массив в массив с определенного элемента по определенный элемент?

A

Arrays.copyOf (array[] а, int start, int end);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
83
Q

Как получить индекс элемента в массиве по его значению?

A

Arrays.binarySearch(array1, 2);

где array1 - массив, 2 - значение, индекс которого мы ищем.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
84
Q

Как быстро заполнить массив одним элементом?

Заполнить десятиместный массив шестерками?

A

int [] array = new int [10];

Arrays.fill(array, 6);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
85
Q

Что такое method hiding?

A

Это перекрытие static методов из родительского класса в дочернем.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
86
Q

Какие требования для method hiding?

A
  1. Имя такое же
  2. Список аргументов такой же
  3. Return type такой же или дочерний класс return типа родительского класса.
  4. Access модификатор такой же или менее строгий.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
87
Q

Что можно делать override?

A

Все методы НЕ static, НЕ final, НЕ private

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
88
Q

Что можно сделать hide?

A
  1. static методы

2. non-private переменные.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
89
Q

Какие методы не могут быть ни override, ни hide?

A

final методы.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
90
Q

т.е. если мы хотим сделать так, чтобы метод не перезаписывался ни в одном из дочерних классов, что надо сделать?

A

добавить final.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
91
Q

Как создать объект абстрактного класса?

Может ли абстрактный класс быть final?

A

Никак.

Нет, абстракт подразумевает перезапись, а final - что потомков не будет. Не может.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
92
Q

Что может быть abstract?

A

Классы или методы.

Переменные нет.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
93
Q

Какие три сочетания abstract c модификаторами недопустимы?

A

final + abstract
private + abstract
static + abstract

94
Q

java7. Какие методы может содержать интерфейс?

Что нужно обязательно указать при перезаписи абстр. метода интерфейса в классе?

A

Только абстрактные и только public.

Что он public.

95
Q

Как создать интерфейс?

A
interface Help_able { 
//тело.
}
96
Q

Какой порядок extends implements?

A

Сначала extends, потом implements

97
Q

Какие переменные может содержать интерфейс? Какие модификаторы у них есть по умолчанию?

A

Только константы.

public, final, static

98
Q

Возможно ли создать объект интерфейса?

A

Нет, это не класс.

99
Q

Как работает правило с одним public?

A

В классе должен быть только один класс или интерфейс с модификатором public. Название файла должно повторять название класса.

100
Q

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

A

Нужно написать класс перед именем объекта и взять в скобки всё.

101
Q

Что может наследовать интерфейс кроме класса?

A

Другой интерфейс.

102
Q

Как сделать метод, имеющий тело, в интерфейсе?

A

Добавить default.

103
Q

Какие модификаторы не может иметь default метод в интерфейсе?

A

static, final, abstract.

104
Q

Java8. Какое отличие static методов в интерфейсе и в классе?

A

В интерфейсе можно вызвать static метод только по имени интерфейса.

105
Q

Что обязан иметь static метод в интерфейсе?

A

Тело.

106
Q

Java9. Какой модификатор стал доступен для методов интерфейса с Java9?

Где используется?

A

Private методы.

Только внутри интерфейса.

107
Q

Что такое полиморфизм?

A

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

108
Q

Как проверить, является ли объект объектом определенного класса? Есть ли связь is-a?

Можно ли проверять не только на классы?

A

System.out.println(emp1 instanceof Employee);

Да, можно проверять, имплементирует объект интерфейс.
System.out.println(emp1 instanceof Help_able);

109
Q

Когда возможет кастинг reference переменных? Что нужно не забыть?

Какой это кастинг?

A

Только когда между ними есть связь is-a. Скобки нужно не забыть.

Восходящий. Мы кастим объект child класса в объект parent класса.

110
Q

Какое условие для сравнения двух объектов с помощью == ?

A

Должны иметь is-a связь, иначе компилятор не пропустит даже написать.

111
Q

Дан массив Employee, наполненный Driver, Teacher, Doctor и тд. Как работать только с Driver?

A
Employee [] array = {dr1,tc1,dc1};
for (Employee e: array) {
    if (e instanceof Driver) {
    //код
    }
112
Q

Три условия, когда происходит narrowing без кастинга у примитивов?

A
  1. int кастим в byte, short, char.
  2. int это константа (= не ссылка)
  3. если int помещается в соответствующий тип данных.
113
Q

Как получить true, имея два идентичных массива?

A

Arrays.equals(array1, array2);

114
Q

Какие non-access модификаторы существуют?

A

final, static, abstract.

115
Q

К чему может относиться final?

A

Переменная, метод, класс.

116
Q

Что сделает с переменной final?

A

Сделает ее неизменяемой = константой.

117
Q

Когда нужно инициализировать final переменные?

A

Сразу же или в каждом конструкторе.

118
Q

Как создать конструктор?

A

Имя_Kласса () {}

119
Q

Что означает final для ссылочной переменной? Что может изменяться?

A

Что ее адрес не может быть изменен.

Переменные самого объекта.

120
Q

Есть объект типа Human, у него есть машина типа Car, у Car есть переменная Color. Как изменить цвет машины человека?

A

h.c.color = “blue”;

h - объект типа Human, c - объект типа Car.

121
Q

Если нужно сделать счетчик созданных объектов, где логично инкрементировать его? Каким должен быть счетчик?

A

В конструкторе. Статическим.

122
Q

Что может быть static? Какое основное свойство?

A

переменные и методы. Принадлежат целому классу.

123
Q
  1. Использовать СТАТИЧНУЮ переменную в НЕ СТАТИЧНОМ методе?
  2. Использовать СТАТИЧНУЮ переменную в СТАТИЧНОМ методе?
  3. Использовать НЕ СТАТИЧНУЮ переменную в СТАТИЧНОМ методе?
  4. Использовать НЕ СТАТИЧНЫЙ метод в СТАТИЧНОМ методе?
A
  1. Да. Она и так существует.
  2. Да. Они существуют независимо друг от друга.
  3. Нет. Для нее нужно создание объекта, статичному методу не нужно.
  4. Нет. Только при условии, что был создан объект и он ссылается на него.
124
Q

Как изменить нестатическую переменную в статическом методе?

A

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

125
Q

Что напрямую не могут вызывать статичные переменные и методы? Как могут не на прямую?

A

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

126
Q

final переменные нужно объявить или сразу, или в конструкторе. Что будет, если добавить static?

A

только сразу. В конструкторе уже нельзя, static не обязывает нас создать объект.

127
Q

Какие четыре группы переменных существуют? Коротко описать каждую.

A
  1. Local variable - переменная внутри метода.
  2. Parameter - переменная внутри метода + параметры.
  3. Instance = переменная объекта.
  4. Static - принадлежит всему классу.
128
Q

Когда нельзя использовать this. ?

A

При обращении к переменным и методам внутри static метода.

129
Q

На что указывает this?*

A

На то, что мы обращаемся к переменной уже созданного (!) объекта.

130
Q

Когда мы подставляем reference тип данных внутрь параметра, что на самом деле передается в параметр?

A

Его копия, ссылающаяся на этот же объект.

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

131
Q

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

A

Можем поменять местами все его переменные, но сами объекты останутся на своих местах.

132
Q

Как в цикле for задать условие, чтобы i было одновременно больше 10 и меньше 20?

A

for (int i = 1; i >10 && i < 20; i++) {}

133
Q

Что необычное может быть в цикле for, где мы обычно пишем i++?

(место называется update)

A

Туда можно вставить вызов метода.

134
Q

Как в цикле for задать несколько ubdate? Где можно записать update statement?

A

Через запятую.

В теле цикла, ничего не изменится.

135
Q

Какое значение принимает condition statement цикла for ( ; cond.stat; ) {}

A

boolean.

любое булево значение.

136
Q

Какие границы у операторов break и continue?

A

Фигурные скобки любого цикла.

137
Q

Какая разница между continue и break?

A

break; заканчивает целиком цикл.

continue; одну его итерацию, дальше цикл бежит дальше.

138
Q

Как работает НЕ перезаписанный метод equals() ?

Он работает точно также, как что?

A

Когда переменные ссылаются на один и тот же объект.

==

139
Q

Как метод equals() выглядит в классе Object?

A

public boolean equals(Object obj) {
return (this==obj)
}

140
Q

Класс Person c двумя полями, как перезаписать метод equals, чтобы было true, когда name и surname одинаковы?

A
public boolean equals(Object o) {
    if (o instanceof Person2) {
        if (((Person2) o).surname==this.surname &amp;&amp; ((Person2) o).name==this.name ) return true;
    }
    return false;
141
Q

Какая одна из самых частых ошибок при перезаписи equals()?

A

public boolean equals(Object o) {}

В параметрах должен быть Object o и ничего другого. Иначе метод перегруженный, а не перезаписанный.

142
Q

Можно ли вызвать какой-либо метод на null?

A

Нет.

143
Q

Какая сигнатура у метода toString() ?

A

public String toString(){

}

144
Q

Как перевести String в int?

Как это работает с Boolean?

A

int i = Integer.parseInt(“50”);

Boolean b = Boolean.parseBoolean(“true”); // всё, что не “true” будет false.

145
Q

Что делает метод valueof()?

A

Создает новый объект wrapper класса, на котором был вызван данный метод.

146
Q

Пример valueof() c double.

A

Double d = Double.valueof(3.14)

147
Q

Как называется блок кода вне метода?

A

Инициализатор.

148
Q

Какая разница между статическим и нестатическим инициализатором?

A

Статический срабатывает один раз, нестатический - каждый раз, когда создается новый объект.

149
Q

Как создать инициализатор?

A

Написать код в классе, но вне метода в { }

150
Q

Что сработает раньше, нестатический инициализатор или конструктор?

A

Сначала инициализатор, после конструктор.

151
Q

Как создать статический инициализатор?

A

В классе, вне метода

static { }

152
Q

Где еще можно задать значение static final переменной, кроме как сразу же?

A

В статическом инициализаторе.

153
Q

class Животное {
int количествоБлох = 0;
static int Количество лап = 0;
void чесаться () {Sout(“Животное чешется”);
static void бегать() {Sout(“Животное бегает”)
}
}
class Собака extends Животное {
int количествоБлох = 5;
static int Количество лап = 4;
void чесаться () {Sout(“Собака чешется”);
static void бегать() {Sout(“Собака бегает”)
}
}

Животное ж = new Собака();
     Sout(ж.количествоБлох);
     Sout(ж.количествоЛап);
     ж.чесаться();
     ж.бегать();

Что выведется на экран?

ПОЧЕМУ?

A

0
0

переменные -compile time - значит по типу переменной, тип Животное, значит 0, 0.

non-static метод определяется runtime - значит на основе реально созданного объекта, значит из класса Собака.

static метод - compile time - значит снова по типу переменной - значит из Животного.

154
Q

Как работает блок try { } при ловле исключений?

A

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

155
Q

Что мы вписываем в параметры catch() ?

A

catch(тип_исключения имя_исключения) { }

156
Q

Блоки try, catch, finally. Сколько может быть каких?

A

Один try, много catch, один finally.

157
Q

Какая разница между checked и unchecked исключениями?

A

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

Checked всегда или объявить, или поймать.
Unchecked хочешь - объявляй, хочешь - лови, хочешь ничего не делай.

158
Q

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

A

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

159
Q

Как вывести на экран StackTrace пойманного Exception?

A

e.printStackTrace();

160
Q

Если поимку исключения засунуть в НЕ void метод, то из какого блока кода будет браться возвращаемое значение?

A

Всегда из finally.

161
Q

Какое главное правило в исключениях?

A

Всё, что может выбросить checked исключение, должно быть или объявлено, или поймано блоками try-catch.

162
Q

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

A

throw new Тип_исключения () ;

без имени*

163
Q

Что такое multicatch() при ловле исключенией?

A
catch (IOException | ParseException e) {
//код обработки
}
164
Q

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

Объект какого класса создается на самом деле?

A
//создать объект "старого" класса:
Animal animal = new Animal() { 
    public void eat() {
          System.out.println("Необъодимая реализация на один раз"); 
    };
}

Одноразовый наследник класса Animal

165
Q

Как мы создаем анонимный класс?

A

После создания объекта класса вместо “ ; “ мы открываем { } и пишем новую реализацию одноразовых методов

166
Q

*Как записать “Число x нацело делиться на 3”?

A

x%3 == 0;

167
Q

Как узнать длину String?

A

str.length();

возвращает int.

168
Q

Как узнать, какой символ находится на позиции n?

A

char c = str.charAt(n);

169
Q

Какой метод находит индекс символа S?

Что, если символ повторяется и нам нужен его индекс не с первой позиции?

A

str. indexOf(“s”);
str. indexOf(“s”, 3);

где 3 - место начала отчета.

170
Q

Что делает метод

startsWith(“String”, int i );

c двумя параметрами?

A

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

171
Q

Какой метод убирает пробелы? Каким способом метод это делает?

A

String s = str.trim();

убирает пробелы по бокам и не трогает посередине.

172
Q

Какая особенность с последним символом есть у substring(“str”, int i, int j);

A

Последний элемент j не учитывается, поэтому нужно писать как бы j+1, указывать несуществующий символ чтобы вывеси последний.

173
Q

Как поменять отдельный символ или целый кусок строки в строке?

A

String s = str.replace(String old, String new);

174
Q

Как конкатенировать строки без + ?

A

String s = str.concat(String newString);

175
Q

Что такое method chaining?

A

Использования нескольких методов через точку.

176
Q

Какая сигнатура класса toString, чтобы его перезаписать?

A

@Override
public String toString() {
return … ;
}

177
Q

Как перевести примитив(любой, в то м числе и boolean) в строку?

A

String a = String.valueOf(1);

178
Q

Как перевести коллекцию элементов в строку и вывести каждый через определенный разделитель?

A
List people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );
String peopleString = String.join("; ", people);
System.out.println(peopleString);
179
Q

Как разбить строку на массив строк?

A

String people = “Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; “;

String[] peopleArray = people.split("; ");
for (String human : peopleArray) {
    System.out.println(human);
}
180
Q

Какой метод возвращает true, когда String содержит только пробелы, TABы и тд?

Когда String пустой?

A

str. isBlank();

str. isEmpty();

181
Q

Какой метод убирает все пробелы и Tabы еще?

Как удалить все пробелы в начале? В конце?

A

str.strip();

str. stripLeading();
str. stripTrailing();

182
Q

Что возвращает метод strip() если удалять нечего?

A

Тот же самый объект

183
Q

Как присвоить массиву определенный размер n?

A

double[] myList = new double[n];

184
Q

Зачем ссылать коллекции на тип интерфейса List?

A

Можно сослать ArrayList на LinkedList для более эффективного удаления элементов с начала.

list = new ArrayList ()

185
Q

Какой класс лучше использовать, если необходимо часто удалять элементы из начала списка?

A

LinkedList.

186
Q

Как одновременно объявить массив и проинициализировать его?

Что нельзя указывать в этом примере?

A

String[] seasons = new String[] {“Winter”, “Spring”, “Summer”, “Autumn”};

Длину в квадратных скобках. Java сама считает.

187
Q

Как объявить массив на восемь ячеек в каждой по восемь ячеек?

A

int[][] Array = new int [8][8];

188
Q

Как подсчитать сумму всех элементов массива?

A

double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}

189
Q

Как найти наибольшее значение в массиве?

A

double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}

190
Q

Какой синтаксис foreach цикла?

A

for (double element: myList) {
System.out.println(element);
}

191
Q

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

A
public static int[] reverse(int[] list) {
// 1. создать массив по длине такой же
  int[] result = new int[list.length];
// 2. Две переменные в for, одна растет, вторая убывает. 
  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    result[j] = list[i];
  }
  return result;
}
192
Q

Какой метод с помощью бинарного поиска ищет индекс элемента?
Как выглядит и какое обязательное условие?
Что выдаст, если такого элемента нет?

A

int[] array1 = {10, 20, 30, 40};
int pos1 = Arrays.binarySearch(array1, 20);

где array1 - массив, 20 - искомое значение;’
массив должен быть отсортирован.
-1.

193
Q

Как сравнить два массива?

Нужно создавать объект, чтобы его использовать?

A

public static boolean equals(long[] a1, long[] a2)

нет, статический.

194
Q

Как заполнить массив одним значением?

Нужно создавать объект, чтобы его использовать?

A

public static void fill(int[] a, int val)

нет, статический.

195
Q

Как отсортировать массив?

A

public static void sort(Object[] a)

196
Q

Как определить максимальное значение массива с помощью метода Math.max( x1, x2); ?

A

double[] myArray = {11, 5.8, 11.1, 10.9}; // создали

double max = Double.MIN_VALUE; //присвоили минимум

 for (int i = 0; i < myArray.length; i++) {
         max = Math.max(max, myArray[i]);
      }
// перебрали циклом, сравнивая каждый элемент с max;
197
Q

Как присвоить минимальное и максимальное значение числу, которое позволяет тип данных?

A

double min = Double.MIN_VALUE;

198
Q

Какой метод ищет элемент в массиве с определенного по определенный индекс? Синтаксис, какие параметры.

A

int binarySearch(int[] myArray, int fromIndex, int toIndex, int key)

199
Q

Как вывести строку в обратном порядке? (с помощью цепочки методов)

A
String str = "абвгдеёжзи";
String reverse = new StringBuffer(str).reverse().toString();
200
Q

Как разбить строку на массив char?

A

String str = “ProgLang.su”;

char[] reverseArray1 = str.toCharArray();

201
Q

Как вывести массив в обратном порядке?

Как должен выглядеть цикл for

A

for (int i = Array.length-1 ; i >= 0 ; i– ) System.out.print(Array1[i]);

202
Q

Как установить начальный размер ArrayList?

A

List list = new ArrayList<>(20);

203
Q

Как создать ArrayList точно повторяющий любую коллекцию?

A

ArrayList list2 = new ArrayList<>(list);

204
Q

Как добавить элемент в ArrayList?

A

ArrayList list = new ArrayList<>();

list.add(“Hello”);

205
Q

Как добавить элемент в ArrayList в позицию index&

A

list.add(0, “Amigo”);

206
Q

Как добавить целую коллекцию в ArrayLIst?

Как сделать это на позицию index?

A

ArrayList secondList = new ArrayList<>();
secondList.addAll(list);

secondList.addAll(1, list);

207
Q

Как очистить ArrayList?

A

secondList.clear();

208
Q

Как клонировать ArrayList и почему нужно приведение к тому же типу, что и изначальный ArrayList?

A

ArrayList copyOfSecondList = (ArrayList) secondList.clone();

Потому что clone() возвращает Object

209
Q

Как узнать, содержит ли ArrayList определенный элемент?

A

System.out.println(copyOfSecondList.contains(“Hello”));

true

210
Q

Что за метод foreach7 Не цикл, а именно метод.

A

https://javarush.ru/groups/posts/524-khvatit-pisatjh-ciklih-top-10-luchshikh-metodov-dlja-rabotih-s-kollekcijami-iz-java8

211
Q

Как узнать размер ArrayList?

A

size()

212
Q

Какой метод позволяет узнать текущее время в милисекундах?

Пример использования.

A

long start ´System.currentTimeMillis();

чтобы измерить скорость работы программы. Вызвать в начале метода, в конце и end минус start

213
Q
  1. Если нужно добавлять элементы в ArrayList и LinkedList в конец, что будет происходит быстрее?
  2. Если нужно считывать?
  3. Если нужно записывать, но в начало?
A
  1. Добавлять в конец ArrayList в два раза.
  2. Считывание с ArrayList намного быстрее.
  3. LinkedList намного быстрее.
214
Q
  1. Добавлять в конец ArrayList в два раза.
  2. Считывание с ArrayList намного быстрее.
  3. LinkedList намного быстрее.
A

System.out.println(cars.pollFirst());

System.out.println(cars.pollLast());

215
Q

Как создать объект класса HashMap?(Ключ int, значение String ) На что ссылаем?

A

Map map = new HashMap <> ();

216
Q

Как добавить в HashMap данные? (Число и его перевод на русский )

A

map. put(1, “Один”);

map. put(2, “Два”);

217
Q

Как ведет себя HashMap при вставке нового ключ-значение, если ключ уже существует?

A

Перезапишет старое значение.

218
Q

Сколько может быть повторяющихся ключей и значений в HashMap?

A

Ключ всегда один, значение сколько угодно.

219
Q

Как получить значение по ключу?

A

map.get(1);

220
Q

Имеется ли какой-то порядок в HashMap? Какой Map имеет?

A

Нет.

LinkedHashMap и TreeMap.

221
Q

Какой порядок в LinkedHashMap и TreeMap?

A

Сохраняет порядок добавления, сортирует по ключу.

222
Q

Как выглядит цикл forEach, чтобы вывести ключ-значение на экран для HashMap?

A

for (Map.Entry entry : map.entrySet() ) ) {
SOUT(entry.getKey() + “ : “ + entry.getValue() ) );
}

223
Q

Сколько дубликатов может хранить в себе Set

A

Ни одного.

224
Q

Какие множества ты знаешь?

Как создаются?

A

Set hashSet = HashSet <> ();

LinkedHashSet;
treeSet;

225
Q

Как выглядит цикл forEach для HashSet?

A

for (String n : hashSet) {

}

226
Q

Как редактировать сразу несколько строк в среде разработки?

A

Alt+Shift и мышкой выбираешь строки

227
Q

Как узнать, содержит ли Set определенный элемент?

A

hash.set.contains(“Искомый эмелент”);

228
Q

Как объединить два множества? Какая особенность?

A

set1.addAll(set2);

ничего не дублируется, значит “общий кусок” будет один на двоих

229
Q

Как создать множество с теми же элементами, что и у старого?

A

Set newHasSet = new HashSet <> (oldHashSet);

230
Q

Как оставить в множестве все элементы другого множества?

A

oldHashSet.retainAll(newHashSet);

231
Q

Как “отнять” одно множество от другого?

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

A

set1.removeAll(set2);