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

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

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

public class Task110725 {
public static void main(String[] args) {
int a = 1;
int b = a << 2 + a++ * --a;
System.out.println(b);
}
}


#Tasks
👍1🤯1
Варианты ответа:
Anonymous Quiz
60%
8
20%
12
0%
16
20%
20
👍2
Что такое CyclicBarrier в Java? 🤓

Ответ:

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

Пример:
CyclicBarrier barrier = new CyclicBarrier(3);
Runnable task = () -> {
System.out.println("Reached barrier");
try { barrier.await(); } catch (Exception e) {}
System.out.println("Proceeding");
};
new Thread(task).start();
new Thread(task).start();
new Thread(task).start();

После достижения барьера всеми потоками они продолжают выполнение.

#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Maven в IntelliJ IDEA: Встроенный Maven и его роль


Как работает встроенный Maven

Расположение: IntelliJ IDEA включает Maven в свою установку (обычно в <IntelliJ IDEA installation>/plugins/maven/lib).
Версия: IDEA использует конкретную версию Maven (например, 3.8.6 в последних версиях), которая обновляется с новыми релизами IDE.
Интеграция: IDEA вызывает Maven через внутренний API, а не через командную строку. Это позволяет управлять сборкой, зависимостями и плагинами из интерфейса IDE.


Конфигурация: Настройки хранятся в File > Settings > Build, Execution, Deployment > Build Tools > Maven:

Maven home path: По умолчанию Bundled (Maven).
User settings file: Можно указать ~/.m2/settings.xml.
Local repository: По умолчанию ~/.m2/repository, но можно настроить.


В памяти: Встроенный Maven загружается в JVM IntelliJ IDEA, разделяя память с IDE. Это увеличивает общее потребление памяти, особенно при выполнении сложных сборок. IDEA кэширует зависимости в ~/.m2/repository, синхронизируя их с системным Maven.


Замена системного Maven

IntelliJ IDEA по умолчанию использует встроенный Maven, но позволяет переключиться на системный:

Переключение на системный Maven:
Откройте File > Settings > Build, Execution, Deployment > Build Tools > Maven.
В поле Maven home path выберите путь к системной установке (например, C:\Program Files\Apache\maven-3.8.6 или /opt/apache-maven-3.8.6).
Перезапустите проект для применения изменений.



Почему встроенный Maven заменяет системный:
Удобство: Встроенный Maven не требует установки, что упрощает начало работы.
Совместимость: IDEA гарантирует совместимость встроенного Maven с функциями IDE (например, автодополнение в POM.xml, интеграция с dependency:tree).
Изоляция: Встроенный Maven изолирован от системных изменений (например, обновления системного Maven), обеспечивая стабильность.
Кэширование: IDEA использует тот же локальный репозиторий (~/.m2/repository), что и системный Maven, минимизируя дублирование данных.



Когда использовать системный Maven:
Для согласованности с CI/CD, где требуется конкретная версия Maven.
При использовании Maven Wrapper (mvnw), который игнорирует встроенный Maven.
Для кастомных расширений или плагинов, требующих специфической версии Maven.
При работе в терминале или на серверах без IDE.


В памяти: Системный Maven запускается как отдельный процесс, что изолирует его от памяти IDEA, но требует дополнительных ресурсов для запуска JVM. Встроенный Maven экономит ресурсы, так как работает в той же JVM, но может конфликтовать с другими задачами IDE.


Нюансы интеграции

Конфликты версий: Если системный и встроенный Maven используют разные версии, могут возникнуть несовместимости в поведении плагинов или разрешении зависимостей. Используйте mvnw или настройте IDEA на системный Maven.
Настройки: Встроенный Maven использует ~/.m2/settings.xml, если он существует, но IDEA позволяет переопределить настройки через интерфейс.
Производительность: Встроенный Maven может быть медленнее в IDE из-за конкуренции за ресурсы JVM. Для крупных проектов рекомендуется системный Maven с -T для параллельной сборки.
Отладка: IDEA предоставляет графический интерфейс для выполнения Maven-целей (Run > Maven > Lifecycle), но для детальной отладки используйте терминал с -X или -e.


#Java #middle #Maven_In_IntelljIDEA
👍2
Нюансы и внутренние механизмы

Управление памятью:
Maven загружает модель POM, зависимости и плагины в память JVM. Для крупных проектов с сотнями зависимостей потребление памяти может достигать нескольких гигабайт.
Встроенный Maven в IDEA разделяет память с IDE, что может привести к перегрузке при выполнении ресурсоемких задач (например, компиляция или тестирование).
Системный Maven запускается отдельно, что изолирует его, но увеличивает общее потребление памяти системы.
Оптимизируйте с помощью JVM-флагов: -Xmx2048m для увеличения кучи.

Кэширование:
Локальный репозиторий (~/.m2/repository) используется обоими вариантами Maven, минимизируя дублирование артефактов.
Встроенный Maven в IDEA кэширует результаты сборки в памяти IDE, что ускоряет повторные операции, но увеличивает нагрузку на JVM.


Совместимость:

Убедитесь, что версия JDK, указанная в JAVA_HOME, совместима с Maven (например, Maven 3.8.6 требует JDK 7+).
Разные версии Maven могут по-разному интерпретировать POM.xml. Используйте mvnw для согласованности.


Безопасность:
Храните учетные данные для репозиториев в зашифрованном виде в ~/.m2/settings-security.xml.
Ограничьте доступ к ~/.m2 на Linux: chmod 700 ~/.m2.


Отладка:
Используйте mvn -X для вывода подробных логов о загрузке плагинов и зависимостей.
В IDEA откройте вкладку "Maven" для выполнения целей и анализа вывода.
Проверьте итоговую конфигурацию: mvn help:effective-pom или mvn help:effective-settings.

Производительность:
Системный Maven позволяет использовать флаг -T для параллельной сборки, что быстрее для многомодульных проектов.
Встроенный Maven в IDEA может быть ограничен настройками JVM IDE. Настройте idea64.exe.vmoptions для увеличения памяти.


#Java #middle #Maven_In_IntelljIDEA
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Оглавление.

Раздел 2: Базовый синтаксис Java.

Глава 1. Структура простой программы
Классы в Java: синтаксис и структура
Методы в Java — синтаксис и структура
Идентификаторы доступа в Java
Конвенции именования в Java
Операторы в Java
Комментарии: однострочные (//), многострочные (/* */), Javadoc (/** */)
Ключевые слова и зарезервированные слова в Java
Всем привет! ✌️

Сегодня вместо еженедельного мотивационного поста хочу поделиться мыслями о канале.

Для многих из Вас, не важно подписчик или гость - этот канал один из тысячи пытающихся развиться на хайпе программирования.

И я Вас понимаю.

Сам периодически просматриваю подборки, где 90% это созданные для спама рекламы, псевдопрограммерские Java - каналы с парой постов в неделю.
Конечно же есть и интересные. Не спорю. Но их меньшинство.
Многие просто паразитируют на чужом контенте выкладывая ссылки на интересные видео и статьи.


Чем же отличается этот канал? 🤨

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


Зачем мне все это? 🧐

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

Моя цель - объединить в канале тех, кто действительно хочет постоянно обучаться java, тех, кто болеет этим как и я ☺️
Кто хочет наладить постоянный обмен мнениями, взаимодействие, обсуждение.
Найти тех, кто не побоится задавать и отвечать на вопросы других людей.

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

И я откровенно этого не понимаю.
То ли это какой-то страх публичности. То ли ЧСВ.

Порой хочется переделать канал в закрытое сообщество с реально активными участниками))))


Поэтому обращусь к тем, кто читает сейчас этот пост 🫵

Если Вам интересен этот канал, его контент - давайте обратную связь.
Не бойтесь спрашивать, обсуждать, предлагать. Я буду рад любой реакции. Ведь только так можно развиваться.

Не стесняйтесь, просить те темы, которые интересны лично Вам, возможно они еще кому-то понравятся!

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

Ведь это бесплатно🤣



И кстати, возможно среди Вас есть и те, кто хочет попробовать быть редактором канала. Пишите - я с радостью приму помощь 🙂

@Oleborn 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
Давайте проверим активность на канале. Любопытно сколько людей реально постоянно читают 🧐
Anonymous Poll
61%
Я тут! Все ок! 😉
32%
И я тут! С вами! 🏝
6%
А я не тут. Я тама 🗿
5🔥1
Предлагаем темы для разбора и публикации! 📖

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

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

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

Жду Ваших предложений! 👏
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Выбираем темы для рассмотрения в следующие выходные! 🤨
Anonymous Poll
33%
OkHttp
17%
AOP
8%
HATEOS
42%
Minecraft Forge API
👍2
☄️ Оглавление для обучающих постов.
(периодически обновляемое)

Если хотите найти информацию по Java, ранее опубликованную на канале - для Вас подготовлено оглавление!

✔️ Пользуйтесь на здоровье!

🔜 Часть 1.
🔜 Часть 2.
🔜 Часть 3. SPRING
🔜 Часть 4. SPRING продолжение
🔜 Функциональное программирование
🔜 Reflection API
🔜 Модульность в Java
🔜 Multithreads in Java
🔜 Описание классов в Java
🔜 Comparable и Comparator
🔜 Collectors в Java
🔜 Основы криптографии в Java
🔜 Объектно-реляционное отображение (Аннотации JPA и Hibernate)
🔜 JavaMailSender в Spring Boot
🔜 Jackson
🔜 Gson
🔜 Liquibase
🔜 Flyway
🔜 Apache Maven

🟢Раздел 2: Базовый синтаксис Java
🟢Раздел 3: Типы данных и переменные


🔜 Установка IntelliJ IDEA Ulimate

Обновлено оглавление (12.07.25)

Читайте, используйте, будут вопросы - пишите! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Java for Beginner pinned «☄️ Оглавление для обучающих постов. (периодически обновляемое) Если хотите найти информацию по Java, ранее опубликованную на канале - для Вас подготовлено оглавление! ✔️ Пользуйтесь на здоровье! 🔜 Часть 1. 🔜 Часть 2. 🔜 Часть 3. SPRING 🔜 Часть 4. SPRING…»
📌 Факт дня:

А вы знали, что первой социальной платформой, в которой появились виртуальное представление личности пользователя уже в современном понимании и виде, был Snapchat?

В 2016 году компания Snap приобрела Bitmoji и материнскую компанию Bitstrips за 64,2 миллиона долларов и добавила в Snapchat возможность настраивать цифровые аватары.

Proof

#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1