1 | :PROPERTIES:
|
---|
2 | :ID: cf9a0dd5-561b-4330-bdfd-07689db2dc44
|
---|
3 | :END:
|
---|
4 | #+title: Java
|
---|
5 | * Java
|
---|
6 | ** Документация
|
---|
7 | - [[https://docs.oracle.com/javase/8/docs/api/java/lang/package-tree.html][Иерархия пакетов в Java]]
|
---|
8 | *** Самая первая версия
|
---|
9 | http://web.mit.edu/java_v1.0.2/
|
---|
10 |
|
---|
11 |
|
---|
12 | ** Преимущества
|
---|
13 | - Статическая типизация. Чуть больше надежности по сравнению с PHP или
|
---|
14 | Python
|
---|
15 | - Много библиотек и много работы.
|
---|
16 | - OpenJDK свободное ПО.
|
---|
17 | ** Недостатки
|
---|
18 | - Бесполезные геттеры и сеттеры, которые просто сетают поле или просто
|
---|
19 | тянут поле с тем же именем
|
---|
20 | - Нет именованных аргументов
|
---|
21 | - Нет трейтов
|
---|
22 | - Для рефлексии надо использовать отдельный флаг после Java
|
---|
23 | - Переусложненный код во многих библиотеках
|
---|
24 | - Корпоративное влияние на язык скорее всего довольно серьёзное
|
---|
25 |
|
---|
26 | ** Сертификация
|
---|
27 | *** Подготовка
|
---|
28 | - https://dev.to/javinpaul/how-to-become-a-certified-java-developer-professionals-1jfb
|
---|
29 | - https://dev.to/javinpaul/how-to-become-a-certified-spring-developer-professional-in-2022-5f31
|
---|
30 |
|
---|
31 | Высокоуровневый язык программирования со статической строгой типизацией. Имеет
|
---|
32 | огромную реализацию и стандартную библиотеку. Работает на множестве систем в
|
---|
33 | частности Windows. Требует предустановки рантайма.
|
---|
34 |
|
---|
35 | [[https://docs.oracle.com/javase/tutorial/][Официальная документация]]
|
---|
36 |
|
---|
37 | [[https://www.oracle.com/java/technologies/introduction-to-java.html#318][Java Language Envrironment]]
|
---|
38 |
|
---|
39 | ** Видео
|
---|
40 | - [[https://habr.com/ru/company/golovachcourses/blog/215275/][1000+ часов видео по Java на русском]]
|
---|
41 | - [[https://github.com/qqqlll/Java-Thread/wiki/Tutorials][Туториалы Java]]
|
---|
42 | - [[https://www.youtube.com/watch?v=GoXwIVyNvX0][Intro to Java Programming - Course for Absolute Beginners]]
|
---|
43 | - [[https://www.youtube.com/watch?v=xk4_1vDrzzo][12 часов туториала Java]]
|
---|
44 |
|
---|
45 | ** Преимущества
|
---|
46 | - 0 не равно False, [] не равно False и т.д. Хорошая логика и практика.
|
---|
47 | - Настоящее "Явное лучше чем неявное" в отличии от питона
|
---|
48 | - Традиционное ООП, которое работает на всей уровни системы в отличии от PHP
|
---|
49 | - Довольно безопасный язык относительно скриптовых и C(++)
|
---|
50 |
|
---|
51 | ** Недостатки
|
---|
52 | - Пакеты распространяются собранными (почти проприетарщина)
|
---|
53 | - Сложный процесс бутстрапа
|
---|
54 | (https://github.com/oriansj/talk-notes/blob/master/ghm-2017/bootstrappable.org)
|
---|
55 | - Сложный компилятор сам по себе
|
---|
56 | - Система типов не такая мощная как у ML
|
---|
57 | - Система типов unsound (https://dl.acm.org/doi/pdf/10.1145/3022671.2984004)
|
---|
58 |
|
---|
59 | ** Сниппеты
|
---|
60 | *** foreach
|
---|
61 | #+begin_src java
|
---|
62 | List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
|
---|
63 |
|
---|
64 | for (int number : numbers) {
|
---|
65 | number ...
|
---|
66 | }
|
---|
67 | #+end_src
|
---|
68 |
|
---|
69 | ** Тулинг
|
---|
70 | - [[https://en.wikipedia.org/wiki/JDK_Flight_Recorder][Java Flight Recorder]]
|
---|
71 |
|
---|
72 | ** Библиотеки
|
---|
73 | - [[id:5ade66ca-3d2a-4207-9b8e-50065ce2e77e][Spring]]
|
---|
74 | - [[https://javaee.github.io/tutorial/toc.html][JavaEE]]
|
---|
75 |
|
---|
76 | ** Книги
|
---|
77 | - [[https://vk.com/doc26879026_509770285][Философия Java]]
|
---|