Что такое 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
👍5
А вы знали, что первый компьютерный "системный администратор" появился в 1960-х?
В 1960-х годах операторы мейнфреймов, таких как IBM System/360, начали называться системными администраторами. Они следили за работой компьютеров, что стало основой современной профессии сисадмина.
#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
Wikipedia
Королёв, Лев Николаевич
Лев Никола́евич Королёв (6 сентября 1926, Подольск — 5 января 2016, Москва) — советский и российский системный программист и математик, доктор технических наук (1967), заведующий кафедрой автоматизации систем вычислительных комплексов факультета вычислительной…
👍3
Подробная инструкция по установке 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
👍6
Что выведет код?
#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
👍2
Варианты ответа:
Anonymous Quiz
39%
Parent: Child150725 Child: Child150725
39%
Parent: Parent150725 Child: Child150725
17%
Ошибка компиляции
6%
Parent: Parent150725
👍3
Что такое 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
👍5
А вы знали, что термин "бэкслэш" был придуман для клавиатур в 1961 году?
Символ "/" (бэкслэш) был введён Бобом Бемером для языка ALGOL и клавиатур IBM. Он стал ключевым для путей в файловых системах, таких как Windows (например, C:).
#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
"Шахматы на компьютере — это проверка интеллекта машины."
Владимир Арлазаров, создатель шахматной программы "Каисса", сказал это в 1974 году на чемпионате по компьютерным шахматам.
Биография
#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
Wikipedia
Арлазаров, Владимир Львович
Владимир Львович Арлазаров (род. 19 октября 1939, Москва) — советский и российский учёный, доктор технических наук, профессор, член-корреспондент Российской академии наук . В. Л. Арлазаров — учёный в области системного программирования, теории игр, искусственного…
👍3🗿1
Ключевые слова и зарезервированные слова в Java
1. Что такое ключевые слова и зарезервированные слова в Java?
Ключевые слова (keywords) в Java — это зарезервированные идентификаторы, которые имеют особое значение для компилятора и определяют синтаксические конструкции языка. Они используются для объявления классов, методов, переменных, управления потоком программы и других аспектов. Зарезервированные слова включают ключевые слова и несколько дополнительных идентификаторов, которые зарезервированы для будущего использования, но в настоящее время не имеют активной роли.
Зачем нужны ключевые слова?
Определение структуры программы: Ключевые слова задают синтаксис для классов, методов, циклов, условий и других конструкций.
Управление поведением: Они определяют, как JVM интерпретирует и выполняет код (например, synchronized для многопоточной обработки).
Читаемость и стандартизация: Ключевые слова унифицируют синтаксис, делая код понятным для всех разработчиков.
Безопасность типов: Некоторые ключевые слова (например, instanceof) обеспечивают безопасную работу с типами данных.
2. Синтаксис ключевых слов
Ключевые слова в Java — это фиксированные строки, которые нельзя использовать в качестве идентификаторов (имен переменных, классов и т.д.). Они пишутся в нижнем регистре и имеют строгий синтаксис, зависящий от контекста их использования.
Общий синтаксис:
Ключевые слова используются в определенных позициях в коде, в зависимости от их назначения.
Например:
Список ключевых слов
Java (на момент Java 21) имеет 50 ключевых слов и 3 зарезервированных слова.
Вот полный список, разделенный по категориям:
Модификаторы доступа
public, protected, private
Модификаторы класса, метода и поля
abstract, final, static, synchronized, native, strictfp, transient, volatile
Управление потоком
if, else, switch, case, default, break, continue, return, for, while, do
Объявление типов
class, interface, enum, record (с Java 14), extends, implements
Управление исключениями
try, catch, finally, throw, throws
Пакеты и модули
package, import, module (с Java 9), exports, opens, requires, uses, provides, to, with (связаны с модульной системой)
Типы данных и примитивы
boolean, byte, char, short, int, long, float, double, void
Прочее
new, this, super, instanceof, assert
Зарезервированные слова (не используются, но зарезервированы)
const и goto: Зарезервированы для совместимости с C/C++, но не используются в Java.
_ (подчеркивание): С Java 9 зарезервировано и не может использоваться как идентификатор.
3. Типы ключевых слов и их особенности
3.1. Модификаторы доступа
Описание:
Управляют видимостью классов, полей, методов и конструкторов.
Примеры:
public: Элемент доступен из любого места.
private Элемент доступен только внутри класса.
protected Элемент доступен в пакете и подклассах.
Пример:
3.2. Модификаторы класса, метода и поля
Описание:
Определяют поведение или свойства элементов.
Примеры:
static Указывает, что элемент принадлежит классу, а не объекту.
final Запрещает изменение (переопределение или наследование).
abstract Указывает, что класс или метод не имеет реализации.
Пример:
3.3. Управление потоком
Описание:
Управляют выполнением программы (циклы, условия, прерывания).
Примеры:
if, else Условное выполнение.
for, while, do Циклы.
break, continue Прерывание или пропуск итераций.
Пример:
#Java #для_новичков #beginner #java_syntax #keywords
1. Что такое ключевые слова и зарезервированные слова в Java?
Ключевые слова (keywords) в Java — это зарезервированные идентификаторы, которые имеют особое значение для компилятора и определяют синтаксические конструкции языка. Они используются для объявления классов, методов, переменных, управления потоком программы и других аспектов. Зарезервированные слова включают ключевые слова и несколько дополнительных идентификаторов, которые зарезервированы для будущего использования, но в настоящее время не имеют активной роли.
Зачем нужны ключевые слова?
Определение структуры программы: Ключевые слова задают синтаксис для классов, методов, циклов, условий и других конструкций.
Управление поведением: Они определяют, как JVM интерпретирует и выполняет код (например, synchronized для многопоточной обработки).
Читаемость и стандартизация: Ключевые слова унифицируют синтаксис, делая код понятным для всех разработчиков.
Безопасность типов: Некоторые ключевые слова (например, instanceof) обеспечивают безопасную работу с типами данных.
2. Синтаксис ключевых слов
Ключевые слова в Java — это фиксированные строки, которые нельзя использовать в качестве идентификаторов (имен переменных, классов и т.д.). Они пишутся в нижнем регистре и имеют строгий синтаксис, зависящий от контекста их использования.
Общий синтаксис:
Ключевые слова используются в определенных позициях в коде, в зависимости от их назначения.
Например:
public class MyClass { // Ключевое слово public и class
void myMethod() { // Ключевое слово void
if (true) { // Ключевое слово if
return; // Ключевое слово return
}
}
}
Список ключевых слов
Java (на момент Java 21) имеет 50 ключевых слов и 3 зарезервированных слова.
Вот полный список, разделенный по категориям:
Модификаторы доступа
public, protected, private
Модификаторы класса, метода и поля
abstract, final, static, synchronized, native, strictfp, transient, volatile
Управление потоком
if, else, switch, case, default, break, continue, return, for, while, do
Объявление типов
class, interface, enum, record (с Java 14), extends, implements
Управление исключениями
try, catch, finally, throw, throws
Пакеты и модули
package, import, module (с Java 9), exports, opens, requires, uses, provides, to, with (связаны с модульной системой)
Типы данных и примитивы
boolean, byte, char, short, int, long, float, double, void
Прочее
new, this, super, instanceof, assert
Зарезервированные слова (не используются, но зарезервированы)
const и goto: Зарезервированы для совместимости с C/C++, но не используются в Java.
_ (подчеркивание): С Java 9 зарезервировано и не может использоваться как идентификатор.
3. Типы ключевых слов и их особенности
3.1. Модификаторы доступа
Описание:
Управляют видимостью классов, полей, методов и конструкторов.
Примеры:
public: Элемент доступен из любого места.
private Элемент доступен только внутри класса.
protected Элемент доступен в пакете и подклассах.
Пример:
public class Example {
private int value;
protected void method() {}
}
3.2. Модификаторы класса, метода и поля
Описание:
Определяют поведение или свойства элементов.
Примеры:
static Указывает, что элемент принадлежит классу, а не объекту.
final Запрещает изменение (переопределение или наследование).
abstract Указывает, что класс или метод не имеет реализации.
Пример:
public abstract class AbstractClass {
public static final int CONSTANT = 10;
abstract void doSomething();
}
3.3. Управление потоком
Описание:
Управляют выполнением программы (циклы, условия, прерывания).
Примеры:
if, else Условное выполнение.
for, while, do Циклы.
break, continue Прерывание или пропуск итераций.
Пример:
for (int i = 0; i < 5; i++) {
if (i == 3) break; // Прерывает цикл
}
#Java #для_новичков #beginner #java_syntax #keywords
👍4
3.4. Объявление типов
Описание:
Определяют пользовательские типы и их связи.
Примеры:
class Объявляет класс.
interface Объявляет интерфейс.
extends, implements Указывают наследование и реализацию.
Пример:
3.5. Управление исключениями
Описание:
Обеспечивают обработку ошибок.
Примеры:
try, catch, finally Обрабатывают исключения.
throw, throws Генерируют или объявляют исключения.
Пример:
3.6. Пакеты и модули
Описание:
Управляют структурой и модульностью кода.
Примеры:
package, import Определяют и импортируют пакеты.
module, exports (с Java 9) Управляют модульной системой.
Пример:
3.7. Типы данных и примитивы
Описание:
Определяют типы переменных и возвращаемых значений.
Примеры:
int, double, boolean Примитивные типы.
void Указывает отсутствие возвращаемого значения.
Пример:
3.8. Прочее
Описание:
Специальные операции и управление объектами.
Примеры:
new Создает объект.
this Ссылается на текущий объект.
instanceof Проверяет тип объекта.
Пример:
4. Ключевые слова и работа под капотом
4.1. Обработка компилятором
Синтаксический анализ: Компилятор распознает ключевые слова как токены во время парсинга исходного кода. Каждое ключевое слово соответствует определенной конструкции в байт-коде.
Проверка корректности: Компилятор проверяет правильность использования ключевых слов (например, private не может применяться к локальным переменным).
Байт-код: Ключевые слова преобразуются в инструкции байт-кода.
Например:
new преобразуется в инструкцию new для создания объекта.
if преобразуется в условные переходы (if_icmp).
Пример:
Байт-код (упрощенно):
4.2. Память и ключевые слова
Metaspace: Метаданные классов, включая информацию о модификаторах (public, static, final), хранятся в Metaspace. Ключевые слова сами по себе не занимают память в куче или стеке.
Объекты в куче: Ключевые слова, такие как new, создают объекты в куче. Например, new String("Hello") выделяет память для объекта String.
Локальные переменные: Ключевые слова, такие как int или boolean, определяют типы локальных переменных, которые хранятся в стеке вызовов.
Пример:
4.3. Оптимизация в JVM
JIT-компиляция: JIT-компилятор оптимизирует инструкции, связанные с ключевыми словами, встраивая их в машинный код. Например, if может быть оптимизирован в прямой переход.
Кэширование проверок: Проверки доступа (public, private) кэшируются JIT-компилятором, минимизируя накладные расходы.
Ключевые слова и производительность: Ключевые слова, такие как final или static, могут улучшать производительность, позволяя JVM выполнять оптимизации (например, инлайн-функции или статическое связывание).
4.4. Ошибки в памяти
Утечки памяти: Неправильное использование ключевых слов, таких как new, может привести к созданию объектов, которые не собираются сборщиком мусора.
Переполнение стека: Глубокая рекурсия с использованием return или циклов (for, while) может вызвать StackOverflowError.
Некорректное использование volatile: Неправильное применение volatile может нарушить видимость изменений в многопоточных приложениях.
Пример утечки памяти:
4.5. Рефлексия и ключевые слова
Ключевые слова, такие как public, private и final, доступны через API рефлексии (например, Field.getModifiers). Это позволяет фреймворкам, таким как Spring, анализировать структуру классов.
Неправильное использование модификаторов через рефлексию (например, setAccessible(true)) может нарушить инкапсуляцию.
#Java #для_новичков #beginner #java_syntax #keywords
Описание:
Определяют пользовательские типы и их связи.
Примеры:
class Объявляет класс.
interface Объявляет интерфейс.
extends, implements Указывают наследование и реализацию.
Пример:
public class MyClass implements MyInterface {
// Код
}
3.5. Управление исключениями
Описание:
Обеспечивают обработку ошибок.
Примеры:
try, catch, finally Обрабатывают исключения.
throw, throws Генерируют или объявляют исключения.
Пример:
try {
throw new Exception("Ошибка");
} catch (Exception e) {
// Обработка
}
3.6. Пакеты и модули
Описание:
Управляют структурой и модульностью кода.
Примеры:
package, import Определяют и импортируют пакеты.
module, exports (с Java 9) Управляют модульной системой.
Пример:
package com.example;
import java.util.List;
3.7. Типы данных и примитивы
Описание:
Определяют типы переменных и возвращаемых значений.
Примеры:
int, double, boolean Примитивные типы.
void Указывает отсутствие возвращаемого значения.
Пример:
int x = 10;
void doNothing() {}
3.8. Прочее
Описание:
Специальные операции и управление объектами.
Примеры:
new Создает объект.
this Ссылается на текущий объект.
instanceof Проверяет тип объекта.
Пример:
Object obj = new String("Hello");
if (obj instanceof String) {
// Проверка типа
}
4. Ключевые слова и работа под капотом
4.1. Обработка компилятором
Синтаксический анализ: Компилятор распознает ключевые слова как токены во время парсинга исходного кода. Каждое ключевое слово соответствует определенной конструкции в байт-коде.
Проверка корректности: Компилятор проверяет правильность использования ключевых слов (например, private не может применяться к локальным переменным).
Байт-код: Ключевые слова преобразуются в инструкции байт-кода.
Например:
new преобразуется в инструкцию new для создания объекта.
if преобразуется в условные переходы (if_icmp).
Пример:
if (x > 0) {
return x;
}
Байт-код (упрощенно):
iload x
ifgt label
ireturn
label: ireturn
4.2. Память и ключевые слова
Metaspace: Метаданные классов, включая информацию о модификаторах (public, static, final), хранятся в Metaspace. Ключевые слова сами по себе не занимают память в куче или стеке.
Объекты в куче: Ключевые слова, такие как new, создают объекты в куче. Например, new String("Hello") выделяет память для объекта String.
Локальные переменные: Ключевые слова, такие как int или boolean, определяют типы локальных переменных, которые хранятся в стеке вызовов.
Пример:
public class Example {
private int value = 10; // value хранится в куче
public void method() {
int local = 20; // local хранится в стеке
}
}
4.3. Оптимизация в JVM
JIT-компиляция: JIT-компилятор оптимизирует инструкции, связанные с ключевыми словами, встраивая их в машинный код. Например, if может быть оптимизирован в прямой переход.
Кэширование проверок: Проверки доступа (public, private) кэшируются JIT-компилятором, минимизируя накладные расходы.
Ключевые слова и производительность: Ключевые слова, такие как final или static, могут улучшать производительность, позволяя JVM выполнять оптимизации (например, инлайн-функции или статическое связывание).
4.4. Ошибки в памяти
Утечки памяти: Неправильное использование ключевых слов, таких как new, может привести к созданию объектов, которые не собираются сборщиком мусора.
Переполнение стека: Глубокая рекурсия с использованием return или циклов (for, while) может вызвать StackOverflowError.
Некорректное использование volatile: Неправильное применение volatile может нарушить видимость изменений в многопоточных приложениях.
Пример утечки памяти:
List<Object> list = new ArrayList<>();
while (true) {
list.add(new Object()); // Создает объекты без освобождения
}
4.5. Рефлексия и ключевые слова
Ключевые слова, такие как public, private и final, доступны через API рефлексии (например, Field.getModifiers). Это позволяет фреймворкам, таким как Spring, анализировать структуру классов.
Неправильное использование модификаторов через рефлексию (например, setAccessible(true)) может нарушить инкапсуляцию.
#Java #для_новичков #beginner #java_syntax #keywords
👍3
Что выведет код?
#Tasks
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
Варианты ответа:
Anonymous Quiz
14%
Parent160725
67%
Child160725
14%
Ошибка компиляции
5%
Ничего не выведет
👍3
Продолжаем выбирать темы для разбора и голосовать за рассмотрение предложенных! 🤓
Голосуем за тему к рассмотрению в эти выходные!
Предлагаем новую тему!
(можете предложить что-то из того, что предлагали на прошлой и позапрошлых неделях и что проиграло в голосовании!)
Не стесняемся!✌️
Голосуем за тему к рассмотрению в эти выходные!
Предлагаем новую тему!
(можете предложить что-то из того, что предлагали на прошлой и позапрошлых неделях и что проиграло в голосовании!)
Не стесняемся!
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
Рефлексия замедляет выполнение и требует осторожности из-за возможных ошибок доступа.
#собеседование
Ответ:
Пример:
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
Wikipedia
Велтистов, Евгений Серафимович
советский детский писатель-фантаст, журналист и сценарист
👍3
Установка Maven на Linux
Требования
JDK: Установленный JDK (версия 8 или выше).
Интернет: Для загрузки Maven.
Терминал: Доступ к командной строке.
Шаги установки
Проверка JDK:
Выполните:
Вывод должен показать версию Java. Если JDK отсутствует, установите, например, OpenJDK:
Скачивание Maven:
Перейдите на сайт Apache Maven.
Скачайте архив, например, apache-maven-3.9.9-bin.tar.gz:
Распакуйте в /opt:
Настройка переменных окружения:
Откройте файл /etc/environment или ~/.bashrc:
Добавьте строки:
Примените изменения:
Проверка установки:
Выполните:
Вывод:
Настройка локального репозитория:
По умолчанию используется ~/.m2/repository.
Опционально настройте ~/.m2/settings.xml для кастомного пути или зеркал:
Нюансы:
Убедитесь, что JAVA_HOME указывает на правильный JDK.
Для системного доступа установите Maven в /opt и настройте права: sudo chown -R $USER /opt/apache-maven-3.9.9.
Используйте mvnw для согласованности версий в проектах.
#Java #middle #Maven #Maven_install
Требования
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
Что выведет код?
#Tasks
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
Варианты ответа:
Anonymous Quiz
48%
"int", "Integer", "Object"
8%
"int", "Object", "Object"
8%
"int", "Integer", "Integer"
36%
"int", "Integer", ошибка компиляции
👍3