Java. Enum на примерах.
18:34
Java. Fluent Interface.
6:53
2 жыл бұрын
Пікірлер
@MrSanzhar73
@MrSanzhar73 4 күн бұрын
Good explanation!
@ramazanabdullaev6132
@ramazanabdullaev6132 4 күн бұрын
А разве то, что idea не подсвечивает подмену массива или инициализацию массивом с недостаточной длиной это не статический анализатор кода? Для компиляции же отдельная кнопка.
@luckyshaqqq
@luckyshaqqq 5 күн бұрын
Итоговая длина массива не может превышать 2^32; 10х20 прокатит, а очень большие нет. Нужна проверка длинны height*length <= Integer.MAX_VALUE. Еще можно передать отрицательные числа в get/set. Нужны проверки.
@rndofpipowe
@rndofpipowe 5 күн бұрын
Хм, если всё так просто, то почему этого чуда до сих пор нет в стандартной библиотеке? Или есть, но я не знаю? А индексатор приделать можно, ну чтобы что-то вроде someData[i,j] = 1024; написать?
@arhitutorials
@arhitutorials 5 күн бұрын
Потому что это никому не нужно) Я вот сам даже не помню, когда мне в последний раз был нужен двумерный массив.
@sleeply4cat
@sleeply4cat 5 күн бұрын
потрясающее открытие.
@romawar1869
@romawar1869 6 күн бұрын
потрясающе , кажется что уже все , но ты умеешь удивить новой темой , а главное заинтересовать , на одном дыхании смотрю
@Constantine1975
@Constantine1975 6 күн бұрын
Спасибо Сергей! Я даже как-то не задумывался о том как хранятся многомерные массивы в памяти :)
@vlatterran
@vlatterran 6 күн бұрын
Как будто бы делать обёртку над одномерным массивом и утверждать что это "настоящий" двумерный массив - странно Если уж докапываться до терминов, то "настоящие" двумерные массивы в линейную память вы не сможете положить)
@arhitutorials
@arhitutorials 6 күн бұрын
@@vlatterran почему не смогу положить? Я +- воспроизвёл как устроены 2d массивы в языках типа c, pascal, fortran, и прочих. Что в этом странного?
@vlatterran
@vlatterran 6 күн бұрын
@arhitutorials с точки зрения памяти у вас одномерный массив, и то что вы интерпретируете индексы немного по другому не делает его по настоящему двумерным Если уж говорить про оптимизации типа "считавание сразу нескольких ячеек в кэш", то сможете ле вы проинтегрироваться по колонкам эффективно в такой реализации? Насколько я понимаю - нет. Потому что у вас ячейка (0, 0) и (1, 0) не находится рядом в памяти
@arhitutorials
@arhitutorials 6 күн бұрын
@@vlatterran Что Вы понимаете под "по настоящему двумерным"? Никаких двумерных массивов в компьютере не существует, есть только память, организованная линейно. А все остальное лишь абстракция, которую мы сверху добавляем, в зависимости от того, что хотим в результате получить. Теперь про оптимизацию. Пусть стоит задача увеличить значение каждой ячейки моего 2d массива на 1. Так как у меня там линейный массив под капотом, я могу сделать специальную реализацию, которая просто пройдет последовательно по всем элементам одномерного массива и добавит везде 1. Возможность работать с двумерным массивом как с одномерным имеет свои конкретные преимущества.
@vlatterran
@vlatterran 6 күн бұрын
@@arhitutorials я об этом и говорю, что двумерный массив на основе одномерного не более настоящий чем массив массивов То что в каких-то аспектах одномерный массив эффективнее чем массив массивов я не спорю
@den9261
@den9261 6 күн бұрын
спасибо, было интересно .....поздравляю вас с новым подписчиком )
@EdwardNorthwind
@EdwardNorthwind 6 күн бұрын
Массивы? Ими еще пользуются? Я думал сейчас всё на коллекциях
@rndofpipowe
@rndofpipowe 4 күн бұрын
Начал было писать возражение, а потом спросил себя "а ты дружок когда последний раз использовал массив?" :))
@user-zm9on5rb8z
@user-zm9on5rb8z 7 күн бұрын
Сергей, а можно какие-то темы разобрать типа Spring AI?😊
@McMouse88
@McMouse88 7 күн бұрын
Спасибо Сергей, интересный ролик
@andrew20tv
@andrew20tv 7 күн бұрын
Должно же быть arrayData[i * length + j]. И лучше добавить проверку индексов в get, потому что странно будет, что в двумерном массиве 2х2 я смогу обратиться к элементу [0, 2] и программа ничего мне не скажет на это
@AlexSmile-y2x
@AlexSmile-y2x 7 күн бұрын
Ты Легенда, Сергей!
@Nidvoraich
@Nidvoraich 7 күн бұрын
Соседи на клавиатуру не жалуются?)
@arhitutorials
@arhitutorials 7 күн бұрын
Люблю полноразмерные клавиатуры с нормальным ходом клавиш и откликом. Соседи не жалуются, терпят молча)
@vitaliy0192
@vitaliy0192 8 күн бұрын
Сам придумал, сам поверил. Всё по фэншую. Ога.
@arhitutorials
@arhitutorials 8 күн бұрын
@@vitaliy0192 с самого утра ждал этого комментария)
@rndofpipowe
@rndofpipowe 5 күн бұрын
@@arhitutorials Значит не всё потеряно, остались думающие люди :)))
@agusev30
@agusev30 8 күн бұрын
Спасибо за интересную тему. БТВ, на котлине с operator fun бьіло бьі красивее
@ЕвгенийКрупин-м2з
@ЕвгенийКрупин-м2з 8 күн бұрын
Кто Си читал, тот это знает.
@bulatnikoffdmitrii4438
@bulatnikoffdmitrii4438 8 күн бұрын
Класс👍, спасибо.
@Lazeyus
@Lazeyus 8 күн бұрын
Так интересно рассказываете, спасибо
@Hopkroft
@Hopkroft 8 күн бұрын
Сергей, спасибо за видео! Надеюсь что у вас будет возможность выкладывать побольше уроков :)
@arhitutorials
@arhitutorials 8 күн бұрын
Я тоже надеюсь. Столько дел разных, не успеваю. В следующем году надеюсь по легче будет, смогу чаще выходить в эфир.
@LAZIO14
@LAZIO14 8 күн бұрын
Серега, привет! Рад тебя видеть! Благодарю
@mihaelbablovich9463
@mihaelbablovich9463 8 күн бұрын
Спасибо за ролики, и вообще за весь канал 👍
@mafi0za287
@mafi0za287 8 күн бұрын
Хорошее видео. P.S. Напомнило мне то, что можно было получить в качестве результата "мусор", если выйти за границы массива в C.
@StethemRulit
@StethemRulit 8 күн бұрын
Так как двумерный массив в java это массив ссылок на одномерные массивы, мы можем присвоить элементу двумерного массива null. А если одномерный массив это массив объектов, то и там может быть null. А если такой массив возвращает метод, то по хорошему там каждый элемент, на любом уровне, нужно проверять на null. Так что лучше использовать класс обертку, который не может присвоить null элементам.
@МихаилВишняков-т6ф
@МихаилВишняков-т6ф 8 күн бұрын
Спасибо за разяснение, никогда об этом не задумывался, а тут вот оно что)) пс там в формуле получения и записи от высоты 1 отнимать надо, или уходим на следующий массив
@elseff
@elseff 8 күн бұрын
Спасибо
@Atamah123
@Atamah123 8 күн бұрын
было реально очень интересно. Спасибо
@OleksiiVasylenko-r1j
@OleksiiVasylenko-r1j 8 күн бұрын
Ебаться-улыбаться. Вот это контент
@Rommel7755
@Rommel7755 14 күн бұрын
Хорошо объясняете.🙂
@ВячеславЗайцев-в9и
@ВячеславЗайцев-в9и 19 күн бұрын
Спасибо!
@asunali313
@asunali313 25 күн бұрын
в курсе javarush есть схожая задача. и во многих комментариях к этой задаче есть ссылка на это видео. у этих комментариев много лайков) спасибо вам большое.
@user-segadev
@user-segadev Ай бұрын
несколько лет назад смотрел, все понял) но приходится пересматривать перед собесами, забыл уже подробности. Автору респект !!!
@arsenazaryan5157
@arsenazaryan5157 Ай бұрын
ни как не мог вкатиться в понимания в то что есть принимаемый тип и добавляемый тип. Только в конце зацепился за резюмирующую таблицу в результате проникся пониманием что это две разности. Спасибо
@2TPstudio
@2TPstudio Ай бұрын
Погодите-ка, а кто-то понял что за шорткат был использован на 5:23 для заполнения листа значениями?
@spacecowboy3000
@spacecowboy3000 Ай бұрын
Супер, спасибо!
@waldstalwaldstal3654
@waldstalwaldstal3654 Ай бұрын
Огромное спасибо!!!!!!!!!!!!!!!!!!!!!!
@freeblind7278
@freeblind7278 Ай бұрын
Начал слушать, очень все понятно, и разжовано, этот урок великолепен.
@ukr-pig
@ukr-pig Ай бұрын
Привет.А можешь подсказать что происходит внутри sinhronized{ } ?
@arhitutorials
@arhitutorials Ай бұрын
Ничего не происходит. Просто чтоб зайти в этот блок, потоку нужно захватить монитор. Монитор может держать только один поток. Таким образом, код в блоке synchronized может выполняться только одним потоком, который в данный момент владеет монитором.
@alexandrkomar4741
@alexandrkomar4741 Ай бұрын
Спасибо. Вот только не понял как с Iterable работать. Нужно разобраться
@McMouse88
@McMouse88 Ай бұрын
Сергей интересно было бы посмотреть про синхронизаторы CountDownLatch, Semaphore и CyclicBarrier )))
@МарпехДалласский
@МарпехДалласский Ай бұрын
а почему в реализации equals для иммутабельного объекта достаточно сравнения по хэшу? хэш же может совпадать у разных объектов
@arhitutorials
@arhitutorials Ай бұрын
Для equals недостаточно. В случае, если хэши двух объектов одинаковые, надо разбираться, что у них внутри.
@NKozchenko
@NKozchenko Ай бұрын
Спасибо большое Сергей за такие видео, наверное единственный канал благодаря которому я могу понять всю тему сразу! Хотел также вступить в ваш телеграмм канал, но ссылка почему то недоступна(
@rahmanbashr7347
@rahmanbashr7347 Ай бұрын
почему в дереве проекта в папке rec нет папки лайаут? из.за этого я не могу начать разработку приложения, я уже молчу о том что виртуальное устройство не запускается
@andreyusp2867
@andreyusp2867 Ай бұрын
Спасибо
@alexandrkomar4741
@alexandrkomar4741 Ай бұрын
Здравсвуйте. Не находит ваш тг канал. Вы его удалили?
@arhitutorials
@arhitutorials Ай бұрын
@@alexandrkomar4741 это не канал, а группа для общения. Сделал ее закрытой чтоб остановить нашествие ботов. Зайти можно по ссылке: t.me/+TH9AoBq_ct6RYZgz
@ЮкаРазраб
@ЮкаРазраб Ай бұрын
Спасибо за видео. Подскажите, подходит ли аларм менеджер для короткой переодической работы? У меня задача делать запросы раз в 5 минут, если не получен ответ, то делать раз в 10 секунд
@arhitutorials
@arhitutorials Ай бұрын
@@ЮкаРазраб если нужно гарантированно повторять действие каждые 10 секунд, то для этого надо использовать foreground service.
@MechAlexander
@MechAlexander Ай бұрын
Спасибо
@alexandrkomar4741
@alexandrkomar4741 Ай бұрын
Здравсвуйте. Можете объяснить, как с помощью рекурсии проходить по элементам массива в случае его сортировки методом слияния либо быстрой сортировкой?
@arhitutorials
@arhitutorials Ай бұрын
Здравствуйте. Я подумаю над этим. Уверен, что это можно сделать.
@userXxx777xxX
@userXxx777xxX 2 ай бұрын
смотреть с 9 минуты