Иван один из самых драйвовых докладчиков по java. Рассказывает основные моменты и тонкости по Джаве живым языком. Даже если человек не пишет на Джаве, он захочет попробовать на ней пописать после курса Ивана. Один из любимых докладчиков.
1:13:40 Подскажите пожалуйста, в чем преимущество использования helper перед вариантом без него? public static <T> void swap(Pair<T> p) { T f = p.getFirst(); p.setFirst(p.getSecond()); p.setSecond(f); }
Класс! Спасибо за крутые примеры! В первых четырёх лекциях их очень не хватало. Картинка стала складываться. Интересно, а существуют программы, которые по заданному роду структуры генерируют эквивалентные.. Ну вроде как GPT генерирует текст, в неком подобном смысле.. или наподобие языков автоматического доказательства теорий (вроде Agda или Cog): они так умеют?
Спасибо! У Клини ещё интересно было про количество возможных интерпретаций. Вы рассмотрели только два случая: 1) Ноль интерпретаций когда противоречивый род структур 2) Когда много А большой интерес вызывает случай, когда аксиом ровно столько что это приводит к единственной возможной интерпретации (наверное с точностью до изоморфизма), как с натуральными числами так выходит с одним из наборов арифметических аксиом (не помню каким). Он это называет "категорическая" система аксиом (параграф 8 в введении в метаматематику). ``` И вообще система аксиом может быть: 1) невыполнимой - не задают ни одной системы 2) категорической - задают систему объектов (все изоморфны друг другу) 3) неполной - задают, получается, тип систем объектов ``` И вообще интересно было бы получить примеры на случаи когда конечное, счётное и более чем счётное количество интерпретаций. Очень интересно получится ли в итоге это всё связать воедино с теорией типов и теорией категорий.
Спасибо! Статья Назиева, про которую писали в комментах к первой лекции очень помогла и тут лучше разобраться. В целом как всегда на лекциях по математике очень не хватает конкретных примеров. Хотя бы по одному примеру на каждое абстрактное построение. Наверное, вы это на практике потом всё разрабатываете, но как человеку-самоучке приходится листать кучу учебников, чтобы по крупицам выискивать примеры и продвигаться в понимании. Параллельно читаю Клини "Введение в метаматематику". Вашу книгу и лекции. Бурбаков. Назиев вот тоже чуток помог. Вместо доказательств теорем, лучше бы математики давали больше примеров ))
Не понял насчет вредных методов. А если indexOf применяется не для дальнейшего взятия подстроки, а только для получения индекса? В случае replace ведь не обязательно будет сценарий навешивания их кучей. И насчет split не уловил, что имелось в виду, что значит "наш разделитель может случится внутри поля"? В решении алгоритмических задач они применяются очень часто, не работал с продакшеном на Джаве, допускаю что там они действительно вредны, потому интересен этот момент
> наш разделитель может случится внутри поля ну допустим, у нас разделитель -- запятая. И данные выглядят так: Вася, 2 Петя, 5 "Маша,Саша", 4 (подразумевается, что [Маша,Саша] это одно значение, для чего оно взято в кавычки). Это CSV формат, и попытки его парсить с помощью spit/indexOf не приведут ни к чему хорошему (см. следующую лекцию, там это всё разобрано). В следующей лекции я делаю упор на то, что практически полезными для работы со строками являются регулярные выражения и конечные автоматы. Я много раз видел на практике как попытки построить "простые и дешевые" обработчики строк на indexOf приводили к багам, поэтому называю эти методы "вредными". Хотя конечно же, польза или вред наносится не методом, а программистом )
@@inponomarevспасибо Вам!) Прошло почти 4 года, а эти лекции остаются лучшими (смотрел и другие - такой полноты нет нигде). Премного благодарен Вам за возможность изучения
Это было начало ковида. В тот год предполагалось что ребята будут слушать лекции в аудитории по старинке, и внезапно удалёнка, поэтому я лютовал. Годы онлайн-преподавания спустя я уже не так строг насчёт камер
Интересная система. Сильнейшие лекции, умнейший лектор, но вместо темы лекции - просто её номер. Причём даже в лекции про рефлексию неизменная "...Core Java 2020". Только название МФТИ спасает, поскольку МФТИ - сила! Просто изменив названия каждой лекции принесёте огромную пользу русскоговорящему человечеству. Лекции ДСП на RU-vid - весьма неожиданно
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.
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.
Очень повезло наткнуться на серию из таких понятных лекций по этой теме! Вы очень серъёзно сократили время на поиск нужной информации. Спасибо большое!
Деструктора нет по другой причине. Если выбрасывается исключение, оно будет всплывать по стеку, пока не будет перехвачено. И конечно при раскрутке стека будут собраны все деструкторы без нашей воли и что там будет выполнено...
Если сумма синглтона от х равна самому х, то чему равна сумма синглтона от пустого множества? Можно так определить саму пустоту, а не пустое множество? Тогда обитателями пустого множества могут являться несуществующие множества a, b и все остальные несуществующие множества. Так можно различить пустое множество a и несуществующее множество a.
В силу того, что мы здесь полагаемся на инициализацию класса, а создатели 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"
Если честно, немного непонятно где это применимо. Я бы тогда уже к шагу package добавил бы просто sources И билдил бы 2 jar. Один стандарный с скомпилированной либой, второй с исходниками.
Очень радует, что лектор поднимается на концептуальный уровень, а не просто рассказывает технические детали, как это делают многие другие. Понимание деталей опирается на понимание концепций. Очень здорово, спасибо, большое.
Ну такое себе объяснять про сборщик мусора на первой лекции,студентам которые даже не понимают что такое int i = ++;. А еще и говорить об объектах , это товарищи преступления. Вот у меня вопрос,к лектору .Зачем,зачем говорить о таких вещах тем кто даже незнает что такое переменная, что такое тип переменной , как она объявляется и тд... Зачем!