Что такое механизм try-with-resources?
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.
Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.
Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.
Forwarded from Грыжа Zako
This media is not supported in your browser
VIEW IN TELEGRAM
В России много серой старой застройки, которая своим видом портит настроение. С этим можно свыкнуться, ведь можно представить себе десятки причин, почему это так и почему так медленно эти дома приводятся в адекватный вид.
Но есть вещь, которая мне непонятна. Я не могу найти ни одной причины, почему так происходит - мусор.
Каждую весну, когда сходит снег, город начинает быть похожим на огромную свалку. Буквально тонны мусора выплывают из под снега. Откуда, черт возьми, он берется? Вы хоть раз в жизни выбрасывали мусор на улицу? Я - нет. Я уверен, что каждому в детстве прививали простейшие правила: уважай труд, не мусори. Рассказывали про существование урн и прочее.
В городских пабликах люди сильно жалуются на местную власть: не убирают, город снова в мусоре. Люди, вы ебанулись? Ну чисто же не там, где убирают... Чисто там, где не мусорят.
Справедливости ради, я каждый день вижу дворников, которые таскают этот мусор.
Никогда бы не подумал, что я буду писать о такой простой вещи. Я попросту не понимаю, что в голове у людей, которые могут настолько сильно за зиму засрать двор.
Срем там, где живём. Варварское общество.
Но есть вещь, которая мне непонятна. Я не могу найти ни одной причины, почему так происходит - мусор.
Каждую весну, когда сходит снег, город начинает быть похожим на огромную свалку. Буквально тонны мусора выплывают из под снега. Откуда, черт возьми, он берется? Вы хоть раз в жизни выбрасывали мусор на улицу? Я - нет. Я уверен, что каждому в детстве прививали простейшие правила: уважай труд, не мусори. Рассказывали про существование урн и прочее.
В городских пабликах люди сильно жалуются на местную власть: не убирают, город снова в мусоре. Люди, вы ебанулись? Ну чисто же не там, где убирают... Чисто там, где не мусорят.
Справедливости ради, я каждый день вижу дворников, которые таскают этот мусор.
Никогда бы не подумал, что я буду писать о такой простой вещи. Я попросту не понимаю, что в голове у людей, которые могут настолько сильно за зиму засрать двор.
Срем там, где живём. Варварское общество.
если вам зайдет такой фармат, будет намного чаще, начнем с простого, для тех кто не знает как создать проект и настроить среду разработки, пишите в коменты, если будет нужно, распишу все подробнее, как настроить, с чего начать и тп
❤️🔥 https://telegra.ph/1-urok-ot-krosovka-po-bukkit-api-04-03
если вам понравится подобное, будет разбирать даже платные плагины (сначала с легкого)
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
1 урок от кросовка по bukkit api
1. Открываем IntelliJ IDEA и создаём новый проект. Видим начальный класс: package ru.krosovok.krosovokplayerjoin; import org.bukkit.plugin.java.JavaPlugin; public final class KrosovokPlayerJoin extends JavaPlugin { @Override public void onEnable() { //…
Sorted set
SortedSet — это интерфейс в Java Collection Framework, который предоставляет упорядочение элементов в множестве. Элементы упорядочиваются с помощью их естественного порядка или с помощью компаратора, который обычно предоставляется при создании отсортированного множества.
SortedSet имеет несколько дополнительных операций, которые позволяют использовать упорядочение элементов:
— first() и last() возвращают первый и последний элементы в множестве соответственно.
— headSet(), tailSet() и subSet() возвращают подмножества элементов, которые находятся до, после или между заданными элементами соответственно.
В этом примере мы создаем TreeSet (класс, который реализует SortedSet) и добавляем в него несколько строк. Поскольку строки реализуют интерфейс Comparable, они упорядочиваются в алфавитном порядке. Затем мы используем различные методы SortedSet для получения первого и последнего элементов, а также подмножеств элементов.
donat | буст | вопросики | магазин | тех.поддержка | примеры кода
📱 krosovok programs
SortedSet — это интерфейс в Java Collection Framework, который предоставляет упорядочение элементов в множестве. Элементы упорядочиваются с помощью их естественного порядка или с помощью компаратора, который обычно предоставляется при создании отсортированного множества.
SortedSet имеет несколько дополнительных операций, которые позволяют использовать упорядочение элементов:
— first() и last() возвращают первый и последний элементы в множестве соответственно.
— headSet(), tailSet() и subSet() возвращают подмножества элементов, которые находятся до, после или между заданными элементами соответственно.
В этом примере мы создаем TreeSet (класс, который реализует SortedSet) и добавляем в него несколько строк. Поскольку строки реализуют интерфейс Comparable, они упорядочиваются в алфавитном порядке. Затем мы используем различные методы SortedSet для получения первого и последнего элементов, а также подмножеств элементов.
🔗 полезные ссылки:
donat | буст | вопросики | магазин | тех.поддержка | примеры кода
Please open Telegram to view this post
VIEW IN TELEGRAM
напиши какой формат вам нравится, и какой вы бы хотели видеть ❓
⭐️ планируется кое что интересное, и если будут интересные предложение в комментариях, добавлю и их
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроено под капотом LinkedHashMap?
LinkedHashMap — это реализация интерфейса Map, которая сохраняет порядок добавления элементов. В отличие от обычного HashMap, где элементы могут быть расположены случайным образом, LinkedHashMap поддерживает последовательность вставки или порядок доступа. Это достигается благодаря использованию двусвязного списка, который связывает все элементы карты.
Основой LinkedHashMap является та же хэш-таблица, что и в HashMap, но с дополнительной структурой двусвязного списка для сохранения порядка элементов:
⭐️ Каждая запись (entry) в LinkedHashMap содержит ссылки на предыдущий и следующий элементы. Это позволяет поддерживать порядок добавления или порядок последнего доступа.
⭐️ Сначала выполняется хэширование ключей для быстрой вставки и поиска, как в HashMap, а уже потом запись связывается в список.
⭐️ Вставка: Добавление новых элементов выполняется за O(1), поскольку элементы добавляются в конец двусвязного списка, а хэш-таблица используется для поиска свободной позиции.
⭐️ Удаление: Удаление элемента требует корректировки ссылок в двусвязном списке, что увеличивает накладные расходы, но также выполняется за O(1).
⭐️ Поиск: Операция поиска по ключу происходит с использованием хэш-таблицы и выполняется за O(1), как и в HashMap.
⭐️ Множественные коллизии: в худшем случае все операции будут выполняться с O(n), если допустить множественные коллизии.
Каждая запись LinkedHashMap содержит дополнительные ссылки на предыдущий и следующий элементы, что увеличивает потребление памяти по сравнению с HashMap. Однако это оправдано, если важен порядок элементов.
- Сохранение порядка вставки: LinkedHashMap гарантирует, что элементы будут извлекаться в том порядке, в котором они были добавлены.
- Порядок доступа: Можно настроить LinkedHashMap на удаление самых старых элементов, что полезно для кэшей, где используется политика LRU (Least Recently Used).
- Предсказуемость итераций: В отличие от HashMap, где порядок элементов может изменяться, LinkedHashMap всегда сохраняет стабильный порядок.
- Более высокое потребление памяти: Дополнительные ссылки на предыдущие и следующие элементы увеличивают память на каждую запись.
- Скорость: LinkedHashMap немного медленнее HashMap из-за поддержания порядка элементов.
краткая информация | Пример
📱 krosovok programs
LinkedHashMap — это реализация интерфейса Map, которая сохраняет порядок добавления элементов. В отличие от обычного HashMap, где элементы могут быть расположены случайным образом, LinkedHashMap поддерживает последовательность вставки или порядок доступа. Это достигается благодаря использованию двусвязного списка, который связывает все элементы карты.
⚙️ Структура LinkedHashMap
Основой LinkedHashMap является та же хэш-таблица, что и в HashMap, но с дополнительной структурой двусвязного списка для сохранения порядка элементов:
🔜 Производительность
🧠 Использование памяти
Каждая запись LinkedHashMap содержит дополнительные ссылки на предыдущий и следующий элементы, что увеличивает потребление памяти по сравнению с HashMap. Однако это оправдано, если важен порядок элементов.
💕 Преимущества:
- Сохранение порядка вставки: LinkedHashMap гарантирует, что элементы будут извлекаться в том порядке, в котором они были добавлены.
- Порядок доступа: Можно настроить LinkedHashMap на удаление самых старых элементов, что полезно для кэшей, где используется политика LRU (Least Recently Used).
- Предсказуемость итераций: В отличие от HashMap, где порядок элементов может изменяться, LinkedHashMap всегда сохраняет стабильный порядок.
🚫 Недостатки:
- Более высокое потребление памяти: Дополнительные ссылки на предыдущие и следующие элементы увеличивают память на каждую запись.
- Скорость: LinkedHashMap немного медленнее HashMap из-за поддержания порядка элементов.
краткая информация | Пример
Please open Telegram to view this post
VIEW IN TELEGRAM
скоро сведут еще 1 фит с соником, ждем, слушаем пока что это
https://t.me/krosovok_on_the_bit/193
https://t.me/krosovok_on_the_bit/193
Telegram
krosov_ok👟
свага имеется?
DoubleAdder
DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.
DoubleAdder оптимизирован для многопоточных приложений, когда нужно подсчитать сумму или другое агрегатное значение из большого числа потоков.
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.
DoubleAdder оптимизирован для многопоточных приложений, когда нужно подсчитать сумму или другое агрегатное значение из большого числа потоков.
⭐️ Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
Please open Telegram to view this post
VIEW IN TELEGRAM
как по мне хорошо получилось, осталось свести только
оценку в коменты давайте
https://t.me/krosovok_on_the_bit/200
оценку в коменты давайте
https://t.me/krosovok_on_the_bit/200
Telegram
krosov_ok👟
Контейнер Optional
Optional — это контейнер, который может содержать какое-то значение или не содержать ничего.
Он используется для обозначения отсутствия значения вместо null. Это позволяет избежать ошибок NullPointerException.
Optional появился в Java 8. Он представлен классом java.util.Optional.
Чтобы создать экземпляр Optional, используются статические методы:
— empty() для пустого Optional.
— of() для Optional с заданным значением.
Для получения значения из Optional используются методы get(), или orElse() с указанием значения по умолчанию. Также есть методы фильтрации значений, например filter(), map() и flatMap().
📱 krosovok programs
Optional — это контейнер, который может содержать какое-то значение или не содержать ничего.
Он используется для обозначения отсутствия значения вместо null. Это позволяет избежать ошибок NullPointerException.
Optional появился в Java 8. Он представлен классом java.util.Optional.
Чтобы создать экземпляр Optional, используются статические методы:
— empty() для пустого Optional.
— of() для Optional с заданным значением.
Для получения значения из Optional используются методы get(), или orElse() с указанием значения по умолчанию. Также есть методы фильтрации значений, например filter(), map() и flatMap().
Please open Telegram to view this post
VIEW IN TELEGRAM
10 2 1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
krosovok programs
52к символов в школ проекте - ☠️ ☠️ ⚰️ 52к символов в IntelliJ IDEA - 🌹 🌷 😘
сегодня сдача, завтра посты в обычном режиме
1
Тип Optional
Тип Optional используется для представления возможности отсутствия значения. Он обертывает другой тип данных и может содержать либо значение этого типа, либо быть пустым (null).
Этот код создает Optional объект, который может содержать строку. Если строка доступна, она будет возвращена; в противном случае будет возвращено значение «Default Value».
Использование Optional способствует более чистому и безопасному коду при работе с возможно отсутствующими значениями.
📱 krosovok programs
Тип Optional используется для представления возможности отсутствия значения. Он обертывает другой тип данных и может содержать либо значение этого типа, либо быть пустым (null).
Этот код создает Optional объект, который может содержать строку. Если строка доступна, она будет возвращена; в противном случае будет возвращено значение «Default Value».
Использование Optional способствует более чистому и безопасному коду при работе с возможно отсутствующими значениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
3 4 3 2 1
послушал я новый альбом фараона (10:13), ну что сказать, 50% альбома грязный звук, в плане сведения, очень странный альбом
много треков где он на продакшене, как эксперимент не плохо,
треки звучат живо, но..
везде звучание отличается, порядок не совпадает, будто набор песен собрали и все, нет прогрессии в общем
омега,
добро пожаловать на луну,
бензобак,
чисто символически
пост не по теме, буду разнообразить контент и музыки и джавы любимой конечно же
разборы альбомчиков и всё такое будут под тегом
#мнениекросовка
много треков где он на продакшене, как эксперимент не плохо,
треки звучат живо, но..
везде звучание отличается, порядок не совпадает, будто набор песен собрали и все, нет прогрессии в общем
⭐️ мой топ с альбома:
омега,
добро пожаловать на луну,
бензобак,
чисто символически
разборы альбомчиков и всё такое будут под тегом
#мнениекросовка
Please open Telegram to view this post
VIEW IN TELEGRAM
часто задаваемые вопросы, которые мне задают
🔗 открыть с помощью telegra.ph
🔗 открыть с помощью гугл документа
🔗 открыть с помощью telegra.ph
🔗 открыть с помощью гугл документа
🔗 https://hub.spigotmc.org/javadocs/bukkit/
Список вопросов - ответов будет пополнятся, формат ответов сделаю получше, чем ссылки скринов через телеграф
----
сделано, чтоб каждому не пересылать одно и тоже, а просто кидать ссылку, спасибо за понимание
⭐️ как преобразовать gradle проект в maven?
⭐️ не работает кнопка запуска
⭐️ частые вопросы, по типу как понять что за setFoodLevel
Bukkit API Packages
Список вопросов - ответов будет пополнятся, формат ответов сделаю получше, чем ссылки скринов через телеграф
----
сделано, чтоб каждому не пересылать одно и тоже, а просто кидать ссылку, спасибо за понимание
🔞 По всем вопросам —> @krosovokHelpBot
Please open Telegram to view this post
VIEW IN TELEGRAM
Selector
Класс Selector используется для организации многоканального неблокирующего ввода-вывода.
Основная идея в том, что Selector позволяет одному потоку следить за состоянием множества каналов (сокетов, файловых каналов) и обрабатывать их события (готовность к чтению/записи).
Возможности Selector:
— Регистрация множества каналов в Selector для мониторинга.
— Проверка готовности зарегистрированных каналов к операциям чтения, записи.
— Извлечение готовых каналов и выполнение операций с ними.
— Отмена регистрации каналов в Selector.
Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
📱 krosovok programs
Класс Selector используется для организации многоканального неблокирующего ввода-вывода.
Основная идея в том, что Selector позволяет одному потоку следить за состоянием множества каналов (сокетов, файловых каналов) и обрабатывать их события (готовность к чтению/записи).
Возможности Selector:
— Регистрация множества каналов в Selector для мониторинга.
— Проверка готовности зарегистрированных каналов к операциям чтения, записи.
— Извлечение готовых каналов и выполнение операций с ними.
— Отмена регистрации каналов в Selector.
Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
Please open Telegram to view this post
VIEW IN TELEGRAM