forked from biblelamp/JavaExercises
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJava3NotesRU.txt
More file actions
114 lines (98 loc) · 4.56 KB
/
Java3NotesRU.txt
File metadata and controls
114 lines (98 loc) · 4.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
Заметки к занятиям:
1. Обобщения
1. Вводные замечания
- краткий обзор курса, литература, тест, git, что ещё?
- варианты коммуникации: форум занятия, телеграм-чат, личка - только личное
- сдача дз через git https://geekbrains.ru/courses/66 уроки 8, 9
- приглашение к сотрудничеству: что добавить к программе?
2. Основная тема
- предложение заглянуть внутрь файла src.zip
- обобщения - это параметризированные типы
- код GenericDemo.java
- работают только со ссылочными типами данных
- два объекта generic могут быть несовместимы по типу
- в чём выгода по сравнению с использованием Object? безопасность
- код NonGenericDemo.java
- несколько параметров, код TwoGenericsDemo.java
- ограниченные типы, код StatsDemo.java
- метасимвольные аргументы, код StatsDemoMetaArg.java
2. Базы данных
1. Вводные замечания, разбор дз
2. Основная тема
- что такое CRUD (create, read, update, delete)
- варианты подключения библиотеки SQLite
- скопировать в папку [JDK]\jre\lib\ext
- подключить в IDEA (<Ctrl>+<Alt>+<Shift>+s -> Libraries -> +)
- использовать Maven
- программа SQLite Studio sqlitestudio.pl, SQL запросы
- пример на Hibernate 5
- Java Persistence API (JPA)
- JPA реализует концепцию Object-Relational Mapping (ORM)
- Hibernate - реализация JPA для задач ORM
3. Средства ввода-вывода
1. Вводные замечания, разбор дз
2. Основная тема
- понятие потока (абстрактное устройство I/O)
- класс File (операции с файлами и каталогами)
- байтовые и символьные потоки
- абстрактные классы InputStream и OutputStream
- ByteArrayInputStream и ByteArrayOutputStream
- FileInputStream и FileOutputStream
- PipedInputStream и PipedOutputStream
- SequenceInputStream
- BufferedInputStream и BufferedOutputStream
- DataInputStream и DataOutputStream
- Сериализация, ObjectInputStream и ObjectOutputStream
- символьный ввод-вывод, классы Reader и Writer
- RandomAccessFile
4. Многопоточность. Часть I
1. Вводные замечания, разбор дз
2. Основная тема
- два способа создания потоков (нитей)
- использование лямбда выражений
- приоритеты потоков (нитей)
- синхронизация потоков (нитей)
- взаимодействие потоков (нитей)
- взаимная блокировка - deadlock
- изменений состояний потоков (нитей)
- https://metanit.com/java/tutorial/8.5.php
5. Многопоточность. Часть II
1. Вводные замечания, разбор дз
- снимаю ограничения на сроки сдачи дз
- поговорить о тесте Java 3 https://geekbrains.ru/tests/58
- статья Виктора Темпалова https://geekbrains.ru/posts/npp_java
2. Основная тема
- Справочник по синхронизаторам https://habrahabr.ru/post/277669
- синхронизаторы – вспомогательные классы для синхронизации потоков, дают возможность разработчику регулировать и/или ограничивать работу потоков и предоставляют более высокий уровень абстракции, чем основные примитивы языка (мониторы)
- Semaphore реализует шаблон синхронизации Семафор
- CountDownLatch - замок (защёлка) с обратным отсчетом
- CyclicBarrier реализует шаблон синхронизации Барьер
- Exchanger<V> (обменник) обмен данными между потоками
- интерфейс Lock?
6. Обзор средств разработки
1. Вводные замечания, разбор дз
- поговорить о тесте Java 3 https://geekbrains.ru/tests/58
2. Основная тема
- логгирование https://habrahabr.ru/post/130195
- тестирование, используем JUnit, библиотека org.junit, maven
- первый тест, аннотация @Test, класс Assert, его методы
- аннотация @Before и @After, @BeforeClass, @AfterClass
- аннотация @Ignore, параметры @Test
- параметризированные аннотации
http://www.quizful.net/post/parameterized-junit-tests
7. Reflection API и аннотации
1. Вводные замечания, разбор дз
2. Основная тема
- Java Reflection введение
- исследуем класс, используя Class: имя, суперкласс, интерфейсы, создаём экземпляр класса
- исследуем класс, используя java.lang.reflect: модификаторы, поля, конструкторы, методы
- аннотации, примеры
8. Подготовка к собеседованию
1. Вводные замечания, разбор дз
2. Основная тема
- наличие профиля в github.com
- владение английским языком duolingo.com
- резюме (рус и eng) hh.ru + HeadHunter Unofficial Bot
- тестовые задания (получайте, выполняйте и собирайте)
- вопросы-ответы для повторения https://jsehelper.blogspot.ru
- общая подготовка https://hh.ru/article/16507