*Вашему вниманию предлагается новая подборка Java-новостей от InfoQ: 😃
*✔️ Стал доступен билд № 31 для JDK 20 (ранний доступ)
✔️ Стал доступен билд № 5 для JDK 21 (ранний доступ)
✔️ Выпущен новый релиз Spring Framework, версии 6.0.4
и д.р.
Приятного чтения!
Читать статью
*✔️ Стал доступен билд № 31 для JDK 20 (ранний доступ)
✔️ Стал доступен билд № 5 для JDK 21 (ранний доступ)
✔️ Выпущен новый релиз Spring Framework, версии 6.0.4
и д.р.
Приятного чтения!
Читать статью
Новости Java 52
• Вышел Kotlin 1.8.0
• Java Annotated Monthly за январь
• Maven 3.8.7
• Mockito 5.0.0
Подробности: https://minijug.ru/java_news_52.html
• Вышел Kotlin 1.8.0
• Java Annotated Monthly за январь
• Maven 3.8.7
• Mockito 5.0.0
Подробности: https://minijug.ru/java_news_52.html
Каждой задаче — по языку
Я вижу как минимум два способа понимать это высказывание.
Первый (назовём его горизонтальным) предполагает, что для каждой прикладной области есть наиболее подходящий язык программирования. Например, для серверной разработки — Java, для яблок — Swift, для Android — Kotlin, для фронта — TypeScript, для системщины — Си.
Второй (назовём вертикальным) делит языки на прикладные и низкоуровневые. Например, сервер — Kotlin-JVM, Android — Kotlin-JVM/Android, яблоки — Kotlin-Native, фронт — Kotlin-JVM. Написание ОС и драйверов — Rust.
Или, например, сервер и Android — Clojure, яблоки (в React-Native) и фронт — ClojureScript, Android — Clojure.
Или сервер — Haskell, Android — Haskell (NDK или Frege), iOS и фронт — PureScript.
Мне кажется, что правильный способ понимать это высказывание — второй, т. к. нет объективных причин для каждой платформы (прикладной сферы) заводить отдельный язык.
Я вижу как минимум два способа понимать это высказывание.
Первый (назовём его горизонтальным) предполагает, что для каждой прикладной области есть наиболее подходящий язык программирования. Например, для серверной разработки — Java, для яблок — Swift, для Android — Kotlin, для фронта — TypeScript, для системщины — Си.
Второй (назовём вертикальным) делит языки на прикладные и низкоуровневые. Например, сервер — Kotlin-JVM, Android — Kotlin-JVM/Android, яблоки — Kotlin-Native, фронт — Kotlin-JVM. Написание ОС и драйверов — Rust.
Или, например, сервер и Android — Clojure, яблоки (в React-Native) и фронт — ClojureScript, Android — Clojure.
Или сервер — Haskell, Android — Haskell (NDK или Frege), iOS и фронт — PureScript.
Мне кажется, что правильный способ понимать это высказывание — второй, т. к. нет объективных причин для каждой платформы (прикладной сферы) заводить отдельный язык.
👍6👎3
Ночная задача: реализовать функцию
Какое решение самое простое? Компактное? Эффективное? Зрелищное?
Напишите ваши в комментах.
factorial(n) -> long
.Какое решение самое простое? Компактное? Эффективное? Зрелищное?
Напишите ваши в комментах.
👍4
fun factorial(n: Int): Long =
(2..n).fold(1L, Long::times)
💩3👍2
Полраза в жизни встречал
Ожидание:
отрицание, гнев, торг, пост в канал, кастомный флоу.
ViewModel
+ MutableStateFlow
. Попросили объяснить, как использовать. Чем дальше в лес, тем меньше понимания, как и зачем этим вообще пользоваться и под какими веществами это придумали 🤦Ожидание:
val vm by viewModels(factory = { MyCoolViewModel(args) })
Реальность:val vm: MyCoolViewModel by viewModels(factoryProducer = {Ожидание:
object : ViewModelProvider.Factory {
override fun <T : ViewModel> create(...): T =
MyCoolViewModel(args) as T
}
})
val stateSmth = savedStateHandle.getMutableStateFlow("smth", defaultSmth)
Реальность:отрицание, гнев, торг, пост в канал, кастомный флоу.
💩4😁1
#вопросы_с_собеседований
Как можно вывести на экран уникальные квадраты чисел используя метод map()?
Для этого можно использовать Stream. Ответ на картинке.
Как можно вывести на экран уникальные квадраты чисел используя метод map()?
Для этого можно использовать Stream. Ответ на картинке.
🔥6👎1
Ссылки на методы в Java
Лямбды в Java полезны во многих направлениях. Лямбда-выражения можно использовать для более простых задач, а лямбда-утверждения — для более сложных. Лямбды могут вызывать другие методы для текущего объекта (this) и объектов, которые находятся в области видимости, таких как текущий элемент итерации и конечная локальная переменная за пределами лямбды. Лямбду всегда можно упростить, поместив код в другой метод.
Читать статью
Лямбды в Java полезны во многих направлениях. Лямбда-выражения можно использовать для более простых задач, а лямбда-утверждения — для более сложных. Лямбды могут вызывать другие методы для текущего объекта (this) и объектов, которые находятся в области видимости, таких как текущий элемент итерации и конечная локальная переменная за пределами лямбды. Лямбду всегда можно упростить, поместив код в другой метод.
Читать статью
Telegraph
Ссылки на методы в Java
Лямбды — гибкие и анонимные фрагменты кода Лямбды в Java полезны во многих направлениях. Лямбда-выражения можно использовать для более простых задач, а лямбда-утверждения — для более сложных. Лямбды могут вызывать другие методы для текущего объекта (this)…
👍2
Для чего используются ключевые слова volatile, synchronized, transient, native?
вынуждает потоки отключить оптимизацию доступа и использовать единственный экземпляр переменной. Если переменная примитивного типа – этого будет достаточно для обеспечения потокобезопасности. Если же переменная является ссылкой на объект – синхронизировано будет исключительно значение этой ссылки. Все данные, содержащиеся в объекте, синхронизированы не будут!
— это зарезервированное слово позволяет добиваться синхронизации в помеченных им методах или блоках кода.
Ключевые слова и к многопоточности никакого отношения не имеют, первое используется для указания полей класса, которые не нужно сериализовать, а второе сигнализирует о том, что метод реализован в платформо-зависимом коде.
#вопросы_с_собеседований
volatile
synchronized
Ключевые слова
transient
native
👍11
Друзья, мы создали канал с вакансиями по Java.
В чем там фишка?
— В каждой вакансии есть ссылка на телеграм аккаунт HR-менеджера или технического специалиста этой вакансии.
Вы сразу же можете заслать в телеге ваше резюме или задать вопрос по вакансии.
Подписывайтесь и ищите работу: @javaoffers
В чем там фишка?
— В каждой вакансии есть ссылка на телеграм аккаунт HR-менеджера или технического специалиста этой вакансии.
Вы сразу же можете заслать в телеге ваше резюме или задать вопрос по вакансии.
Подписывайтесь и ищите работу: @javaoffers
Telegram
Java Вакансии
Вакансии по Java.
Все вакансии с контактами из телеграма - тоесть вы сразу можете отправить резюме HR или техническому менеджеру компании.
реклама: @viktorreh
Все вакансии с контактами из телеграма - тоесть вы сразу можете отправить резюме HR или техническому менеджеру компании.
реклама: @viktorreh
👍1
Что такое аннотации в Java?
Anonymous Quiz
9%
предоставляют рабочую оболочку для дистанционного управлениям
84%
своего рода метатеги, которые добавляются к коду
2%
один из способов создания приложений
6%
не знаю
👍4
Что такое FutureTask?
Anonymous Quiz
76%
отменяемое асинхронное вычисление в параллельном Java приложении
3%
специальный вид переменных
8%
основной интерфейс, который отвечает за связь с базой данных
13%
не знаю
🤮15👎7👍2
Что такое «конструктор по умолчанию»?
Если у какого-либо класса не определить конструктор, то компилятор сгенерирует конструктор без аргументов - так называемый «конструктор по умолчанию».
public class ClassName() {}
Если у класса уже определен какой-либо конструктор, то конструктор по умолчанию создан не будет и, если он необходим, его нужно описывать явно.
#вопросы_с_собеседований
public class ClassName() {}
Если у класса уже определен какой-либо конструктор, то конструктор по умолчанию создан не будет и, если он необходим, его нужно описывать явно.
👍3