Почему так много кода
Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"
Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.
Разберём случай с выводом
#lesson #theory
Если ваш первый язык не Java, вы скорее всего задавались вопросом: "Почему просто чтобы начать программу или вывести текст в консоль нужно писать так много кода?"
Ответ кроется в структуре языка. В Java всё поделено на классы и объекты, в свою очередь у которых есть атрибуты и методы.
Разберём случай с выводом
System.out.println()
. Казалось бы, можно же просто ограничится функцией println. Но если мы захотим вывести текст в другой поток, например в System.err? В реализации Java будет достаточно сменить атрибут out -> err#lesson #theory
В чём разница между абстрактными классами и интерфейсами?
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
С первого взгляда эти два объекта выполняют одну и тоже функцию — планирование классов. Однако не всё так очевидно.
Абстрактные классы — это такие же обычные классы, но некоторые их методы можно «оставить на потом». Другими словами метод объявленный ключевым словом abstract не надо реализовывать, он будет реализован в дочерних объектах.
Интерфейсы же являются описанием структуры методов класса, которые нужно реализовать. В интерфейсах нельзя объявлять переменные.
#java #lesson #oop
Класс LinkedList
Это структура данных в виде связанного списка. Таким образом мы можем быстро добавлять элементы, но нам будет проблематично брать данные по индексу.
У него есть все методы, которые определены в интерфейсах List, Queue, Deque.
📌 Документация
#java #lesson #collections
Это структура данных в виде связанного списка. Таким образом мы можем быстро добавлять элементы, но нам будет проблематично брать данные по индексу.
У него есть все методы, которые определены в интерфейсах 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
Баз данных на SQL-основе существует очень много. К примеру самые популярные из них: SQLite, MySQL и PostgreSQL.
Набор пакетов JDBC предлагает обобщить все эти базы данных, предоставляя общий API. Он предустановлен в JDK и находится в пакете java.sql.
Для подключения к определённой базе данных нужно установить драйвер и указать его в коде как показано выше.
#lesson #features
Интерфейс Comparable
Помимо обычных коллекций, в Java существуют Sorted... коллекции. Их значения автоматически сортируются в натуральном порядке.
Для реализации такой сортировки тип значения должен имплементировать интерфейс Comparable. Он сравнивает два объекта и возвращает "разницу" между ними в виде числа.
В дальнейшем это разница будет использованная для сортировки значений в коллекции.
#lesson #collections
Помимо обычных коллекций, в Java существуют Sorted... коллекции. Их значения автоматически сортируются в натуральном порядке.
Для реализации такой сортировки тип значения должен имплементировать интерфейс Comparable. Он сравнивает два объекта и возвращает "разницу" между ними в виде числа.
В дальнейшем это разница будет использованная для сортировки значений в коллекции.
#lesson #collections
Теория дженериков в Java
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Дженерики — это невероятно важная часть языка Java, которую вы используете повсеместно. Их суть в обобщении типов, тем самым делая классы и методы гибкими.
Использовать дженерики можно в классах и методы. Обозначаются они стрелочными скобками и именем типа <T> (примеры вы можете увидеть выше).
По сути дженерики это лишь синтаксический сахар, поскольку в скомпилированном коде они не отличимы от обычного преобразования типов.
#java #lesson #oop
Что такое JVM?
Вероятно, вы уже встречали такое понятие, как Java Virtual Machine, ведь это — самая главная часть языка, отвечающая за выполнение кода.
Когда вы нажимаете на кнопку Build, первым делом запускается компилятор, который переводит код понятный человеку в байт-код, понятный JVM.
После, когда мы запускаем программу, JVM переводит байт-код из .class файлов в конструкции, понятные компьютеру.
Такие сложности добавляются, чтобы код мог свободно запускаться на любых устройствах.
#lesson #theory
Вероятно, вы уже встречали такое понятие, как Java Virtual Machine, ведь это — самая главная часть языка, отвечающая за выполнение кода.
Когда вы нажимаете на кнопку Build, первым делом запускается компилятор, который переводит код понятный человеку в байт-код, понятный JVM.
После, когда мы запускаем программу, JVM переводит байт-код из .class файлов в конструкции, понятные компьютеру.
Такие сложности добавляются, чтобы код мог свободно запускаться на любых устройствах.
#lesson #theory
Аннотация FunctionalInterface
С версии Java 1.8 были добавлены лямбда-выражения. Они позволяют в короткой форме описать действия метода, который был описан в функциональном интерфейсе.
Такой интерфейс имеет лишь один метод, который и будет реализован как лямбда-выражение. Именно на наличие такого метода проверяет аннотация FunctionalInterface. Если в интерфейсе будет больше чем одного метода или вовсе их не будет, то при компиляции будет выведена ошибка.
Для создания функциональных интерфейсов не обязательно использования этой аннотации, но с ней редактор кода будет лучше понимать как обрабатывать данный интерфейс.
#java #lesson #annotations
С версии Java 1.8 были добавлены лямбда-выражения. Они позволяют в короткой форме описать действия метода, который был описан в функциональном интерфейсе.
Такой интерфейс имеет лишь один метод, который и будет реализован как лямбда-выражение. Именно на наличие такого метода проверяет аннотация FunctionalInterface. Если в интерфейсе будет больше чем одного метода или вовсе их не будет, то при компиляции будет выведена ошибка.
Для создания функциональных интерфейсов не обязательно использования этой аннотации, но с ней редактор кода будет лучше понимать как обрабатывать данный интерфейс.
#java #lesson #annotations
NullPointerException
Эта ошибка появляется, если значение не задано какой-то переменной, а мы пытаемся получить доступ к их параметрам.
К сожалению, null могут принимать все ссылочные типы. Это массивы, классы и даже строки. Но вот числа никогда не будут null (поскольку это не ссылочные типы).
Что с этим делать? Достаточно просто добавить проверку на null и что-то делать с этим (выбрасывать ошибку или задавать значение по умолчанию).
#lesson #theory #errors
Эта ошибка появляется, если значение не задано какой-то переменной, а мы пытаемся получить доступ к их параметрам.
К сожалению, null могут принимать все ссылочные типы. Это массивы, классы и даже строки. Но вот числа никогда не будут null (поскольку это не ссылочные типы).
Что с этим делать? Достаточно просто добавить проверку на null и что-то делать с этим (выбрасывать ошибку или задавать значение по умолчанию).
#lesson #theory #errors
Нужно быстро отправить файлы с одного компьютера на другой?
Важное условие, чтобы они были в одной локальной сети. Вы можете запустить сервер на Java и перекинуть файлы с одного компьютера на другой.
Для этого вводите:
📌 Документация
Доступно с Java 18
#java #lesson #tricks
Важное условие, чтобы они были в одной локальной сети. Вы можете запустить сервер на Java и перекинуть файлы с одного компьютера на другой.
Для этого вводите:
jwebserver -b 0.0.0.0
, а на другом компьютере открываете сервер по IP, выбираете и загружаете нужный вам файл.📌 Документация
Доступно с Java 18
#java #lesson #tricks
JavaRush — это геймифицированный учебник по изучению Java-программирования c нуля
Он содержит 1200 практических задач, необходимый минимум теории по основам Java, а также игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера
⛓ Ссылка: https://github.com/gto76/python-cheatsheet
👉 Java Portal | #ресурсы
Он содержит 1200 практических задач, необходимый минимум теории по основам Java, а также игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Полный курс Java для начинающих [4,5 ЧАСА]
Вы узнаете обо всех базовых принципах языка программирования. После просмотра этого курса Java с нуля вы сможете написать полноценное работающее приложение, используя массивы, ооп, переменные и прочие конструкции языка
📹 Cмотреть курс: YouTube
👉 Java Portal | #курсы
Вы узнаете обо всех базовых принципах языка программирования. После просмотра этого курса Java с нуля вы сможете написать полноценное работающее приложение, используя массивы, ооп, переменные и прочие конструкции языка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Курс по Java для начинающих
По этим обучающим видео вы сможете освоить программирование на java с нуля до Junior Java Developer
📹 Cмотреть курс: YouTube
👉 Java Portal | #курсы
По этим обучающим видео вы сможете освоить программирование на java с нуля до Junior Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Java: устранение проблем. Чтение, отладка и оптимизация JVM-приложений
Автор: Спилкэ Лауренциу
Год: 2023
📂 Скачать книгу
👉 Java Portal | #книги
Автор: Спилкэ Лауренциу
Год: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
Полный курс по Java для начинающих
Изучите Java 8 и объектно-ориентированное программирование с помощью этого полного курса Java для начинающих
📹 Cмотреть курс: YouTube
👉 Java Portal | #курсы
Изучите Java 8 и объектно-ориентированное программирование с помощью этого полного курса Java для начинающих
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Коллекция реализаций разных алгоритмов и структур данных на Java
Эта подборка пригодится для подготовки к собеседованию, в частности для секции "Алгоритмы".
Здесь есть примеры реализаций графовых алгоритмов, имплементация структур данных, таких как очередь, куча, задания на алгоритмы Кнута-Морриса-Пратта, Ахо-Корасик и много других задач
⛓ Ссылка: https://github.com/indy256/codelibrary
👉 Java Portal | #ресурсы
Эта подборка пригодится для подготовки к собеседованию, в частности для секции "Алгоритмы".
Здесь есть примеры реализаций графовых алгоритмов, имплементация структур данных, таких как очередь, куча, задания на алгоритмы Кнута-Морриса-Пратта, Ахо-Корасик и много других задач
Please open Telegram to view this post
VIEW IN TELEGRAM