powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Что делает ключевое слово static?
12 сообщений из 12, страница 1 из 1
Что делает ключевое слово static?
    #34852812
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот в таком аспекте:
Код: plaintext
1.
2.
3.
 static {
    //some code here
}

Когда этот блок кода будет исполнен?

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34852829
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот блок называется статический инициализатор (иногда статический конструктор). Исполняется во время инициализации класса. Как например код для инициализации статических полей.
Код: plaintext
1.
2.
3.
4.
 static   int  I =  1 ;
 static 
{
   I++;
}
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34852830
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinВот в таком аспекте:
Код: plaintext
1.
2.
3.
 static {
    //some code here
}

Когда этот блок кода будет исполнен?

Сарин, зачем ты задаешь такое количество вопросов, на которые можно легко получить ответ в любой книжке по Java?

Тем не менее, отвечу на твой вопрос.
static{
...
}
Вызывается после того, как класс становится доступен (загружен ClassLoader'ом — т.н. статическая инициализация).
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34852851
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, я так и думал.
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34853758
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
Хватит город позорить, почитай книжку или туториал по Sun.
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34853845
Фотография Изя Шниперсон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinВот в таком аспекте:
Код: plaintext
1.
2.
3.
 static {
    //some code here
}

Когда этот блок кода будет исполнен?

Код: plaintext
Meo voto


Код будет исполнен 1 раз при первом вызове конструктора класса.
Если на собеседованиях будут спрашивать, например, что нужно написать в классе для
печати строки "Hello world" 1 раз при
вызове участка кода:
Код: plaintext
1.
2.
3.
4.
5.
.....
  new  MyClass();
  new  MyClass();
  new  MyClass();
....
Нужно поместить System.out.println("Hello wrold");
в блок static
Код: plaintext
1.
2.
3.
4.
5.
MyClass{
  static  {
System.out.println("Hello wrold");
}
}
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34853902
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изя Шниперсон
Код будет исполнен 1 раз при первом вызове конструктора класса.
Да, это действительно так.
Я ошибся.
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34853904
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь понять, где я вычитал про доступность после загрузки.
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34854108
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктологПытаюсь понять, где я вычитал про доступность после загрузки.

Правильно ты все сказал. Конструктор здесь вообще не причем. Статический инициализатор даже так выполниться -Class.forName("className");
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34854117
Ekshibarov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessen Софтверный проктологПытаюсь понять, где я вычитал про доступность после загрузки.

Правильно ты все сказал. Конструктор здесь вообще не причем. Статический инициализатор даже так выполниться -Class.forName("className");

Ага, еще и в следующих ситуациях:

A class or interface type T will be initialized immediately before the first occurrence of any one of the following:

* T is a class and an instance of T is created.
* T is a class and a static method declared by T is invoked.
* A static field declared by T is assigned.
* A static field declared by T is used and the field is not a constant variable (§4.12.4).
* T is a top-level class, and an assert statement (§14.10) lexically nested within T is executed.

The Java Language Specification
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34854156
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen Софтверный проктологПытаюсь понять, где я вычитал про доступность после загрузки.

Правильно ты все сказал. Конструктор здесь вообще не причем. Статический инициализатор даже так выполниться -Class.forName("className");
Нет, не всё-таки я неправ.
Сразу после загрузки класса ClassLoader'ом статический метод не вызывается.
Ибо Class.forName — это немного не то, что System.class.getClassLoader().getSystemClassLoader().loadClass.
...
Рейтинг: 0 / 0
Что делает ключевое слово static?
    #34854174
Ekshibarov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Софтверный проктолог wessen Софтверный проктологПытаюсь понять, где я вычитал про доступность после загрузки.

Правильно ты все сказал. Конструктор здесь вообще не причем. Статический инициализатор даже так выполниться -Class.forName("className");
Нет, не всё-таки я неправ.
Сразу после загрузки класса ClassLoader'ом статический метод не вызывается.
Ибо Class.forName — это немного не то, что System.class.getClassLoader().getSystemClassLoader().loadClass.

Да, не при загрузке, а при инициализации класса, это разные конечно вещи,
Class.forName("MyClass") это тоже самое что и Class.forName("MyClass",true,currentClassLoader), где второй параметр
указывает на необходимость проведение инициализации.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Что делает ключевое слово static?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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