Java for Beginner
743 subscribers
709 photos
198 videos
12 files
1.14K links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Что выведет код?

class Parent160725 {
void print() {
System.out.println("Parent160725");
}
}

class Child160725 extends Parent160725 {
void print() {
System.out.println("Child160725");
}
}

public class Task160725 {
public static void main(String[] args) {
Parent160725 obj = new Child160725();
obj.print();
}
}


#Tasks
👍2
Продолжаем выбирать темы для разбора и голосовать за рассмотрение предложенных! 🤓

Голосуем за тему к рассмотрению в эти выходные!

Предлагаем новую тему!
(можете предложить что-то из того, что предлагали на прошлой и позапрошлых неделях и что проиграло в голосовании!)

Не стесняемся! ✌️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что такое рефлексия в Java? 🤓

Ответ:

Рефлексия позволяет анализировать и изменять структуру классов (поля, методы, конструкторы) во время выполнения. Используется в библиотеках, таких как Spring.

Пример:
Class<?> clazz = String.class;
Method method = clazz.getMethod("length");
System.out.println(method.invoke("test")); // 4

Рефлексия замедляет выполнение и требует осторожности из-за возможных ошибок доступа.


#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📌 Факт дня:

А вы знали, что первый "цифровой альбом" был продан в 1979 году?

В 1979 году компания Warner Bros. Records выпустила альбом Рая Кудера "Bop Till You Drop", который был записан в цифровом формате и стал первым цифровым релизом популярной музыки в США. Это был первый случай продажи музыки в полностью цифровом виде.

#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📌 Цитата дня: Евгений Велтистов

"Машины должны быть не только умными, но и добрыми."


Евгений Велтистов, автор "Электроника", сказал это в 1964 году в интервью о будущем робототехники.


Биография

#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Установка Maven на Linux

Требования
JDK: Установленный JDK (версия 8 или выше).
Интернет: Для загрузки Maven.
Терминал: Доступ к командной строке.



Шаги установки

Проверка JDK:
Выполните:
java -version


Вывод должен показать версию Java. Если JDK отсутствует, установите, например, OpenJDK:
sudo apt update
sudo apt install openjdk-11-jdk # Ubuntu/Debian
sudo dnf install java-11-openjdk-devel # Fedora


Скачивание Maven:
Перейдите на сайт Apache Maven.

Скачайте архив, например, apache-maven-3.9.9-bin.tar.gz:
wget https://downloads.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz


Распакуйте в /opt:
sudo tar -xzvf apache-maven-3.9.9-bin.tar.gz -C /opt


Настройка переменных окружения:
Откройте файл /etc/environment или ~/.bashrc:
nano ~/.bashrc


Добавьте строки:
export M2_HOME=/opt/apache-maven-3.9.9
export PATH=$M2_HOME/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # Путь к JDK


Примените изменения:
source ~/.bashrc


Проверка установки:
Выполните:
mvn -version


Вывод:

Apache Maven 3.9.9
Maven home: /opt/apache-maven-3.9.9
Java version: 11.0.16, vendor: Ubuntu


Настройка локального репозитория:
По умолчанию используется ~/.m2/repository.

Опционально настройте ~/.m2/settings.xml для кастомного пути или зеркал:
<settings>
<localRepository>/custom/m2/repository</localRepository>
</settings>

В памяти: На Linux Maven запускается через скрипт mvn, который вызывает JVM. Процесс аналогичен Windows: Maven Core, плагины и зависимости загружаются в память. Локальный репозиторий кэширует артефакты, снижая сетевую нагрузку.


Нюансы:
Убедитесь, что JAVA_HOME указывает на правильный JDK.
Для системного доступа установите Maven в /opt и настройте права: sudo chown -R
$USER /opt/apache-maven-3.9.9.
Используйте mvnw для согласованности версий в проектах.


#Java #middle #Maven #Maven_install
👍3
Что выведет код?

public class Task170725 {
static void process(int x) {
System.out.println("int");
}

static void process(Integer x) {
System.out.println("Integer");
}

static void process(Object x) {
System.out.println("Object");
}

public static void main(String[] args) {
process(10);
process(Integer.valueOf(10));
process(null);
}
}


#Tasks
👍3
Что такое сборщик мусора (Garbage Collector) в Java? 🤓

Ответ:

Сборщик мусора (GC) автоматически освобождает память, удаляя объекты, на которые больше нет ссылок. Работает в JVM, используя алгоритмы, такие как Mark-and-Sweep.

Пример:
Object obj = new Object(); // Создаем объект
obj = null; // Удаляем ссылку
// GC может освободить память при следующем цикле

