krosovok programs
224 subscribers
74 photos
13 videos
3 files
123 links
по всем вопросам —> @nefertitiNFT

soon...

https://t.me/krsCODE
Download Telegram
Что такое busy spin?

busy spin – это техника, которую программисты используют, чтобы заставить поток ожидать при определённом условии. В отличие от традиционных методов wait(), sleep() или yield(), которые подразумевают уступку процессорного времени, этот метод вместо уступки выполняет пустой цикл. Это необходимо, для того, чтобы сохранить кэш процессора, т.к. в многоядерных системах, существует вероятность, что приостановленный поток продолжит своё выполнение уже на другом ядре, а это повлечет за собой перестройку состояния процессорного кэша, которая является достаточно затратной процедурой.
Я хочу показать вам разные фишки и техники, которые можно использовать при написании кода. Не буду говорить, что вот это – "правильно", а вот это – "нет". Что-то работает лучше, что-то хуже, всё зависит от ситуации. Главное, что я хочу донести – это то, что так делать можно. А уж что именно применять – решайте сами, исходя из ваших задач и предпочтений.


📱 krosovok programs
Please open Telegram to view this post
VIEW IN TELEGRAM
322
🖥 те кто репостили мой конкурс, вот вам гугл таблица - клик
кого забыл добавить отпишите в лс, если так получилось крайне извиняюсь, по этому и прошу проверить, но вроде всех кто в лс кидал добавил

ps: хочешь попасть в список? - репости и кидай доки в лс - @krosov_ok (от 100 подписчиков)
Please open Telegram to view this post
VIEW IN TELEGRAM
3221
«выбираем как будем выбирать победителя»

⚪️ есть 2 варианта, либо колесо фортуны, либо рандомайзер (ну там где слова)

весь список участников 🤍 клик
ps: хочешь попасть в список?
- репости и кидай доки в лс -
@krosov_ok (от 100 подписчиков)
Please open Telegram to view this post
VIEW IN TELEGRAM
111
Чем полезны неизменяемые объекты?

Неизменяемость (immutability) помогает облегчить написание многопоточного кода. Неизменяемый объект может быть использован без какой-либо синхронизации. К сожалению, в Java нет аннотации @Immutable, которая делает объект неизменяемым, для этого разработчикам нужно самим создавать класс с необходимыми характеристиками. Для этого необходимо следовать некоторым общим принципам: инициализация всех полей только в конструкторе, отсутствие методов setX() вносящих изменения в поля класса, отсутствие утечек ссылки, организация отдельного хранилища копий изменяемых объектов и т.д.
Я хочу показать вам разные фишки и техники, которые можно использовать при написании кода. Не буду говорить, что вот это – "правильно", а вот это – "нет". Что-то работает лучше, что-то хуже, всё зависит от ситуации. Главное, что я хочу донести – это то, что так делать можно. А уж что именно применять – решайте сами, исходя из ваших задач и предпочтений.


📱 krosovok programs
Please open Telegram to view this post
VIEW IN TELEGRAM
32211
public class KrosovokPrograms {
static int x = 10;

public static void main(String[] args) {
int x = 5;
{
int y = x + 2;
x = y * 2;
System.out.print(x + " ");
}
System.out.print(x);
}
}

что выведет в консоль?
111
варианты ответов:
Final Results
23%
1) 10 5
19%
2) 14 5
35%
3) 14 14
23%
4) 10 10
111
ответ №3 - "14 14"
стоит продолжать такие задачки? с каждым разом будет все сложнее 😘
Please open Telegram to view this post
VIEW IN TELEGRAM
721
оценку
https://guns.lol/krosovok
не по теме по этому офнул звук уведомления
2221
Что такое Semaphore?

Semaphore – это тип синхронизатора: семафор со счётчиком, реализующий шаблон синхронизации Семафор. Доступ управляется с помощью счётчика: изначальное значение счётчика задаётся в конструкторе при создании синхронизатора, когда поток заходит в заданный блок кода, то значение счётчика уменьшается на единицу, когда поток его покидает, то увеличивается. Если значение счётчика равно нулю, то текущий поток блокируется, пока кто-нибудь не выйдет из защищаемого блока. Semaphore используется для защиты дорогих ресурсов, которые доступны в ограниченном количестве, например подключение к базе данных в пуле.
Я хочу показать вам разные фишки и техники, которые можно использовать при написании кода. Не буду говорить, что вот это – "правильно", а вот это – "нет". Что-то работает лучше, что-то хуже, всё зависит от ситуации. Главное, что я хочу донести – это то, что так делать можно. А уж что именно применять – решайте сами, исходя из ваших задач и предпочтений.


📱 krosovok programs
Please open Telegram to view this post
VIEW IN TELEGRAM
3221
и так, ваши ставки кто победил?
отписать сразу победителю, или сначала объявить победителя?
Media is too big
VIEW IN TELEGRAM
Побеждает: ☤ Жизнь Ka4aro⁴²

сейчас отпишу ему, если согласится на рерол, делаем рерол

будет ли он легендой, дав другим 2 шанс, это мы сейчас узнаем
😇

500 рублей я себе в любом случае не оставлю, хоть все согласятся на рерол
Please open Telegram to view this post
VIEW IN TELEGRAM
111
нежданчик
исключаю из списка качаро, делаю рерол


+реп ему

но -реп, что мне опять обс включать, ахахахах
1111
Media is too big
VIEW IN TELEGRAM
Побеждает: Конкурсы HolyWorld

сейчас отпишу ему, если согласится на рерол, делаем рерол

будет ли он легендой, дав другим 2 шанс, это мы сейчас узнаем😇
ps: ka4aro легенда, он дал всем 2 шанс, благодирите его


щас только осталось найти владельца, или напиши мне в лс -@krosov_ok
если я не найду, или не отпишет в течение 24 часов - рерол
но я думаю найду, если есть в списке, значит писал мне
Please open Telegram to view this post
VIEW IN TELEGRAM
111
все, -500 рублей

те кто участвовали, и не выиграли, без обид, и так повезло, что качаро сделал рерол
всем спасибо за участие, ждем результаты на 3 премки

🪴🪴🪴🪴🪴🪴🪴🪴
🔖хочешь пробрести товар? тебе сюда:

👩‍💻 @krosovokBuyBot

🔖есть вопросы? тебе сюда:

👩‍💻 @krosovokHelpBot
Please open Telegram to view this post
VIEW IN TELEGRAM
2221
сегодня будет очень много текста 🥶
постарался все расписать и объяснить, если вам такое не зайдет, будет что то по легче
но я думаю вам зайдет, и вы все поймете, там примеры из жизни где применяется, и в коде, +примеры как делать и что получится
⌛️12:00 мск как обычно (в это время всегда пост)
Please open Telegram to view this post
VIEW IN TELEGRAM
111
Что такое Абстракция?

Как вы правильно заметили, абстракция – это процесс выделения существенных характеристик объекта или системы, игнорируя при этом детали реализации. Это позволяет нам упростить сложность, фокусируясь на том, что делает объект, а не на том, как он это делает.

Примеры Абстракции в Реальной Жизни:

📺 Телевизор: Вам не нужно знать, как работает внутренняя электроника телевизора, чтобы использовать его. У вас есть пульт дистанционного управления с кнопками для включения/выключения, изменения громкости и переключения каналов. Это абстракция - вы взаимодействуете с телевизором через простой интерфейс, скрывающий сложность реализации.
🏧 Банкомат (ATM): Вы вставляете карту, вводите PIN-код и выбираете операцию (например, снятие наличных). Вам не нужно знать, как банкомат связывается с вашим банком, как проверяется ваш баланс или как выдаются деньги. Это все скрыто от вас.
🖥 Веб-браузер: Вы вводите URL-адрес и видите веб-страницу. Браузер выполняет множество действий (DNS-запросы, установление TCP-соединения, загрузка HTML, CSS и JavaScript, рендеринг страницы), но вам не нужно об этом беспокоиться.

👩‍💻 Абстракция в Java:

В Java абстракция достигается в основном с помощью:

1. Абстрактных классов и методов: Абстрактные классы не могут быть инстанцированы (нельзя создать объект напрямую). Они предназначены для того, чтобы быть унаследованными. Абстрактные методы не имеют реализации в абстрактном классе. Подклассы должны предоставить реализацию для всех абстрактных методов.
2. Интерфейсов: Интерфейсы определяют контракт, которому должны следовать классы, реализующие этот интерфейс. Все методы в интерфейсе по умолчанию являются абстрактными (до Java 8). Интерфейсы обеспечивают множественное наследование типов (класс может реализовывать несколько интерфейсов).


🤍 пример кода. смотрите приложеные фото

Объяснение кода:

Shape (Абстрактный класс):
Определяет общие характеристики для всех фигур (цвет).
Содержит абстрактный метод calculateArea(), который должен быть реализован в подклассах. Это заставляет каждый подкласс (Circle, Rectangle) предоставлять свою собственную логику расчета площади.
Содержит неабстрактный метод getColor(), который может быть использован подклассами как есть или переопределен (хотя в данном примере он не переопределяется).
`Circle`, `Rectangle`, `Square` (Классы):
Являются конкретными классами, которые наследуют Shape.
Реализуют абстрактный метод calculateArea(), предоставляя специфическую логику для расчета площади каждой фигуры.
`Drawable` (Интерфейс):
Определяет контракт для всех объектов, которые могут быть нарисованы.
Содержит абстрактный метод draw().
`Square` (Класс, реализующий интерфейс):
Реализует интерфейс Drawable, предоставляя реализацию метода draw().

Преимущества Абстракции:

Упрощение: Уменьшает сложность системы, скрывая ненужные детали.
Модульность: Разбивает систему на отдельные, независимые модули.
Гибкость: Позволяет легко изменять реализацию, не затрагивая код, который использует абстракцию.
Переиспользование кода: Общие характеристики выносятся в абстрактные классы, что позволяет избежать дублирования кода.

Когда использовать Абстрактные классы и Интерфейсы?

Абстрактные классы: Используйте, когда есть общие характеристики и поведение, которые должны быть у всех подклассов. Также, если вы хотите предоставить частичную реализацию (не все методы абстрактные). Абстрактные классы могут содержать поля (переменные экземпляра).
Интерфейсы: Используйте, когда вы хотите определить контракт, которому должны следовать классы. Интерфейсы подходят для определения "возможностей" (например, Serializable, Comparable, Runnable). Интерфейсы не могут содержать состояние (поля экземпляра). До Java 8, интерфейсы не могли содержать реализацию (только абстрактные методы). Начиная с Java 8, интерфейсы могут содержать default методы (с реализацией) и статические методы.

📱 krosovok programs
Please open Telegram to view this post
VIEW IN TELEGRAM
322