powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Ссылочные переменные с точки зрения памяти PC/Notebook.
25 сообщений из 25, страница 1 из 1
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973796
Alexandrietz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, что я создал ссылочную переменную (пусть это будет ссылка типа MyClass, например) класса MyClass, в котором определено много методов и объявлено много полей. Каков размер ссылки? Зависит ли ее размер от числа методов и полей класса? Непрерывно ли они лежат в памяти или нет? Как в памяти лежат методы и конструкторы класса? Стек, или куча, или вообще дискретно, то есть не непрерывно?
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973810
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо тебе это сейчас совсем не нужно. ты можешь нагуглить любые подробности об внутренней организации jvm, но это тебе никак особо не поможет в твоих начинаниях. Ссылка на класс это всего лишь ссылка - т.е. адрес по которому можно найти экземпляр класса в памяти. Каким бы большим этот экземпляр не был и сколько методов он бы не имел, ссылка будет строго определенного размера в зависимости от разной фигни, которая тебе сейчас абсолютно не нужна. Так что можешь себе ни в чем не отказывать, создавай ссылок сколько нужно.

Конечно можно ознакомиться с потрохами более углубленно, но не на этом этапе и не в твоей ситуации. Таковое мое мнение
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973812
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandrietz,

Ты перепутал с ЯП С++.
Удивительно, но в нынешнем веке и в java это автоматизировано. Программист не парится этими задачами.
Скажи, зачем вводили умные указатели? Сборщики мусора?
Так что я согласен с chpasha, тебе это не нужно)
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973813
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandrietz
Допустим, что я создал ссылочную переменную (пусть это будет ссылка типа MyClass, например) класса MyClass, в котором определено много методов и объявлено много полей. Каков размер ссылки? Зависит ли ее размер от числа методов и полей класса? Непрерывно ли они лежат в памяти или нет? Как в памяти лежат методы и конструкторы класса? Стек, или куча, или вообще дискретно, то есть не непрерывно?


Вот почитай для начала. Тут должны быть главные ответы на вопросы такого толка
https://docs.oracle.com/javase/specs/jvms/se14/jvms14.pdf
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973839
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandrietz

Про размер ссылки. Однозначного ответа нет. Для классической (Oracle/OpenJDK) он обычно 32 бита
для 32х битный JVM и может быть 32 и 64 бита для 64х битной в зависимости от опции -Xmx32g
При этом указатель может быть гранулярный но экономный. Или точный но расточительный
в смысле расхода на ячейку хранения.

И размер ссылки не зависит от того на что она указывает. Здесь есть аналогия с С++.

Если речь идет о какой-то мобильной Java то там - я не знаю. Может быть что угодно.

По всем твоим остальным вопросам. Если тебя на собеседовании спросят про размер Java-объекта
в памяти - то сразу отвечай что JVM-спецификация не регламентирует это вообще. Тоесть мы не знаем
как будут скомпонованы поля в непрерывной памяти объекта. И мы не знаем каков будет общий размер.
Мы можем иногда смотреть через специальные служебные системные библиотеки типа

Код: java
1.
Instrumentation.getObjectSize(..)



Но и этот размер надо понимать просто как частный случай для данной версии софта и для ОС и для
архитектуры железа. В других - он просто будет другой.

Кроме того надо понимать что есть размеры deep/shallow. Тоесть размер объекта вместе с примитивными полями
или размер объекта рекурсивно со всеми под-объектами которые входят в него. Типа дерево.

На эту тему лучше всего скачай утилиту Eclipse-Memory-Analyzer позапускай и просто понаблюдай
какие отчоты она выдает по Java-процессам.

По поводу твоего вопроса

Как в памяти лежат методы и конструкторы класса? Стек, или куча, или вообще дискретно, то есть не непрерывно?

Тут вообще полный капец. На этот вопрос нельзя просто так ответить.
Память методов и конструкторов лежит в двух местах. Это собственно байт-код
который грузит classloader. И есть бинарный код который собрал JIT после нескольких
итераций использования байткода.

Байт-код ты можешь увидеть глазами. Это и есть тело .class - файла который ты компилируешь.

По второму вопросу - я пока не знаю. Но ты попробуй просто переварить эту инфу и может
тебе сейчас не надо лезть так глубоко в эти недра. От джуна этого никто не потребует.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973840
Alexandrietz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Помню, как в C++ надо было вручную освобождать память с помощью delete. Тут, слава Богу, есть garbage collector.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973891
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandrietz,
Все делают для того чтобы системных программистов и их вопросов становилось все меньше. А прикладных становилось больше.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973922
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как раз таки правильные вопросы задаёт человек.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973923
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Alexandrietz,
Все делают для того чтобы системных программистов и их вопросов становилось все меньше. А прикладных становилось больше.

нет такого понятия как системный, прикладной и пр. программисты.
И никогда не было.

Это придумали чтобы выделить коболистов, которые не могут пользоваться другими ЯП (в силу специфики Кобола).
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973925
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
как раз таки правильные вопросы задаёт человек.

да, для освоения явы и получения первой работы, жизненно необходимо выяснить размер ссылок на объекты
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973926
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,
Угу. И тимлида скажи нету. И деления на кодировщика и программиста.
И врачи не делятся на хирургов и проктологов.
Ты с луны наверно.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973927
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
как раз таки правильные вопросы задаёт человек.
если подтвердит кодом, тогда соглашусь.
У нас форум не ПТ.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973964
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
dakeiras,
Угу. И тимлида скажи нету. И деления на кодировщика и программиста.
И врачи не делятся на хирургов и проктологов.
Ты с луны наверно.

Просто я стараюсь смотреть на вещи непредвзято и самостоятельно анализировать.

В agile - кодировщики именно. Программисты это отдельно.

Тимлид это в agile который гундит что ему имя класса не нравится и прочие бессмысленные вещи совершенно типа code smells.
Он есть.

А вот "системных" программистов нет. Есть системные инженеры (инженеры системотехники по нашей терминологии). Могут программировать. При этом именно прикладную часть.

Системные программисты это те кто пишет на C и на разных asm, микрокод, ядро ОС и прочее.
Но конечно вы не их имели в виду. У нас в бывшем совке все у кого в когде есть переменная типа number - считаются системными программистами.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973965
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
dakeiras
как раз таки правильные вопросы задаёт человек.

да, для освоения явы и получения первой работы, жизненно необходимо выяснить размер ссылок на объекты

для понимания это очень полезно.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39973985
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
для понимания это очень полезно.

Произнесение банальностей само по себе недостаточно - нужно еще уметь обосновать. что Шерлок Холмс говорил о пользе знания, что Земля крутится вокруг Солнца, для раскрытии преступлений? Вот тут примерно тоже самое.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974012
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
У нас в бывшем совке
"Спасибо, ваше мнение очень важно для нас".
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974013
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
размер ссылки это фиксированные байты и зависят от системы
... а в JVM заголовок объекта зависит от деталей реализации и даже от режима работы.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974024
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandrietz,

Это всё не важно. Жрать память оно в любом случае будет как не в себя.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974030
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Жрать память оно в любом случае будет как не в себя.
А вас не затруднит быть поосторожнее с кванторами всеобщности?
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974044
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandrietz
Допустим, что я создал ссылочную переменную (пусть это будет ссылка типа MyClass, например) класса MyClass, в котором определено много методов и объявлено много полей. Каков размер ссылки? Зависит ли ее размер от числа методов и полей класса? Непрерывно ли они лежат в памяти или нет? Как в памяти лежат методы и конструкторы класса? Стек, или куча, или вообще дискретно, то есть не непрерывно?


Идем сюда .
Скачиваем исходники.
Читаем их.
Думаем.

Для понимания стоит еще почитать это .

Как все на самом деле устроено в JVM, тут вам вряд ли скажут.
Эти знания не нужны, они скрыты под несколькими слоями абстракции.

Т.к. JVM работает на нескольких платформах, как минимум ARM и x86, то работа с памятью, её выделение и пр. на них отличаются.
Т.е. для ответа на данный вопрос, нужно еще знать под какой платформой будет работать код (тут уже указывали в 32 разрядной и 64 разрядной системе будет по разному).

А так "НАФИГА" вам эти знания?
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974067
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
А так "НАФИГА" вам эти знания?

все еще есть ненулевая вероятность, что он всех троллит, но презумпция невиновности однако :)
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974076
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно троллит. А всё пишите и пишите))
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974099
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Зато каков талант! прошлый то вброс за 300 сообщений перевалил
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974112
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xerxf,
В java без кода и на лени долго не удержаться.
Максимум пару топиков и потом пропададают надолго.
...
Рейтинг: 0 / 0
Ссылочные переменные с точки зрения памяти PC/Notebook.
    #39974181
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
при чем тут заголовок объекта и ссылка на участок памяти где лежит этот объект
Ну, хотя бы, при "сжатых" указателях.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ссылочные переменные с точки зрения памяти PC/Notebook.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]