itni

Как реализована VMT в Java

07.08.2010, 21:36. Показов 3622. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Начал изучать Яву и сразу же возник вопрос: если по умолчанию все методы виртуальные, то как реализуется таблица виртуальных методов? Насколько я понимаю - совсем не так, как в C++ (там в каждом экземпляре хранится ссылка на каждую виртуальную функцию - много функций - много памяти), а как тогда?
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.08.2010, 21:36
Ответы с готовыми решениями:

Приведение типов, VMT
День добрый! Очередной глупый вопрос. Хочется через точку запускать метод потомка, как в примере с указателем. Мои предполагаемые пути...

Вывод содержимого VMT
Всем здраствуйте! Задание по ООП - вывести адреса памяти объектов на консоль, что я выполнить сумел! Но вывести VMT не удалось - просто не...

VMT не видит дискретную NVidia
Полгода назад при игре в WoT стали появляться разные артефакты. На тамошнем форуме все в один голос говорили о умирающей видеокарте....

1
1 / 1 / 0
Регистрация: 15.02.2010
Сообщений: 311
08.08.2010, 11:20
Экземпляр класса в Java НЕ содержит таблицу виртуальных функций. Он содержит ссылку на таблицу методов своего класса. Таблица методов класса после загрузки и динамического связывания класса в конечном счете содержит ссылки на методы данного класса. Если метод определен в данном классе, это будет ссылка на метод данного класса. Если метод определен в суперклассе, это будет ссылка на метод суперкласса.

Однако с чего Вы взяли, что в С++ каждый экземпляр содержит свою таблицу виртуальных функций?... Там также каждый экземпляр содержит ССЫЛКУ на таблицу ВФ своего класса.

Однако в С++ это будут ссылки только на виртуальные функции, в то время как в Java таблица методов содержит ссылки на ВСЕ методы класса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.08.2010, 11:20
Помогаю со студенческими работами здесь

Как реализована ленивая инициализация?
Как реализована ленивая инициализация в C#? Код Lazy<Dictionary<string, decimal>> dic= new Lazy<Dictionary<string, decimal>>();...

Как реализована данная фича?
Добрый день. Есть такой замечательный модуль turn.js. Вот его главная страница: http://www.turnjs.com/ Модуль к себе на сайт...

Как реализована функция printf
int printf ( const char * format, ... ); http://www.cplusplus.com/reference/clibrary/cstdio/printf/ Смотрю на эту ф-цию и думаю как...

Как в Joomla реализована работа с TimeZone и как это использовать в своем расширении?
Интересует, собственно, все, связанное с работой со временем и учёт в обработке разницы во временных зонах "между пользователями"...

Установка Windows XP на терминал VMT 6008
Здравствуйте господа. Недавно попала в руки (досталась на халяву) интересная вещь. Терминал VMT 6008. Описание на немецком по ссылке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru