Тёмный
Ivan Ponomarev
Ivan Ponomarev
Ivan Ponomarev
Подписаться
Java & Programming lectures
Mainor 2022. Java Concurrency, Part 2
1:29:01
2 года назад
Mainor 2022. Java Concurrency, Part 1
1:20:57
2 года назад
Mainor 2022: Collections API
1:06:59
2 года назад
Mainor 2022: Java Generics
1:28:29
2 года назад
Mainor 2022: Java Streams & Optionals
1:32:27
2 года назад
CelestaUnit 7.4.1: изменения
11:28
2 года назад
МФТИ Core Java 2020 Лекция 14
1:24:56
3 года назад
МФТИ Core Java 2020 Лекция 13
1:27:58
3 года назад
МФТИ Core Java 2020 Лекция 12
1:25:18
3 года назад
МФТИ Core Java 2020 Лекция 11
1:24:32
3 года назад
МФТИ Core Java 2020 Лекция 10
1:09:41
3 года назад
МФТИ Core Java 2020 Лекция 9
1:24:47
3 года назад
МФТИ Core Java 2020 Лекция 8
1:02:42
3 года назад
МФТИ Core Java 2020 Лекция 7
1:18:27
3 года назад
МФТИ Core Java 2020 Лекция 6
1:21:48
3 года назад
МФТИ Core Java 2020 Лекция 5
1:13:37
3 года назад
МФТИ Core Java 2020 Лекция 4
1:24:55
3 года назад
МФТИ Core Java 2020 Лекция 3
1:27:22
3 года назад
МФТИ Core Java 2020 Лекция 2
1:25:16
3 года назад
МФТИ Core Java 2020 Лекция 1
1:29:03
3 года назад
Комментарии
@Hopkroft
@Hopkroft 5 дней назад
Иван один из самых драйвовых докладчиков по java. Рассказывает основные моменты и тонкости по Джаве живым языком. Даже если человек не пишет на Джаве, он захочет попробовать на ней пописать после курса Ивана. Один из любимых докладчиков.
@javamachine107
@javamachine107 11 дней назад
А что за статьи, про которые вы в начале говорите? Они есть в общем доступе?
@VasillaRobocraft
@VasillaRobocraft 13 дней назад
Спасибо, что выложили в открытый доступ. Отличный материал
@jolymourner4014
@jolymourner4014 15 дней назад
1:13:40 Подскажите пожалуйста, в чем преимущество использования helper перед вариантом без него? public static <T> void swap(Pair<T> p) { T f = p.getFirst(); p.setFirst(p.getSecond()); p.setSecond(f); }
@javamachine107
@javamachine107 17 дней назад
Класс! Спасибо за крутые примеры! В первых четырёх лекциях их очень не хватало. Картинка стала складываться. Интересно, а существуют программы, которые по заданному роду структуры генерируют эквивалентные.. Ну вроде как GPT генерирует текст, в неком подобном смысле.. или наподобие языков автоматического доказательства теорий (вроде Agda или Cog): они так умеют?
@javamachine107
@javamachine107 17 дней назад
Спасибо! У Клини ещё интересно было про количество возможных интерпретаций. Вы рассмотрели только два случая: 1) Ноль интерпретаций когда противоречивый род структур 2) Когда много А большой интерес вызывает случай, когда аксиом ровно столько что это приводит к единственной возможной интерпретации (наверное с точностью до изоморфизма), как с натуральными числами так выходит с одним из наборов арифметических аксиом (не помню каким). Он это называет "категорическая" система аксиом (параграф 8 в введении в метаматематику). ``` И вообще система аксиом может быть: 1) невыполнимой - не задают ни одной системы 2) категорической - задают систему объектов (все изоморфны друг другу) 3) неполной - задают, получается, тип систем объектов ``` И вообще интересно было бы получить примеры на случаи когда конечное, счётное и более чем счётное количество интерпретаций. Очень интересно получится ли в итоге это всё связать воедино с теорией типов и теорией категорий.
@javamachine107
@javamachine107 17 дней назад
Спасибо! Статья Назиева, про которую писали в комментах к первой лекции очень помогла и тут лучше разобраться. В целом как всегда на лекциях по математике очень не хватает конкретных примеров. Хотя бы по одному примеру на каждое абстрактное построение. Наверное, вы это на практике потом всё разрабатываете, но как человеку-самоучке приходится листать кучу учебников, чтобы по крупицам выискивать примеры и продвигаться в понимании. Параллельно читаю Клини "Введение в метаматематику". Вашу книгу и лекции. Бурбаков. Назиев вот тоже чуток помог. Вместо доказательств теорем, лучше бы математики давали больше примеров ))
@jolymourner4014
@jolymourner4014 17 дней назад
Не понял насчет вредных методов. А если indexOf применяется не для дальнейшего взятия подстроки, а только для получения индекса? В случае replace ведь не обязательно будет сценарий навешивания их кучей. И насчет split не уловил, что имелось в виду, что значит "наш разделитель может случится внутри поля"? В решении алгоритмических задач они применяются очень часто, не работал с продакшеном на Джаве, допускаю что там они действительно вредны, потому интересен этот момент
@inponomarev
@inponomarev 17 дней назад
> наш разделитель может случится внутри поля ну допустим, у нас разделитель -- запятая. И данные выглядят так: Вася, 2 Петя, 5 "Маша,Саша", 4 (подразумевается, что [Маша,Саша] это одно значение, для чего оно взято в кавычки). Это CSV формат, и попытки его парсить с помощью spit/indexOf не приведут ни к чему хорошему (см. следующую лекцию, там это всё разобрано). В следующей лекции я делаю упор на то, что практически полезными для работы со строками являются регулярные выражения и конечные автоматы. Я много раз видел на практике как попытки построить "простые и дешевые" обработчики строк на indexOf приводили к багам, поэтому называю эти методы "вредными". Хотя конечно же, польза или вред наносится не методом, а программистом )
@jolymourner4014
@jolymourner4014 17 дней назад
​@@inponomarevспасибо Вам!) Прошло почти 4 года, а эти лекции остаются лучшими (смотрел и другие - такой полноты нет нигде). Премного благодарен Вам за возможность изучения
@jolymourner4014
@jolymourner4014 18 дней назад
Поддерживаю Вас насчет камер, даже со стороны студента, на лекциях с одной аудиосвязью не хватает зрительного контакта
@inponomarev
@inponomarev 17 дней назад
Это было начало ковида. В тот год предполагалось что ребята будут слушать лекции в аудитории по старинке, и внезапно удалёнка, поэтому я лютовал. Годы онлайн-преподавания спустя я уже не так строг насчёт камер
@javamachine107
@javamachine107 20 дней назад
Спасибо большое за лекции по родам структур!
@investWhale
@investWhale Месяц назад
Вместо Map.of(), лаконичней все таки Map.OfEntries(), где понятно, что есть пары ключ-значение.
@andr6087
@andr6087 Месяц назад
Спартак - параша! Победа будет наша!
@andreykatskin818
@andreykatskin818 2 месяца назад
резюмирую - все лекции ЗБС ! осталось не забыть через неделю)
@andreykatskin818
@andreykatskin818 2 месяца назад
шок контент про Рефлексию ) и я слышал про Mokito -1й - это коктейль, 2й-это инструмент !)
@andreykatskin818
@andreykatskin818 2 месяца назад
первые 55минут сложные )
@user-js3pw7pp5d
@user-js3pw7pp5d Месяц назад
первые 84минуты сложные))
@user-gv3zn1us6s
@user-gv3zn1us6s 2 месяца назад
Интересная система. Сильнейшие лекции, умнейший лектор, но вместо темы лекции - просто её номер. Причём даже в лекции про рефлексию неизменная "...Core Java 2020". Только название МФТИ спасает, поскольку МФТИ - сила! Просто изменив названия каждой лекции принесёте огромную пользу русскоговорящему человечеству. Лекции ДСП на RU-vid - весьма неожиданно
@andreykatskin818
@andreykatskin818 2 месяца назад
это какая-то ДИЧЬ !)
@andreykatskin818
@andreykatskin818 2 месяца назад
ЗБС !
@prayer4675
@prayer4675 2 месяца назад
It could be a good idea to tell some history about threads and their differences from processes. There are two main differences: 1. The CPU cost of context switch between threads is lower than between processes 2. Threads of the same process natively use the same memory while processes can use shared memory by special API of the operating system Also, from 2024 you can also tell students about the new Virtual Threads API, that was added into Java 21.
@inponomarev
@inponomarev 2 месяца назад
Thanks for suggestions. I was thinking about it, will improve my material in the future
@prayer4675
@prayer4675 2 месяца назад
The "target/" rule in your .gitignore file is dangerous because it makes Git ignoring any directory with that name, including packages of your source code that contain target sub-directory in their path. To fix it you can use one of the following two approaches: 1. use absolute path of the directory target directories like "/target/", "/module1/target/", etc. 2. additionally to "target/" add another exclude rule like "!**/src/**" I personally prefer the second one.
@mrin0
@mrin0 3 месяца назад
16:08
@andreyy.k.9775
@andreyy.k.9775 3 месяца назад
увидел белую тему в идее - вспомнил молодость )
@user-se4gg9sk4b
@user-se4gg9sk4b 3 месяца назад
Очень повезло наткнуться на серию из таких понятных лекций по этой теме! Вы очень серъёзно сократили время на поиск нужной информации. Спасибо большое!
@user-bl3pq8ip3l
@user-bl3pq8ip3l 3 месяца назад
Деструктора нет по другой причине. Если выбрасывается исключение, оно будет всплывать по стеку, пока не будет перехвачено. И конечно при раскрутке стека будут собраны все деструкторы без нашей воли и что там будет выполнено...
@ghfdghjh_53521
@ghfdghjh_53521 4 месяца назад
Ошибка на слайде на 15:35 в названии метода.
@Hopkroft
@Hopkroft 2 дня назад
всё верно, должно быть getMonthPayment
@user-fw2ek3nx5p
@user-fw2ek3nx5p 4 месяца назад
3 лекции и все интересные. Спасибо
@agalaktionov
@agalaktionov 4 месяца назад
Если сумма синглтона от х равна самому х, то чему равна сумма синглтона от пустого множества? Можно так определить саму пустоту, а не пустое множество? Тогда обитателями пустого множества могут являться несуществующие множества a, b и все остальные несуществующие множества. Так можно различить пустое множество a и несуществующее множество a.
@artemief
@artemief 5 месяцев назад
Добрый день, @inponomarev Подскажите, пожалуйста, почему singleton подход номер 8 потокобезопасный? (1:23:20) никак не получается понять
@inponomarev
@inponomarev 5 месяцев назад
В силу того, что мы здесь полагаемся на инициализацию класса, а создатели JVM позаботились о том, чтобы инициализация класса была бы синхронизирована. В JLS docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4 сказано: "The implementation of the Java Virtual Machine is responsible for taking care of synchronization and recursive initialization"
@inponomarev
@inponomarev 5 месяцев назад
Т. е. там вся синхронизация уже реализована за нас, остаётся только пользоваться :-)
@artemief
@artemief 5 месяцев назад
@@inponomarev Большое спасибо! очень интересный курс ❤🔥
@romabulava899
@romabulava899 5 месяцев назад
хоть где то репликацию в динамике показали
@kyrylgerasymenko6327
@kyrylgerasymenko6327 5 месяцев назад
утащу к себе в практику делать презентации со смайликами вместо скучных квадратных блоков 😊. шикарное видео
@zhennik263
@zhennik263 5 месяцев назад
Если честно, немного непонятно где это применимо. Я бы тогда уже к шагу package добавил бы просто sources И билдил бы 2 jar. Один стандарный с скомпилированной либой, второй с исходниками.
@user-wq4wf6di5b
@user-wq4wf6di5b Месяц назад
это применимо, когда ты его ученик и тебе надо сдать ему дз
@dimamikhalishchin5172
@dimamikhalishchin5172 5 месяцев назад
Очень радует, что лектор поднимается на концептуальный уровень, а не просто рассказывает технические детали, как это делают многие другие. Понимание деталей опирается на понимание концепций. Очень здорово, спасибо, большое.
@rah_emil
@rah_emil 5 месяцев назад
Шикарно
@user-mv2zq6zr9r
@user-mv2zq6zr9r 6 месяцев назад
Все интересно смотрю до конца много подводных камней раскрываются, особенно для новичка. Жаль мало лайков
@user-mv2zq6zr9r
@user-mv2zq6zr9r 6 месяцев назад
51:00 вся лекция интересна.... Буду пересматривать.
@user-mv2zq6zr9r
@user-mv2zq6zr9r 6 месяцев назад
Спасибо про короткие замыкания очень было интересно. 42:37 - булевские операторы (не путать с побитовыми)
@user-mv2zq6zr9r
@user-mv2zq6zr9r 6 месяцев назад
1:30 DDoS атака)) на пятёрочку
@user-mv2zq6zr9r
@user-mv2zq6zr9r 6 месяцев назад
26:50 Гослинг. Какой молодец и в фильмах успевает сниматься "Barbie" и язык Java изобрел.🤣🤣🤣
@Rusnura
@Rusnura 7 месяцев назад
Подскажите пожалуйста, эти лекции откуда? Университет? Или какой-то курс? Спасибо!
@AlexPInv
@AlexPInv 8 месяцев назад
отличная лекция!
@onegag
@onegag 9 месяцев назад
посмотрела 3 лекции на одном дыхании. Спасибо!
@MrOirs
@MrOirs 11 месяцев назад
Спасибо за отличную лекцию.
@MrOirs
@MrOirs 11 месяцев назад
Прекрасная структура и отличная подача. Большое спасибо.
@Tornado-ln7fq
@Tornado-ln7fq 11 месяцев назад
Ну такое себе объяснять про сборщик мусора на первой лекции,студентам которые даже не понимают что такое int i = ++;. А еще и говорить об объектах , это товарищи преступления. Вот у меня вопрос,к лектору .Зачем,зачем говорить о таких вещах тем кто даже незнает что такое переменная, что такое тип переменной , как она объявляется и тд... Зачем!
@inponomarev
@inponomarev 11 месяцев назад
К началу данного курса студенты МФТИ уже прошли курсы основ программирования на C и Python.
@Tornado-ln7fq
@Tornado-ln7fq 11 месяцев назад
@@inponomarev Ха ха ха, тогда извиняюсь,ключевое слово было прошли))
@viktoriafedosova9641
@viktoriafedosova9641 5 месяцев назад
@@inponomarev А есть ли домашние задания для этого курса где то ? Хотелось бы поупражняться так же ))
@skieskieskieskies
@skieskieskieskies Год назад
+
@user-qy7vv5yx3b
@user-qy7vv5yx3b Год назад
Спасибо за лекцию.
@GeorgiiFidarov
@GeorgiiFidarov Год назад
Спасибо большое за лекции вам. Мне сильно помогают они!
@ruff7209
@ruff7209 Год назад
Шикарно! Большое спасибо за лекции!
@ilonaa8756
@ilonaa8756 Год назад
очень крутой доклад, спасибо
@vint_razboltaylo
@vint_razboltaylo Год назад
Вы мегакрутой) Спасибо огромное за лекции