Я сомневаюсь, что вы хотите сделать это программно, если только вы не захотите сделать это один раз и сохраните его для использования в будущем. Это дорого стоить. В Java нет оператора sizeof (), и даже если бы он был, он учитывал бы только стоимость ссылок на другие объекты и размер примитивов.
Один из способов сделать это - сериализовать вещь в файл и посмотрите размер файла, например:
Serializable myObject;
ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream ("obj.ser"));
oos.write (myObject);
oos.close ();
Конечно, это предполагает, что каждый объект отличается и не содержит непереходных ссылок на что-либо еще.
Еще одна стратегия заключалась бы в том, чтобы взять каждый объект и изучить его членов путем отражения и добавить размеры (boolean & amp; byte = 1 byte, short & amp; char = 2 байта и т. д.), работая по-вашему вниз по иерархии членства. Но это утомительно и дорого и заканчивается тем же, что и стратегия сериализации.
Приведенный ниже код предназначен для получения только имен файлов с префиксом «NUMBER».
for path, subdirs, files in os.walk(r'C:\\Users\User\Documents'):
for filename in files:
if 'NUMBER' in filename:
f = os.path.join(path, filename)
print (str(f)[25:35])