Java Portal | Программирование
11.3K subscribers
798 photos
59 videos
19 files
591 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
java roadmap по которому человек смог стать программистом за 8 месяцев. Ставьте лайки и дизлайки за качество роадмапа - заценим)
https://drive.google.com/file/d/1NEsxE-9FCpxAty7GwW7MULgivZIQwlEA/view
Почему так много кода

Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"

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

Разберём случай с выводом System.out.println(). Казалось бы, можно же просто ограничится функцией println. Но если мы захотим вывести текст в другой поток, например в System.err? В реализации Java будет достаточно сменить атрибут out -> err

#lesson #theory
В чём разница между абстрактными классами и интерфейсами?

С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.

Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.

Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.

#java #lesson #oop
Класс LinkedList

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

У него есть все методы, которые определены в интерфейсах List, Queue, Deque.

addFirst() / offerFirst() — добавляет элемент в начало списка. addLast() / offerLast() — в конец.

removeFirst() / pollFirst() — удаляет первый элемент из начала списка. removeLast() / pollLast() — с конца списка.

getFirst() / peekFirst(); getLast() / peekLast() — возвращает первый/последний элемент списка.

📌 Документация

#java #lesson #collections
Концепция JDBC

Баз данных на SQL-основе существует очень много. К примеру самые популярные из них: SQLite, MySQL и PostgreSQL.

Набор пакетов JDBC предлагает обобщить все эти базы данных, предоставляя общий API. Он предустановлен в JDK и находится в пакете java.sql.

Для подключения к определённой базе данных нужно установить драйвер и указать его в коде как показано выше. 

#lesson #features
Интерфейс Comparable

Помимо обычных коллекций, в Java существуют Sorted... коллекции. Их значения автоматически сортируются в натуральном порядке.

Для реализации такой сортировки тип значения должен имплементировать интерфейс Comparable. Он сравнивает два объекта и возвращает "разницу" между ними в виде числа.

В дальнейшем это разница будет использованная для сортировки значений в коллекции.

#lesson #collections
Теория дженериков в Java

Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.

Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).

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

#java #lesson #oop
Что такое JVM?

Вероятно, вы уже встречали такое понятие, как Java Virtual Machine, ведь это — самая главная часть языка, отвечающая за выполнение кода.

Когда вы нажимаете на кнопку Build, первым делом запускается компилятор, который переводит код понятный человеку в байт-код, понятный JVM.

После, когда мы запускаем программу, JVM переводит байт-код из .class файлов в конструкции, понятные компьютеру.

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

#lesson #theory
Аннотация FunctionalInterface

С версии Java 1.8 были добавлены лямбда-выражения. Они позволяют в короткой форме описать действия метода, который был описан в функциональном интерфейсе.

Такой интерфейс имеет лишь один метод, который и будет реализован как лямбда-выражение. Именно на наличие такого метода проверяет аннотация FunctionalInterface. Если в интерфейсе будет больше чем одного метода или вовсе их не будет, то при компиляции будет выведена ошибка.

Для создания функциональных интерфейсов не обязательно использования этой аннотации, но с ней редактор кода будет лучше понимать как обрабатывать данный интерфейс.

#java #lesson #annotations
NullPointerException

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

К сожалению, null могут принимать все ссылочные типы. Это массивы, классы и даже строки. Но вот числа никогда не будут null (поскольку это не ссылочные типы).

Что с этим делать? Достаточно просто добавить проверку на null и что-то делать с этим (выбрасывать ошибку или задавать значение по умолчанию).

#lesson #theory #errors
Нужно быстро отправить файлы с одного компьютера на другой?

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

Для этого вводите: jwebserver -b 0.0.0.0, а на другом компьютере открываете сервер по IP, выбираете и загружаете нужный вам файл.

📌 Документация

Доступно с Java 18

#java #lesson #tricks
this

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

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

#java #lesson #theory
JavaRush — это геймифицированный учебник по изучению Java-программирования c нуля

Он содержит 1200 практических задач, необходимый минимум теории по основам Java, а также игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера

Ссылка: https://github.com/gto76/python-cheatsheet

👉 Java Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
Микросервисы на Java: практическое руководство

📖 Читать: ссылка

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
Полный курс Java для начинающих [4,5 ЧАСА]

Вы узнаете обо всех базовых принципах языка программирования. После просмотра этого курса Java с нуля вы сможете написать полноценное работающее приложение, используя массивы, ооп, переменные и прочие конструкции языка

📹 Cмотреть курс: YouTube

👉 Java Portal | #курсы
Please open Telegram to view this post
VIEW IN TELEGRAM
Основы программирования с Java

Автор:
Тимур Машнин
Год:
2022

📂 Скачать книгу

👉 Java Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
Java Digest #14

📖 Читать: ссылка

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
Курс по Java для начинающих

По этим обучающим видео вы сможете освоить программирование на java с нуля до Junior Java Developer

📹 Cмотреть курс: YouTube

👉 Java Portal | #курсы
Please open Telegram to view this post
VIEW IN TELEGRAM
Java: устранение проблем. Чтение, отладка и оптимизация JVM-приложений

Автор:
Спилкэ Лауренциу
Год:
2023

📂 Скачать книгу

👉 Java Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
Полный курс по Java для начинающих

Изучите Java 8 и объектно-ориентированное программирование с помощью этого полного курса Java для начинающих

📹 Cмотреть курс: YouTube

👉 Java Portal | #курсы
Please open Telegram to view this post
VIEW IN TELEGRAM
От Java к Kotlin

Автор:
Макгрегор Дункан, Прайс Нэт
Год:
2023

📂 Скачать книгу

👉 Java Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM