А вы знали, что первой социальной платформой, в которой появились виртуальное представление личности пользователя уже в современном понимании и виде, был Snapchat?
В 2016 году компания Snap приобрела Bitmoji и материнскую компанию Bitstrips за 64,2 миллиона долларов и добавила в Snapchat возможность настраивать цифровые аватары.
Proof
#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
"Автоматизация процессов начинается с автоматизации мышления."
Георгий Лопато, разработчик советских ЭВМ, сказал это в 1970 году на конференции в Минске.
Биография
#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
Wikipedia
Лопато, Георгий Павлович
Георгий Павлович Лопато (23 августа 1924 (1924-08-23) — 13 февраля 2003) — советский учёный, ветеран вычислительной техники. Член-корреспондент АН СССР (1979) и член-корреспондент НАН Белоруссии.
👍1
Комментарии в Java
1. Что такое комментарии в Java?
Комментарии — это части исходного кода, которые игнорируются компилятором Java и не включаются в скомпилированный байт-код. Они предназначены для добавления пояснений, документации или временного исключения кода из выполнения. В Java существуют три типа комментариев: однострочные, многострочные и Javadoc, каждый из которых имеет свои особенности и области применения.
Зачем нужны комментарии?
Документация: Объясняют назначение кода, классов, методов и сложных алгоритмов.
Читаемость: Упрощают понимание кода другими разработчиками или при возвращении к проекту спустя время.
Поддержка API: Javadoc-комментарии используются для генерации документации API.
Отладка: Позволяют временно исключать фрагменты кода без их удаления.
Командная работа: Унифицируют понимание кода в команде, особенно в больших проектах.
2. Синтаксис комментариев
Java поддерживает три типа комментариев, каждый из которых имеет уникальный синтаксис и назначение.
2.1. Однострочные комментарии (//)
Описание: Начинаются с // и продолжаются до конца строки.
Применение: Используются для коротких пояснений или аннотаций к отдельным строкам кода.
Синтаксис:
2.2. Многострочные комментарии (/* */)
Описание: Начинаются с /* и заканчиваются */, охватывая одну или несколько строк.
Применение: Используются для более длинных пояснений или временного исключения блока кода.
Синтаксис:
2.3. Javadoc-комментарии (/** */)
Описание: Начинаются с /** и заканчиваются */, используются для генерации документации API.
Применение: Документируют классы, методы, поля и пакеты, включая теги, такие как @param, @return и т.д.
Синтаксис:
Примечания к синтаксису:
Комментарии не могут быть вложенными. Например, нельзя поместить /* */ внутрь другого /* */.
Javadoc-комментарии обрабатываются инструментом javadoc для создания HTML-документации.
Однострочные комментарии могут следовать за кодом в той же строке, в то время как многострочные и Javadoc-комментарии обычно размещаются перед кодом.
3. Типы комментариев и их особенности
3.1. Однострочные комментарии (//)
Назначение: Используются для кратких пояснений, аннотаций к переменным или временных заметок.
Особенности:
Игнорируются компилятором.
Подходят для пояснений, которые не требуют много текста.
Часто используются для "инлайн"-комментариев (например, после строки кода).
Пример:
3.2. Многострочные комментарии (/* */)
Назначение: Используются для описания сложной логики, временного исключения кода или добавления заметок, которые не помещаются в одну строку.
Особенности:
Могут охватывать несколько строк, что делает их удобными для больших пояснений.
Часто используются для комментирования блоков кода при отладке.
Не поддерживают вложенность (например, /* /* */ */ вызовет ошибку).
Пример:
3.3. Javadoc-комментарии (/** */)
Назначение: Используются для документирования кода и генерации профессиональной документации API.
Особенности:
Поддерживают специальные теги (например, @param, @return, @throws) для описания параметров, возвращаемых значений и исключений.
Используются инструментом javadoc для создания HTML-документации.
Обычно размещаются непосредственно перед классами, методами или полями.
#Java #для_новичков #beginner #java_syntax #commentaries
1. Что такое комментарии в Java?
Комментарии — это части исходного кода, которые игнорируются компилятором Java и не включаются в скомпилированный байт-код. Они предназначены для добавления пояснений, документации или временного исключения кода из выполнения. В Java существуют три типа комментариев: однострочные, многострочные и Javadoc, каждый из которых имеет свои особенности и области применения.
Зачем нужны комментарии?
Документация: Объясняют назначение кода, классов, методов и сложных алгоритмов.
Читаемость: Упрощают понимание кода другими разработчиками или при возвращении к проекту спустя время.
Поддержка API: Javadoc-комментарии используются для генерации документации API.
Отладка: Позволяют временно исключать фрагменты кода без их удаления.
Командная работа: Унифицируют понимание кода в команде, особенно в больших проектах.
2. Синтаксис комментариев
Java поддерживает три типа комментариев, каждый из которых имеет уникальный синтаксис и назначение.
2.1. Однострочные комментарии (//)
Описание: Начинаются с // и продолжаются до конца строки.
Применение: Используются для коротких пояснений или аннотаций к отдельным строкам кода.
Синтаксис:
// Это однострочный комментарий
int x = 10; // Устанавливаем начальное значение x
2.2. Многострочные комментарии (/* */)
Описание: Начинаются с /* и заканчиваются */, охватывая одну или несколько строк.
Применение: Используются для более длинных пояснений или временного исключения блока кода.
Синтаксис:
/* Это многострочный комментарий.
Он может занимать несколько строк.
Используется для описания сложной логики. */
int y = 20;
2.3. Javadoc-комментарии (/** */)
Описание: Начинаются с /** и заканчиваются */, используются для генерации документации API.
Применение: Документируют классы, методы, поля и пакеты, включая теги, такие как @param, @return и т.д.
Синтаксис:
/**
* Вычисляет сумму двух чисел.
* @param a Первое число
* @param b Второе число
* @return Сумма чисел
*/
public int add(int a, int b) {
return a + b;
}
Примечания к синтаксису:
Комментарии не могут быть вложенными. Например, нельзя поместить /* */ внутрь другого /* */.
Javadoc-комментарии обрабатываются инструментом javadoc для создания HTML-документации.
Однострочные комментарии могут следовать за кодом в той же строке, в то время как многострочные и Javadoc-комментарии обычно размещаются перед кодом.
3. Типы комментариев и их особенности
3.1. Однострочные комментарии (//)
Назначение: Используются для кратких пояснений, аннотаций к переменным или временных заметок.
Особенности:
Игнорируются компилятором.
Подходят для пояснений, которые не требуют много текста.
Часто используются для "инлайн"-комментариев (например, после строки кода).
Пример:
int counter = 0; // Счетчик для отслеживания итераций
counter++; // Увеличиваем счетчик
3.2. Многострочные комментарии (/* */)
Назначение: Используются для описания сложной логики, временного исключения кода или добавления заметок, которые не помещаются в одну строку.
Особенности:
Могут охватывать несколько строк, что делает их удобными для больших пояснений.
Часто используются для комментирования блоков кода при отладке.
Не поддерживают вложенность (например, /* /* */ */ вызовет ошибку).
Пример:
/* Этот метод временно отключен для отладки.
Он будет восстановлен после тестирования.
int computeValue(int input) {
return input * 2;
}
*/
3.3. Javadoc-комментарии (/** */)
Назначение: Используются для документирования кода и генерации профессиональной документации API.
Особенности:
Поддерживают специальные теги (например, @param, @return, @throws) для описания параметров, возвращаемых значений и исключений.
Используются инструментом javadoc для создания HTML-документации.
Обычно размещаются непосредственно перед классами, методами или полями.
#Java #для_новичков #beginner #java_syntax #commentaries
👍3
Пример:
Основные Javadoc-теги:
4. Правильное применение комментариев
Правильное использование комментариев улучшает читаемость, поддерживаемость и качество кода.
Вот рекомендации по их применению:
4.1. Однострочные комментарии
Когда использовать:
Для кратких пояснений к переменным, строкам кода или логике.
Для временных заметок или TODO-комментариев.
Лучшие практики:
Пишите кратко и по делу (например, // Инициализация счетчика).
Избегайте очевидных комментариев (например, // Увеличиваем x на 1 для x++).
Размещайте комментарий на той же строке или над ней, если он поясняет конкретную строку.
Пример:
4.2. Многострочные комментарии
Когда использовать:
Для описания сложной логики или алгоритмов.
Для временного исключения кода при отладке.
Для добавления заметок о контексте или ограничениях.
Лучшие практики:
Используйте для пояснений, которые не помещаются в одну строку.
Избегайте чрезмерного комментирования кода, который можно удалить.
Форматируйте комментарии для читаемости (например, выравнивайте строки).
Пример:
4.3. Javadoc-комментарии
Когда использовать:
Для документирования публичных и защищенных классов, методов и полей.
Для создания документации API, которая будет использоваться другими разработчиками.
Лучшие практики:
Пишите Javadoc для всех публичных элементов API.
Используйте теги (@param, @return) для описания параметров и возвращаемых значений.
Пишите краткие, но полные описания, избегая избыточной информации.
Обновляйте Javadoc при изменении кода.
Пример:
4.4. Общие рекомендации
Самодокументирующийся код: Пишите код так, чтобы он был понятен без комментариев, используя описательные имена переменных и методов.
Избегайте избыточности: Не комментируйте очевидные вещи (например, // Присваиваем 5 для x = 5).
Обновляйте комментарии: Устаревшие комментарии могут ввести в заблуждение.
Используйте TODO и FIXME: Отмечайте незавершенные задачи или проблемы в коде (например, // TODO: Добавить обработку ошибок).
5. Назначение комментариев
Комментарии выполняют несколько ключевых функций:
5.1. Документация кода
Объясняют назначение классов, методов и сложных алгоритмов, делая код понятным для других разработчиков.
5.2. Улучшение читаемости
Поясняют логику, которая может быть неочевидной, особенно в сложных алгоритмах или низкоуровневых операциях.
5.3. Поддержка API
Javadoc-комментарии создают профессиональную документацию, которая используется в библиотеках и фреймворках.
5.4. Отладка и сопровождение
Позволяют временно исключать код или оставлять заметки для будущих изменений.
5.5. Командная работа
Унифицируют понимание кода в команде, особенно в больших или распределенных проектах.
#Java #для_новичков #beginner #java_syntax #commentaries
/**
* Класс для управления данными пользователя.
* @author John Doe
* @version 1.0
*/
public class User {
/**
* Имя пользователя.
*/
private String name;
/**
* Возвращает имя пользователя.
* @return имя пользователя
*/
public String getName() {
return name;
}
}
Основные Javadoc-теги:
@param <имя> <описание>: Описывает параметр метода.
@return <описание>: Описывает возвращаемое значение.
@throws <тип_исключения> <описание>: Указывает исключения, которые может выбросить метод.
@author <имя>: Указывает автора кода.
@version <версия>: Указывает версию класса или метода.
@see <ссылка>: Ссылка на другой класс, метод или ресурс.
4. Правильное применение комментариев
Правильное использование комментариев улучшает читаемость, поддерживаемость и качество кода.
Вот рекомендации по их применению:
4.1. Однострочные комментарии
Когда использовать:
Для кратких пояснений к переменным, строкам кода или логике.
Для временных заметок или TODO-комментариев.
Лучшие практики:
Пишите кратко и по делу (например, // Инициализация счетчика).
Избегайте очевидных комментариев (например, // Увеличиваем x на 1 для x++).
Размещайте комментарий на той же строке или над ней, если он поясняет конкретную строку.
Пример:
int retries = 3; // Максимальное количество попыток подключения
4.2. Многострочные комментарии
Когда использовать:
Для описания сложной логики или алгоритмов.
Для временного исключения кода при отладке.
Для добавления заметок о контексте или ограничениях.
Лучшие практики:
Используйте для пояснений, которые не помещаются в одну строку.
Избегайте чрезмерного комментирования кода, который можно удалить.
Форматируйте комментарии для читаемости (например, выравнивайте строки).
Пример:
/* Алгоритм сортировки пузырьком.
Сравнивает соседние элементы и меняет их местами,
если они находятся в неправильном порядке. */
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
// ...
}
}
4.3. Javadoc-комментарии
Когда использовать:
Для документирования публичных и защищенных классов, методов и полей.
Для создания документации API, которая будет использоваться другими разработчиками.
Лучшие практики:
Пишите Javadoc для всех публичных элементов API.
Используйте теги (@param, @return) для описания параметров и возвращаемых значений.
Пишите краткие, но полные описания, избегая избыточной информации.
Обновляйте Javadoc при изменении кода.
Пример:
/**
* Проверяет, является ли число четным.
* @param number Число для проверки
* @return true, если число четное, иначе false
* @throws IllegalArgumentException если число отрицательное
*/
public boolean isEven(int number) {
if (number < 0) {
throw new IllegalArgumentException("Число не может быть отрицательным");
}
return number % 2 == 0;
}
4.4. Общие рекомендации
Самодокументирующийся код: Пишите код так, чтобы он был понятен без комментариев, используя описательные имена переменных и методов.
Избегайте избыточности: Не комментируйте очевидные вещи (например, // Присваиваем 5 для x = 5).
Обновляйте комментарии: Устаревшие комментарии могут ввести в заблуждение.
Используйте TODO и FIXME: Отмечайте незавершенные задачи или проблемы в коде (например, // TODO: Добавить обработку ошибок).
5. Назначение комментариев
Комментарии выполняют несколько ключевых функций:
5.1. Документация кода
Объясняют назначение классов, методов и сложных алгоритмов, делая код понятным для других разработчиков.
5.2. Улучшение читаемости
Поясняют логику, которая может быть неочевидной, особенно в сложных алгоритмах или низкоуровневых операциях.
5.3. Поддержка API
Javadoc-комментарии создают профессиональную документацию, которая используется в библиотеках и фреймворках.
5.4. Отладка и сопровождение
Позволяют временно исключать код или оставлять заметки для будущих изменений.
5.5. Командная работа
Унифицируют понимание кода в команде, особенно в больших или распределенных проектах.
#Java #для_новичков #beginner #java_syntax #commentaries
👍2
6. Комментарии и работа под капотом
6.1. Обработка компилятором
Игнорирование комментариев: Компилятор Java полностью игнорирует все комментарии (однострочные, многострочные и Javadoc) при создании байт-кода. Они не включаются в .class-файлы.
Javadoc-обработка: Javadoc-комментарии обрабатываются отдельным инструментом javadoc, который извлекает их из исходного кода и создает HTML-документацию. Эти комментарии также не попадают в байт-код.
Пример:
6.2. Память и производительность
Отсутствие влияния на память: Поскольку комментарии не включаются в байт-код, они не занимают память в Metaspace, куче или стеке во время выполнения программы.
Размер исходного кода: Комментарии увеличивают размер исходных .java-файлов, но это не влияет на скомпилированный код или производительность.
Javadoc и сборка: Генерация Javadoc-документации требует дополнительных ресурсов (памяти и процессорного времени) во время сборки проекта, но это происходит на этапе компиляции, а не выполнения.
6.3. Инструменты и Javadoc
Инструменты анализа: IDE (например, IntelliJ IDEA, Eclipse) используют Javadoc-комментарии для автодополнения, подсказок и генерации документации. Это улучшает разработку, но не влияет на выполнение.
Рефлексия: Комментарии не доступны через API рефлексии, так как они не включаются в байт-код. Однако Javadoc-теги могут быть использованы фреймворками (например, Spring) через предварительную обработку исходного кода.
6.4. Оптимизация и комментарии
Отсутствие накладных расходов: Поскольку комментарии не влияют на байт-код, они не создают дополнительных затрат на производительность во время выполнения.
Размер документации: Чрезмерное использование Javadoc-комментариев может увеличить размер сгенерированной документации, но это редко является проблемой.
Обфускация: Инструменты, такие как ProGuard, не затрагивают комментарии, так как они отсутствуют в байт-коде.
6.5. Ошибки, связанные с комментариями
Устаревшие комментарии: Неправильные или устаревшие комментарии могут ввести в заблуждение, особенно если код изменился, а комментарии — нет.
Ошибки в Javadoc: Неправильное использование тегов (например, @param для несуществующего параметра) может вызвать предупреждения при генерации документации.
Комментирование кода: Длительное оставление закомментированного кода может затруднить чтение и сопровождение. Лучше использовать системы контроля версий для хранения старого кода.
Пример устаревшего комментария:
7. Лучшие практики
Пишите самодокументирующийся код: Используйте описательные имена переменных и методов, чтобы минимизировать необходимость комментариев.
Избегайте очевидных комментариев: Не пишите комментарии, которые дублируют очевидную логику.
Обновляйте комментарии: Убедитесь, что комментарии соответствуют текущему состоянию кода.
Используйте Javadoc для публичного API: Документируйте все публичные классы, методы и поля с помощью Javadoc.
Форматируйте многострочные комментарии: Используйте выравнивание и перенос строк для улучшения читаемости.
Используйте TODO и FIXME: Отмечайте незавершенные задачи или проблемы.
Ограничьте комментирование кода: Вместо длительного хранения закомментированного кода используйте системы контроля версий (например, Git).
#Java #для_новичков #beginner #java_syntax #commentaries
6.1. Обработка компилятором
Игнорирование комментариев: Компилятор Java полностью игнорирует все комментарии (однострочные, многострочные и Javadoc) при создании байт-кода. Они не включаются в .class-файлы.
Javadoc-обработка: Javadoc-комментарии обрабатываются отдельным инструментом javadoc, который извлекает их из исходного кода и создает HTML-документацию. Эти комментарии также не попадают в байт-код.
Пример:
public class Example {
// Это не попадет в байт-код
/* Это тоже не попадет */
/**
* Это обрабатывается javadoc, но не включается в байт-код
*/
public void method() {}
}
6.2. Память и производительность
Отсутствие влияния на память: Поскольку комментарии не включаются в байт-код, они не занимают память в Metaspace, куче или стеке во время выполнения программы.
Размер исходного кода: Комментарии увеличивают размер исходных .java-файлов, но это не влияет на скомпилированный код или производительность.
Javadoc и сборка: Генерация Javadoc-документации требует дополнительных ресурсов (памяти и процессорного времени) во время сборки проекта, но это происходит на этапе компиляции, а не выполнения.
6.3. Инструменты и Javadoc
Инструменты анализа: IDE (например, IntelliJ IDEA, Eclipse) используют Javadoc-комментарии для автодополнения, подсказок и генерации документации. Это улучшает разработку, но не влияет на выполнение.
Рефлексия: Комментарии не доступны через API рефлексии, так как они не включаются в байт-код. Однако Javadoc-теги могут быть использованы фреймворками (например, Spring) через предварительную обработку исходного кода.
6.4. Оптимизация и комментарии
Отсутствие накладных расходов: Поскольку комментарии не влияют на байт-код, они не создают дополнительных затрат на производительность во время выполнения.
Размер документации: Чрезмерное использование Javadoc-комментариев может увеличить размер сгенерированной документации, но это редко является проблемой.
Обфускация: Инструменты, такие как ProGuard, не затрагивают комментарии, так как они отсутствуют в байт-коде.
6.5. Ошибки, связанные с комментариями
Устаревшие комментарии: Неправильные или устаревшие комментарии могут ввести в заблуждение, особенно если код изменился, а комментарии — нет.
Ошибки в Javadoc: Неправильное использование тегов (например, @param для несуществующего параметра) может вызвать предупреждения при генерации документации.
Комментирование кода: Длительное оставление закомментированного кода может затруднить чтение и сопровождение. Лучше использовать системы контроля версий для хранения старого кода.
Пример устаревшего комментария:
// Умножает число на 2
int multiplyByThree(int x) {
return x * 3; // Комментарий не соответствует коду
}
7. Лучшие практики
Пишите самодокументирующийся код: Используйте описательные имена переменных и методов, чтобы минимизировать необходимость комментариев.
// Хорошо: имя метода понятно без комментария
public double calculateTotalPrice(List<Item> items) {
return items.stream().mapToDouble(Item::getPrice).sum();
}
Избегайте очевидных комментариев: Не пишите комментарии, которые дублируют очевидную логику.
// Плохо: избыточный комментарий
x = x + 1; // Увеличиваем x на 1
Обновляйте комментарии: Убедитесь, что комментарии соответствуют текущему состоянию кода.
Используйте Javadoc для публичного API: Документируйте все публичные классы, методы и поля с помощью Javadoc.
Форматируйте многострочные комментарии: Используйте выравнивание и перенос строк для улучшения читаемости.
/*
* Этот метод выполняет сложный расчет.
* Он учитывает несколько факторов:
* - Входные данные
* - Контекст выполнения
*/
Используйте TODO и FIXME: Отмечайте незавершенные задачи или проблемы.
// TODO: Добавить обработку ошибок
// FIXME: Исправить баг с отрицательными значениями
Ограничьте комментирование кода: Вместо длительного хранения закомментированного кода используйте системы контроля версий (например, Git).
#Java #для_новичков #beginner #java_syntax #commentaries
🔥4👍1
Что выведет код?
#Tasks
public class Task140725 {
public static void main(String[] args) {
int a = 1 << 31;
int b = a >> 31;
int c = a >>> 31;
System.out.println(b + " " + c);
}
}
#Tasks
👍2
👍2
Что такое ForkJoinPool в Java? 🤓
Ответ:
ForkJoinPool — реализация ExecutorService для задач, которые можно разделить на подзадачи (разделяй и властвуй). Используется в Stream API для параллельных потоков.
Пример:
ForkJoinPool pool = ForkJoinPool.commonPool();
pool.submit(() -> System.out.println("Task in ForkJoinPool"));
Подходит для рекурсивных задач, таких как сортировка или обработка больших коллекций..
#собеседование
Ответ:
Пример:
ForkJoinPool pool = ForkJoinPool.commonPool();
pool.submit(() -> System.out.println("Task in ForkJoinPool"));
Подходит для рекурсивных задач, таких как сортировка или обработка больших коллекций..
#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
А вы знали, что первый компьютерный "системный администратор" появился в 1960-х?
В 1960-х годах операторы мейнфреймов, таких как IBM System/360, начали называться системными администраторами. Они следили за работой компьютеров, что стало основой современной профессии сисадмина.
#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
"Компьютеры должны учиться у человека, а не наоборот."
Лев Королев, советский математик, сказал это в 1980-х годах на лекции в МГУ, обсуждая развитие ИИ.
Биография
#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
Wikipedia
Королёв, Лев Николаевич
Лев Никола́евич Королёв (6 сентября 1926, Подольск — 5 января 2016, Москва) — советский и российский системный программист и математик, доктор технических наук (1967), заведующий кафедрой автоматизации систем вычислительных комплексов факультета вычислительной…
👍2
Подробная инструкция по установке Maven на Windows
Зачем устанавливать Maven
Установка Maven на систему необходима по следующим причинам:
Автоматизация сборки: Maven предоставляет стандартизированный жизненный цикл для компиляции, тестирования, упаковки и развертывания проектов.
Управление зависимостями: Maven автоматически загружает библиотеки из репозиториев (например, Maven Central), упрощая управление зависимостями.
CI/CD-интеграция: CI/CD-системы (Jenkins, GitLab CI, GitHub Actions) требуют системной установки Maven для выполнения сборок.
Независимость от IDE: Системный Maven позволяет запускать команды (mvn clean install) из терминала, что полезно для серверов или скриптов.
Контроль версий: Системная установка позволяет использовать конкретную версию Maven, обеспечивая воспроизводимость сборок.
Кастомизация: Системный Maven дает полный контроль над настройками через settings.xml и поддерживает расширения.
В памяти Maven работает как Java-приложение, загружая модель POM, зависимости и плагины в оперативную память. Установка на систему минимизирует зависимость от IDE, но требует управления версиями и конфигурацией.
Установка Maven на Windows
Требования
JDK: Установленный Java Development Kit (версия 8 или выше, рекомендуется OpenJDK или Oracle JDK).
Интернет: Для загрузки Maven и зависимостей.
Права администратора: Для настройки переменных окружения (опционально).
Шаги установки
Проверка JDK:
Убедитесь, что JDK установлен:
Скачивание Maven:
Перейдите на официальный сайт Apache Maven.
Скачайте бинарный архив, например, apache-maven-3.9.9-bin.zip.
Распакуйте архив в удобную директорию, например, C:\Program Files\Apache\maven-3.9.9.
Настройка переменных окружения:
Откройте "Свойства системы".
Нажмите Win + R, введите sysdm.cpl и нажмите Enter.
Перейдите на вкладку "Дополнительно" → "Переменные среды".
Создайте переменную M2_HOME:
В разделе "Системные переменные" нажмите "Создать".
Имя: M2_HOME, Значение: C:\Program Files\Apache\maven-3.9.9.
Добавьте Maven в PATH:
Найдите переменную Path в "Системных переменных" и добавьте %M2_HOME%\bin.
Проверьте переменную JAVA_HOME:
Убедитесь, что JAVA_HOME указывает на директорию JDK, например, C:\Program Files\Java\jdk-11.0.16.
Если отсутствует, создайте: Имя: JAVA_HOME, Значение: C:\Program Files\Java\jdk-11.0.16.
Проверка установки:
Откройте командную строку (Win + R → cmd).
Выполните:
Вывод должен показать версию Maven, Java и другие детали:
Настройка локального репозитория:
По умолчанию Maven использует ~/.m2/repository (например, C:\Users\<username>\.m2\repository) для кэширования зависимостей.
Опционально настройте settings.xml в C:\Users\<username>\.m2 для указания зеркал, прокси или профилей:
Нюансы:
Убедитесь, что JAVA_HOME указывает на JDK, а не JRE, иначе Maven не сможет компилировать код.
Если mvn не распознается, проверьте правильность PATH.
Используйте Maven Wrapper (mvnw) в проектах для независимости от системной версии.
#Java #middle #Maven #Maven_install
Зачем устанавливать Maven
Установка Maven на систему необходима по следующим причинам:
Автоматизация сборки: Maven предоставляет стандартизированный жизненный цикл для компиляции, тестирования, упаковки и развертывания проектов.
Управление зависимостями: Maven автоматически загружает библиотеки из репозиториев (например, Maven Central), упрощая управление зависимостями.
CI/CD-интеграция: CI/CD-системы (Jenkins, GitLab CI, GitHub Actions) требуют системной установки Maven для выполнения сборок.
Независимость от IDE: Системный Maven позволяет запускать команды (mvn clean install) из терминала, что полезно для серверов или скриптов.
Контроль версий: Системная установка позволяет использовать конкретную версию Maven, обеспечивая воспроизводимость сборок.
Кастомизация: Системный Maven дает полный контроль над настройками через settings.xml и поддерживает расширения.
В памяти Maven работает как Java-приложение, загружая модель POM, зависимости и плагины в оперативную память. Установка на систему минимизирует зависимость от IDE, но требует управления версиями и конфигурацией.
Установка Maven на Windows
Требования
JDK: Установленный Java Development Kit (версия 8 или выше, рекомендуется OpenJDK или Oracle JDK).
Интернет: Для загрузки Maven и зависимостей.
Права администратора: Для настройки переменных окружения (опционально).
Шаги установки
Проверка JDK:
Убедитесь, что JDK установлен:
java -version
Вывод должен показать версию Java (например, openjdk 11.0.16). Если JDK отсутствует, скачайте и установите с Adoptium или Oracle.
Скачивание Maven:
Перейдите на официальный сайт Apache Maven.
Скачайте бинарный архив, например, apache-maven-3.9.9-bin.zip.
Распакуйте архив в удобную директорию, например, C:\Program Files\Apache\maven-3.9.9.
Настройка переменных окружения:
Откройте "Свойства системы".
Нажмите Win + R, введите sysdm.cpl и нажмите Enter.
Перейдите на вкладку "Дополнительно" → "Переменные среды".
Создайте переменную M2_HOME:
В разделе "Системные переменные" нажмите "Создать".
Имя: M2_HOME, Значение: C:\Program Files\Apache\maven-3.9.9.
Добавьте Maven в PATH:
Найдите переменную Path в "Системных переменных" и добавьте %M2_HOME%\bin.
Проверьте переменную JAVA_HOME:
Убедитесь, что JAVA_HOME указывает на директорию JDK, например, C:\Program Files\Java\jdk-11.0.16.
Если отсутствует, создайте: Имя: JAVA_HOME, Значение: C:\Program Files\Java\jdk-11.0.16.
Проверка установки:
Откройте командную строку (Win + R → cmd).
Выполните:
mvn -version
Вывод должен показать версию Maven, Java и другие детали:
Apache Maven 3.8.6
Maven home: C:\Program Files\Apache\maven-3.8.6
Java version: 11.0.16, vendor: Adoptium
Настройка локального репозитория:
По умолчанию Maven использует ~/.m2/repository (например, C:\Users\<username>\.m2\repository) для кэширования зависимостей.
Опционально настройте settings.xml в C:\Users\<username>\.m2 для указания зеркал, прокси или профилей:
<settings>
<localRepository>C:/custom/m2/repository</localRepository>
</settings>
В памяти: При запуске Maven загружает mvn.bat (или mvn.cmd), который вызывает Java-процесс. JVM загружает Maven Core, плагины и зависимости в оперативную память. Локальный репозиторий минимизирует сетевые запросы, но может занимать значительное место на диске.
Нюансы:
Убедитесь, что JAVA_HOME указывает на JDK, а не JRE, иначе Maven не сможет компилировать код.
Если mvn не распознается, проверьте правильность PATH.
Используйте Maven Wrapper (mvnw) в проектах для независимости от системной версии.
#Java #middle #Maven #Maven_install
👍5
Что выведет код?
#Tasks
public class Task150725 {
public static void main(String[] args) {
new Child150725();
}
}
class Parent150725 {
Parent150725() {
System.out.println("Parent: " + getClass().getSimpleName());
}
}
class Child150725 extends Parent150725 {
Child150725() {
System.out.println("Child: " + getClass().getSimpleName());
}
}
#Tasks
👍1
Варианты ответа:
Anonymous Quiz
50%
Parent: Child150725 Child: Child150725
40%
Parent: Parent150725 Child: Child150725
10%
Ошибка компиляции
0%
Parent: Parent150725
👍1
Что такое Path и Files в Java? 🤓
Ответ:
Path и Files (пакет java.nio.file, Java 7+) упрощают работу с файлами и директориями. Path представляет путь к файлу, а Files предоставляет утилитные методы.
Пример:
Path path = Paths.get("file.txt");
Files.write(path, "Hello".getBytes());
String content = Files.readString(path); // Hello
Более современная и удобная альтернатива File.
#собеседование
Ответ:
Пример:
Path path = Paths.get("file.txt");
Files.write(path, "Hello".getBytes());
String content = Files.readString(path); // Hello
Более современная и удобная альтернатива File.
#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3