Static - это термин, используемый в некоторых языках программирования для определения области или области хранения данных (поля), которая не привязана к какому-либо конкретному экземпляру объекта. В большинстве случаев этот тег, если используется, должен использоваться в сочетании с определенным тегом языка программирования.

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

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

В C # и C ++ статический конструктор выполняет инициализационный код перед первым использованием этого типа и выполняется только один раз для времени жизни процесса. Это отличается от обычного конструктора, который инициализирует новый экземпляр класса и выполняет для каждого нового экземпляра этого типа.

Слово «статический» означает «неизменный» в других контекстах, но не в этом: содержимое статических полей обычно может быть изменено во время выполнения. В этом контексте это означает «стоять неподвижно» из термина компилятора / компоновщика, означая, что местоположение хранилища (адрес памяти) статического поля вычисляется во время связи и никогда не изменяется во время выполнения, поэтому оно появляется в объектном коде как константа , Это отличается от поля экземпляра, адрес которого относится к началу блока памяти экземпляра каждого объекта, который будет отличаться для каждого экземпляра объекта.

Другое использование термина static может относиться к любым относительно постоянным данным , Например: при поиске информации вывод компилятора можно назвать статическим счетом страницы, что обеспечит повышение динамической оценки, которую страница получит от другого алгоритма.