GC управляется JVM, но можно предложить запуск через System.gc(). Разные сборщики (Serial, G1, ZGC) оптимизированы для разных сценариев. Для Junior важно понимать, что GC не гарантирует немедленного освобождения памяти.


#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
📌 Факт дня:

А вы знали, что термин "скроллинг" в интерфейсах был придуман в 1974 году?

Слово "scrolling" (прокрутка) начали использовать в системе Smalltalk для описания перемещения текста на экране, вдохновившись движением свитка. Это стандарт для современных интерфейсов.

#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
📌 Цитата дня: Борис Гнеденко

"Программирование — это дисциплина, требующая точности мысли."

Борис Гнеденко, советский математик, сказал это в 1980 году в статье о вычислительных системах.

Биография

#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Введение в Java


Что такое Java?

Java — это высокоуровневый, объектно-ориентированный язык программирования, созданный компанией Sun Microsystems (ныне принадлежит Oracle) в 1995 году. Главная идея Java — "Write Once, Run Anywhere" (Напиши один раз, запускай везде). Это значит, что программа, написанная на Java, может работать на любом устройстве или операционной системе, где есть подходящая среда выполнения.

Java используется повсеместно: от веб-приложений и мобильных приложений (например, Android) до серверных систем, больших корпоративных проектов и даже встраиваемых устройств, таких как "умные" телевизоры или IoT-устройства.

Её популярность обусловлена несколькими факторами:
Кроссплатформенность: Работает на Windows, macOS, Linux и других системах.
Надежность: Java имеет строгую типизацию и встроенные механизмы обработки ошибок.
Большое сообщество: Огромное количество библиотек, фреймворков и документации.
Широкая применимость: От небольших скриптов до сложных распределенных систем.



Кроссплатформенность Java

Кроссплатформенность — это способность программы работать на разных операционных системах без необходимости переписывать код. В отличие от языков, таких как C или C++, где код компилируется в машинный код, специфичный для конкретной платформы (например, процессора или ОС), Java использует другой подход.

Когда вы пишете программу на Java, ваш код компилируется не в машинный код, а в байт-код. Это промежуточное представление программы, которое одинаково для всех платформ. Байт-код создается компилятором Java (javac) и сохраняется в файлах с расширением .class. Но сам по себе байт-код не может выполняться напрямую на вашем компьютере. Здесь на сцену выходит JVM — виртуальная машина Java.

JVM (Java Virtual Machine) интерпретирует или компилирует байт-код в машинный код, который может быть выполнен на конкретной аппаратной платформе. Например, JVM для Windows преобразует байт-код в инструкции, понятные процессорам на Windows, а JVM для Linux делает то же самое для Linux. Таким образом, вам не нужно писать разные версии программы для каждой операционной системы — достаточно написать код один раз, а JVM позаботится об остальном.


Но чтобы запустить Java-программу, вам нужно больше, чем просто JVM. Здесь появляются JRE и JDK.


JVM: Сердце Java

JVM (Java Virtual Machine) — это виртуальная машина, которая исполняет байт-код Java-программ. Она является ключевым компонентом, обеспечивающим кроссплатформенность.

JVM выполняет несколько важных функций:
Интерпретация и JIT-компиляция: JVM может интерпретировать байт-код построчно или использовать JIT-компилятор (Just-In-Time), чтобы преобразовать байт-код в машинный код для повышения производительности.
Управление памятью: JVM включает сборщик мусора (Garbage Collector), который автоматически освобождает память, занятую объектами, которые больше не используются.
Безопасность: JVM предоставляет песочницу (sandbox), которая ограничивает доступ программ к системным ресурсам, что делает Java-программы безопасными.


JVM — это, по сути, "переводчик" между вашим байт-кодом и конкретной аппаратной платформой. Без JVM Java-программа не сможет работать.

#Java #для_новичков #beginner
👍3
JRE: Среда выполнения

JRE (Java Runtime Environment) — это среда выполнения Java, которая включает в себя всё необходимое для запуска Java-программ.

JRE состоит из:
JVM: Виртуальная машина, о которой мы только что говорили.
Библиотеки Java: Стандартные классы и API (например, для работы с файлами, сетью, графикой).
Дополнительные компоненты: Например, средства для загрузки классов и управления безопасностью.


Если вы хотите просто запускать Java-программы (например, запустить готовое приложение, такое как IDE или сервер), вам достаточно установить JRE. Однако JRE не включает инструменты для разработки — для этого нужен JDK.


JDK: Набор для разработки

JDK (Java Development Kit) — это комплект инструментов для разработки Java-программ.

JDK включает в себя всё, что есть в JRE, плюс дополнительные утилиты для программистов:

Компилятор (javac): Преобразует исходный код на Java в байт-код.
Отладчик (jdb): Помогает находить и исправлять ошибки в коде.
Инструменты для создания документации (javadoc): Генерирует документацию из комментариев в коде.

Другие утилиты: Например, jar для создания архивов Java.

JDK — это то, что вам нужно установить, если вы хотите писать и компилировать свои Java-программы. Без JDK вы не сможете превратить ваш код (файлы с расширением .java) в исполняемый байт-код.


Как всё это связано?

Давайте разберем процесс работы Java-программы:
Вы пишете код на Java в файле с расширением .java (например, HelloWorld.java).
С помощью компилятора из JDK (javac) ваш код компилируется в байт-код (файл .class).
Байт-код передается в JVM, которая является частью JRE.
JVM интерпретирует или компилирует байт-код в машинный код, который выполняется на вашей системе.


Вот простая схема:
Исходный код (.java) → Компилятор (javac, часть JDK) → Байт-код (.class) → JVM (часть JRE) → Выполнение на устройстве


Зачем это новичку?

Понимание JVM, JRE и JDK важно, чтобы вы могли правильно настроить свою рабочую среду и понимать, как работает ваша программа.

Вот несколько практических советов:
Установите JDK: Если вы начинаете учить Java, скачайте и установите JDK с официального сайта Oracle или используйте OpenJDK (бесплатная альтернатива). JRE уже будет включена в JDK.
Проверьте версию: Убедитесь, что вы используете актуальную версию Java (на момент 2025 года это, например, Java 17 или новее). Команда java -version в терминале покажет, какая версия JRE установлена, а javac -version — версия JDK.
Настройте IDE: Для удобной разработки используйте среды, такие как IntelliJ IDEA, Eclipse или VS Code с плагинами для Java.


#Java #для_новичков #beginner
👍5
Что выведет код?

import java.util.Optional;

public class Task180725 {
public static void main(String[] args) {
Optional<Object> opt = Optional.of("Java")
.filter(s -> s.startsWith("J"))
.map(s -> null)
.or(() -> Optional.of("Fallback"));

System.out.println(opt.get());
}
}


#Tasks
👍3
👍4
Продолжаем выбирать темы для разбора и голосовать за рассмотрение предложенных! 🤓

Голосуем за тему к рассмотрению в эти выходные!

Предлагаем новую тему!
(можете предложить что-то из того, что предлагали на прошлой и позапрошлых неделях и что проиграло в голосовании!)

Не стесняемся! ✌️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что такое native методы в Java? 🤓

Ответ:

Ключевое слово native обозначает методы, реализованные на языке C/C++ через JNI (Java Native Interface). Используются для доступа к системным ресурсам.

Пример:
public class NativeExample {
native void print();
static { System.loadLibrary("NativeLib"); }
}

Требует компиляции нативного кода и загрузки библиотеки. Используется редко, но важен для интеграции с низкоуровневыми API.


#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
👍3
Minecraft Forge API 1.16.5

Что такое Forge?
Forge - загрузчик модов в Minecraft, он позволяет быстро и доступно получить доступ к защищённым полям Minecraft.

Установка Forge.
Скачайте Forge MDK 1.16.5 с оф. сайта net.minecraftforge и откройте в IntelliJ.
Установите также плагин Minecraft Development.

Подготовка.
Установите SDK - Java 8 ( OpenJDK / Correto )
Дождитесь инициализации проекта.

Начало.
Запуск клиента происходит так: справа сверху где запуск выберите runClient, и запустите.

Основной класс мода должен содержать:

@Mod("examplemod")
public class Main {
public Main() {
MinecraftForge.EVENT_BUS.register(this);
}
}

@Mod("examplemod") - указание ModLoader'у что этот класс основной для Forge. ( examplemod - MODID который указывается по умолчанию в forge mdk)

MinecraftForge.EVENT_BUS.register(this); - регистрирует данный класс для прослушивания ивентов ( т.е если используется прослушивание то зарегистрировать класс что он прослушивает ивенты .)

Перейдём к аннотациям, а точнее к прослушивании ивентов.
Аннотация: @SubscribeEvent
Для чего? - просушивать ивенты ( события игры )

Практика.

@SubscribeEvent
public void onTick(TickEvent.PlayerTickEvent event) {}

Аннотация @SubscribeEvent выполняет прослушку в этом примере: TickEvent.PlayerTickEvent.

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

Также существуют множество ивентов по типу:
RenderNameplateEvent, RenderGameOverlayEvent, TickEvent.RenderTickEvent, ну и так далее.


Статья написана @forgehook
5👍2🤯1