169 похожих чатов

Есть задачи на динамическую диспетчеризацию и связывание. Как запомнить какой

метод будет вызван?
Готовлюсь к собесам и каждый раз путаница. Вроде джава в процессе выполнения решает по типу объекта какой метод вызывать, но помню чётко примеры даже делал где по ссылке начинается определение... и ещё там права на метод смотрятся

7 ответов

12 просмотров

Я даже не представляю, из каких вариантов можно запутаться. Какой метод определен в объекте, такой и будет вызван, вне зависимости от класса переменной или вида свзявания. Там есть еще небольшая приколюха со статическими методами, когда они вызываются на объекте класса. Их нельзя наследовать и переопределять, и насколько я помню, джава пытается вычислить класс во время компиляции и сделает статическое связывание на определенный класс, вне зависимости от класса объекта в итоге. Но как бы статические методы и переопределять нельзя, поэтому все равно особо не роляет, и получать какое-то неожиданное поведение вроде как невозможно. А так, если компания не пишет очередную реализацию JVM или хотя бы не занимается активно модификацией байткода в своем проекте, то уходи с собеса. Это не особо полезные академические знания в обычном промышленном программировании, и нужны прям в очень специфичных кейсах. Если человек это спрашивает без причины, то он просто понятия не имеет, о чем с тобой говорить на собесе.

Stanislav Markin
Я даже не представляю, из каких вариантов можно за...

Ну может еще jetBrains могут такое спрашивать, т.к. пишут много различных либ и им важно, чтобы человек понимал, как устроено jvm, ну просто на всякий случай, чтобы случайно не написать фигню. Но я б тогда по jmm гонял бы, а не про диспечеризацию, конечно

Xan- Автор вопроса
Stanislav Markin
Я даже не представляю, из каких вариантов можно за...

Есть целые задания на тему какой метод будет вызван и я писал их, просто за год забыл и задание потерял...

Xan
Есть целые задания на тему какой метод будет вызв...

Если на собесе такое спросят, скажи, что дебагером выяснишь

Xan
Есть целые задания на тему какой метод будет вызв...

там же просто проход по дереву иерархии сверху вниз

Xan
Есть целые задания на тему какой метод будет вызв...

Сорян, для джавый такого не видел. Для плюсов или динамческих языков есть такие приколы, а в джаве все супер просто

Xan- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта