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

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

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Что такое сборщик мусора (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
Введение в 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
🤫 «А вдруг я скажу глупость?»

Софт-скиллы, которым не учат в курсах 🤓

Вот представь, ты прочитал весь мой канал, изучил синтаксис вдоль и поперек, научился виртуозно делать API, освоил Git, знаешь Spring и WebFlux.

Но вот пришло собеседование — и ты... завис.
— Расскажите о себе.
— Ну… я... типа… учился… кодить...


Знакомо?


А теперь еще предположим: ты уже устроился и тебе дали таску.
И ты видишь, что надо уточнить у тимлида детали.

Но в голове:
«А если я спрошу — подумает, что тупой...»
«Лучше погуглю еще 3 часа, чем покажусь нубом»
«Он ведь профи. Я даже не знаю с чего начать...»

Это называется - коммуникативная тревожность.

Она же — тихий киллер карьеры в IT.



Почему ты боишься говорить 🤫

Вот тебе правда: страх общения — это не про характер.

Это навык.

Даже самые «разговорчивые» разработчики когда-то:
- боялись скинуть Pull Request с комментариями,
- часами переписывали сообщение в телеграмме,
- репетировали простой вопрос голосом.


Почему некоторым в IT это так сложно?
Потому что IT часто привлекает интровертов, бывших «отличников», людей, которые учились всё понимать сами, без помощи. И теперь, оказавшись в команде — они просто не умеют задавать вопросы или входить в беседу.


Что происходит в голове? 😨

В когнитивной психологии есть понятие self-presentation concern — это тревога из-за того, как тебя воспримут другие.

Именно она:
- заставляет молчать, когда нужно спросить;
- мешает делиться идеями;
- блокирует на стендапах.


А ещё есть спираль молчания — если ты боишься говорить, ты выпадаешь из общения, и из-за этого боишься ещё больше.


Вот пара моих советов если ты чувствуешь что твой софт-скилл слабоват:

Говори, даже если страшно.

Но не вживую, а письменно.
Заведи привычку активно писать: в рабочем чате, в Telegram, в комментариях к pull request'ам.

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

Не бойся задавать глупые вопросы.
Как сказал один умный человек: "В IT нет глупых вопросов, есть чересчур ЧСВ-шные отвечающие"



Микроконтакт — это уже общение

Не нужно фигачить речь на 3 минуты.

Просто начни с одной фразы:
«А почему мы сделали вот так, а не так?»
«Спасибо, крутая реализация»
«Подскажи, я что-то путаюсь в этой части»


Это называется anchored small talk — микровзаимодействия, которые создают эффект «я в теме». Даже если ты мало говоришь.


Заготовь фразы. Да, можно и записать

Серьёзно.

Напиши себе в заметках:
Вопрос на стендап: «Ребят, я правильно понимаю, что…»
Начало диалога: «Можно короткий вопрос про фичу?»
Завершение: «Окей, тогда попробую и отпишусь»


В момент тревоги мозг не придумывает речь с нуля. Он вытаскивает готовое.
Подсунь ему нужные заготовки — и увидишь, как снижается стресс.


Найди «одного своего»

Не команду. Не менторов. Одного союзника, с кем безопасно говорить.
Пишете вместе код — обменивайтесь мыслями.
Работаете на проекте — обсуждай идеи.
В сообществе — шутите, делитесь опытом.

Это снижает страх перед всей группой. Есть ощущение, что ты не один. А с этого и начинается уверенное взаимодействие.


Ты можешь спросить: "А зачем мне это вообще?"

Пойми:
Ты можешь быть классным кодером, но без софт-скиллов — останешься «интровертным сеньором без влияния».
Ты сможешь влиять, если умеешь объяснить, услышать, вдохновить.
Продуктивность команд напрямую зависит от психологической безопасности — и ты можешь её самостоятельно формировать.

А еще спроси себя - кого повысят, из двух одинаково скиловых разработчиков? Того кто грамотно и без страха излагает свои мысли или того кто молчит или отвечает невпопад?


Поэтому, не стесняйся, пиши в комментариях, что ты думаешь об это статье! Прокачай навык 😉


Понравилась статья - поделись с другом, позови его на канал и будет тебе моя благодарность 🤝

😎

#motivation
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍31
Предлагаем темы для разбора и публикации! 📖

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

Голосование будет проводиться всю неделю, а статья или видео - выходить по выходным.

Примерные правила:
🟢 темы, не выше уровня middle, чтоб был интерес общим.
🟢Один человек - одна тема.
🟢Тема должна быть отдельным теоретически-практическим вопросом. Готовый проект - это не тема!

Жду Ваших предложений! 👏
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Выбираем темы для рассмотрения в следующие выходные! 🤨
Anonymous Poll
32%
OkHttps
14%
GraphQL
32%
NoSQL DB
21%
Nginx
👍3
📌 Факт дня:

А вы знали, что первый компьютерный "онлайн-опросник" был создан в 1995 году?

SurveyMonkey, запущенный в 1995 году, стал первым сервисом для создания онлайн-опросов. Он позволил бизнесам собирать данные от пользователей через интернет.

#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📌 Цитата дня: Михаил Карцев

"Будущее компьютеров — в их способности решать задачи коллективно."

Михаил Карцев, разработчик суперкомпьютеров, сказал это в 1970-х годах в Институте точной механики.

Биография

#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3