2014-01-18 3 views
0

У меня есть класс, который содержит статические поля, такие как большие списки, в которых хранятся ключевые слова. Затем у меня есть статические методы, которые работают над этими статическими полями. Мне было интересно, очищаются ли статические поля и загружаются каждый раз, когда я вызываю статические методы.Статические поля называются/загружаются каждый раз, когда они используются?

+1

Нет, они не являются. Они загружаются только один раз, когда класс загружается. –

+0

@RohitJain Итак, если я использую класс только один раз, он все равно будет загружен правильно? –

+0

Конечно, когда вы используете класс, он загружается. –

ответ

0

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

2

Мне было интересно, если статические поля будут очищены и загружены каждый раз, когда я вызываю статические методы.

нет, если вы не сделаете это, статические поля инициализируются, когда класс загружается с помощью загрузчика классов

+0

Я использую этот класс только для статических методов, поэтому мне интересно, будет ли класс по-прежнему загружаться. –

+0

. Где VM должна взять информацию из того, что фактически выполнить, если класс еще не загружен? Таким образом, виртуальная машина должна загружать класс, хотя все определяется как static –

+0

. Yes класс будет загружаться, когда он сначала требуется jvm во время выполнения –

0

Другими словами, всегда существуют статические поля. Когда загрузчик классов загружает класс, то каждое статическое поле имеет свое место в памяти кучи.

Смежные вопросы