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

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

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

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

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

Тем не менее, отвечу на твой вопрос.
static{
...
}
Вызывается после того, как класс становится доступен (загружен ClassLoader'ом — т.н. статическая инициализация).
...
Рейтинг: 0 / 0
07.10.2007, 23:31:17
    #34852851
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делает ключевое слово static?
Спасибо, я так и думал.
...
Рейтинг: 0 / 0
08.10.2007, 12:53:27
    #34853758
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делает ключевое слово static?
Sarin
Хватит город позорить, почитай книжку или туториал по Sun.
...
Рейтинг: 0 / 0
08.10.2007, 13:14:13
    #34853845
Изя Шниперсон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делает ключевое слово static?
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
08.10.2007, 13:30:38
    #34853902
Софтверный проктолог
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делает ключевое слово static?
Изя Шниперсон
Код будет исполнен 1 раз при первом вызове конструктора класса.
Да, это действительно так.
Я ошибся.
...
Рейтинг: 0 / 0
08.10.2007, 13:31:07
    #34853904
Софтверный проктолог
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делает ключевое слово static?
Пытаюсь понять, где я вычитал про доступность после загрузки.
...
Рейтинг: 0 / 0
08.10.2007, 14:28:01
    #34854108
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делает ключевое слово static?
Софтверный проктологПытаюсь понять, где я вычитал про доступность после загрузки.

Правильно ты все сказал. Конструктор здесь вообще не причем. Статический инициализатор даже так выполниться -Class.forName("className");
...
Рейтинг: 0 / 0
08.10.2007, 14:30:07
    #34854117
Ekshibarov Vladimir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делает ключевое слово static?
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
08.10.2007, 14:39:17
    #34854156
Софтверный проктолог
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делает ключевое слово static?
wessen Софтверный проктологПытаюсь понять, где я вычитал про доступность после загрузки.

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

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

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


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