summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20210423140620-java.org
diff options
context:
space:
mode:
Diffstat (limited to 'content/digarden/pages/20210423140620-java.org')
-rw-r--r--content/digarden/pages/20210423140620-java.org68
1 files changed, 68 insertions, 0 deletions
diff --git a/content/digarden/pages/20210423140620-java.org b/content/digarden/pages/20210423140620-java.org
new file mode 100644
index 0000000..25ab171
--- /dev/null
+++ b/content/digarden/pages/20210423140620-java.org
@@ -0,0 +1,68 @@
+: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]] \ No newline at end of file