blob: aad40f408bcc2192aa6f418b81405ec119991e82 (
plain)
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
|
:PROPERTIES:
:ID: cf9a0dd5-561b-4330-bdfd-07689db2dc44
:END:
#+title: Java
* Java
** Документация
- [[https://docs.oracle.com/javase/8/docs/api/java/lang/package-tree.html][Иерархия пакетов в Java]]
*** Самая первая версия
http://web.mit.edu/java_v1.0.2/
** Преимущества
- Статическая типизация. Чуть больше надежности по сравнению с PHP или
Python
- Много библиотек и много работы.
- OpenJDK свободное ПО.
** Недостатки
- Бесполезные геттеры и сеттеры, которые просто сетают поле или просто
тянут поле с тем же именем
- Нет именованных аргументов
- Нет трейтов
- Для рефлексии надо использовать отдельный флаг после Java
- Переусложненный код во многих библиотеках
- Корпоративное влияние на язык скорее всего довольно серьёзное
** Сертификация
*** Подготовка
- https://dev.to/javinpaul/how-to-become-a-certified-java-developer-professionals-1jfb
- https://dev.to/javinpaul/how-to-become-a-certified-spring-developer-professional-in-2022-5f31
Высокоуровневый язык программирования со статической строгой типизацией. Имеет
огромную реализацию и стандартную библиотеку. Работает на множестве систем в
частности Windows. Требует предустановки рантайма.
[[https://docs.oracle.com/javase/tutorial/][Официальная документация]]
[[https://www.oracle.com/java/technologies/introduction-to-java.html#318][Java Language Envrironment]]
** Видео
- [[https://habr.com/ru/company/golovachcourses/blog/215275/][1000+ часов видео по Java на русском]]
- [[https://github.com/qqqlll/Java-Thread/wiki/Tutorials][Туториалы Java]]
- [[https://www.youtube.com/watch?v=GoXwIVyNvX0][Intro to Java Programming - Course for Absolute Beginners]]
- [[https://www.youtube.com/watch?v=xk4_1vDrzzo][12 часов туториала Java]]
** Преимущества
- 0 не равно False, [] не равно False и т.д. Хорошая логика и практика.
- Настоящее "Явное лучше чем неявное" в отличии от питона
- Традиционное ООП, которое работает на всей уровни системы в отличии от PHP
- Довольно безопасный язык относительно скриптовых и C(++)
** Недостатки
- Пакеты распространяются собранными (почти проприетарщина)
- Сложный процесс бутстрапа
(https://github.com/oriansj/talk-notes/blob/master/ghm-2017/bootstrappable.org)
- Сложный компилятор сам по себе
- Система типов не такая мощная как у ML
- Система типов unsound (https://dl.acm.org/doi/pdf/10.1145/3022671.2984004)
** Сниппеты
*** foreach
#+begin_src java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
for (int number : numbers) {
number ...
}
#+end_src
** Тулинг
- [[https://en.wikipedia.org/wiki/JDK_Flight_Recorder][Java Flight Recorder]]
** Библиотеки
- [[id:5ade66ca-3d2a-4207-9b8e-50065ce2e77e][Spring]]
- [[https://javaee.github.io/tutorial/toc.html][JavaEE]]
** Книги
- [[https://vk.com/doc26879026_509770285][Философия Java]]
|