HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Определение</a></li>
1 <ul><li><a>Определение</a></li>
2 <li><a>Области применения</a></li>
2 <li><a>Области применения</a></li>
3 <li><a>Основные свойства</a></li>
3 <li><a>Основные свойства</a></li>
4 <li><a>Преимущества и недостатки</a></li>
4 <li><a>Преимущества и недостатки</a></li>
5 <li><a>Отличия от Python</a></li>
5 <li><a>Отличия от Python</a></li>
6 <li><a>Отличие от C#</a></li>
6 <li><a>Отличие от C#</a></li>
7 <li><a>Аннотации Java</a><ul><li><a>Для чего необходимы</a></li>
7 <li><a>Аннотации Java</a><ul><li><a>Для чего необходимы</a></li>
8 <li><a>Обработка аннотаций</a></li>
8 <li><a>Обработка аннотаций</a></li>
9 <li><a>Встроенные аннотации</a></li>
9 <li><a>Встроенные аннотации</a></li>
10 <li><a>Первая аннотация в Java - пример</a></li>
10 <li><a>Первая аннотация в Java - пример</a></li>
11 </ul></li>
11 </ul></li>
12 </ul><p>Java - известный язык программирования. Он пользуется спросом у большинства современных разработчиков, особенно у новичков. Данный инструмент программирования обладает строгой типизацией и относится к типу объектно-ориентированных средств разработки. Язык Java - это язык общего назначения. Он был выпущен компанией Sun Microsystems.</p>
12 </ul><p>Java - известный язык программирования. Он пользуется спросом у большинства современных разработчиков, особенно у новичков. Данный инструмент программирования обладает строгой типизацией и относится к типу объектно-ориентированных средств разработки. Язык Java - это язык общего назначения. Он был выпущен компанией Sun Microsystems.</p>
13 <p>Далее предстоит рассмотреть особенности языка Java более детально. Необходимо выяснить его преимущества и недостатки, отличия от некоторых других известных языков. Также предстоит выяснить, для чего нужен Java. Отдельное внимание будет уделено так называемым аннотациям. Они помогут упростить разработку как новичку, так и более опытному программисту. Представленная ниже информация рассчитана на широкий круг публики. Она поможет ознакомиться с нюансами Java, чтобы понять, когда (и стоит ли вообще) приниматься за его изучение.</p>
13 <p>Далее предстоит рассмотреть особенности языка Java более детально. Необходимо выяснить его преимущества и недостатки, отличия от некоторых других известных языков. Также предстоит выяснить, для чего нужен Java. Отдельное внимание будет уделено так называемым аннотациям. Они помогут упростить разработку как новичку, так и более опытному программисту. Представленная ниже информация рассчитана на широкий круг публики. Она поможет ознакомиться с нюансами Java, чтобы понять, когда (и стоит ли вообще) приниматься за его изучение.</p>
14 <h2>Определение</h2>
14 <h2>Определение</h2>
15 <p>Java - это строго типизированный объектно-ориентированный язык разработки общего назначения. Сейчас его поддерживает сообщество, организованное при помощи Java Community Process.</p>
15 <p>Java - это строго типизированный объектно-ориентированный язык разработки общего назначения. Сейчас его поддерживает сообщество, организованное при помощи Java Community Process.</p>
16 <p>Джава и его сопутствующие технологии распространяются по лицензии GPL. Торговая марка была выкуплена у Sun Microsystems компанией Oracle. Сейчас права на рассматриваемый инструмент разработки принадлежит соответствующей корпорации.</p>
16 <p>Джава и его сопутствующие технологии распространяются по лицензии GPL. Торговая марка была выкуплена у Sun Microsystems компанией Oracle. Сейчас права на рассматриваемый инструмент разработки принадлежит соответствующей корпорации.</p>
17 <p>Изучаемый язык программирования используется большинством крупных организаций вроде Google, eBay, Intel, AliExpress и другими. В 1995 году Java начал набирать популярность, а к концу 2010-го он догнал по своей распространенности Python. Сейчас соответствующий инструмент программирования занимает 3 место в рейтинге наиболее применяемых на практике языков разработки.</p>
17 <p>Изучаемый язык программирования используется большинством крупных организаций вроде Google, eBay, Intel, AliExpress и другими. В 1995 году Java начал набирать популярность, а к концу 2010-го он догнал по своей распространенности Python. Сейчас соответствующий инструмент программирования занимает 3 место в рейтинге наиболее применяемых на практике языков разработки.</p>
18 <h2>Области применения</h2>
18 <h2>Области применения</h2>
19 <p>Задумываясь над тем, что делает Java, можно прийти к выводу, что однозначного ответа нет. Связано это с тем, что изучаемое средство программирования относится к языкам общего назначения. С его помощью удастся написать почти все что угодно:</p>
19 <p>Задумываясь над тем, что делает Java, можно прийти к выводу, что однозначного ответа нет. Связано это с тем, что изучаемое средство программирования относится к языкам общего назначения. С его помощью удастся написать почти все что угодно:</p>
20 <ul><li>программы для Android;</li>
20 <ul><li>программы для Android;</li>
21 <li>промышленные приложения;</li>
21 <li>промышленные приложения;</li>
22 <li>компьютерные программы;</li>
22 <li>компьютерные программы;</li>
23 <li>банковские приложения;</li>
23 <li>банковские приложения;</li>
24 <li>программы для работы с большими данными;</li>
24 <li>программы для работы с большими данными;</li>
25 <li>научные приложения;</li>
25 <li>научные приложения;</li>
26 <li>корпоративное программное обеспечение;</li>
26 <li>корпоративное программное обеспечение;</li>
27 <li>серверы приложений;</li>
27 <li>серверы приложений;</li>
28 <li>веб-серверы;</li>
28 <li>веб-серверы;</li>
29 <li>веб-программы;</li>
29 <li>веб-программы;</li>
30 <li>встроенные системы - от небольших чипов до специальных компьютеров.</li>
30 <li>встроенные системы - от небольших чипов до специальных компьютеров.</li>
31 </ul><p>Java - язык, который может использоваться для создания игр. Одним из самых известных продуктов, написанном на этом языке, является игра Minecraft.</p>
31 </ul><p>Java - язык, который может использоваться для создания игр. Одним из самых известных продуктов, написанном на этом языке, является игра Minecraft.</p>
32 <h2>Основные свойства</h2>
32 <h2>Основные свойства</h2>
33 <p>Java - это мультифункциональный язык программирования объектно-ориентированного типа со строгой типизацией. У него поддерживается ряд ключевых свойств. К ним относят:</p>
33 <p>Java - это мультифункциональный язык программирования объектно-ориентированного типа со строгой типизацией. У него поддерживается ряд ключевых свойств. К ним относят:</p>
34 <ol><li>Мультифункциональность. Джава не имеет привязки ни к одной из популярных платформ. Он может использоваться одинаково хорошо на самых разных операционных системах: Windows, Linux, Android или iOS.</li>
34 <ol><li>Мультифункциональность. Джава не имеет привязки ни к одной из популярных платформ. Он может использоваться одинаково хорошо на самых разных операционных системах: Windows, Linux, Android или iOS.</li>
35 <li>Сильная (строгая) типизация. Java не дает возможности смешивать в выражениях разнообразные типы данных. Также здесь не выполняются в автоматическом режиме неявные преобразования.</li>
35 <li>Сильная (строгая) типизация. Java не дает возможности смешивать в выражениях разнообразные типы данных. Также здесь не выполняются в автоматическом режиме неявные преобразования.</li>
36 <li>Объектно-ориентированность. Java был создан по модели объектно-ориентированного программирования. Он предусматривает наличие классов и объектов. Классы - это типы данных, объекты - это представители классов. Программист самостоятельно создает их, именует и присваивает им те или иные свойства/операции, доступные для выполнения с ними.</li>
36 <li>Объектно-ориентированность. Java был создан по модели объектно-ориентированного программирования. Он предусматривает наличие классов и объектов. Классы - это типы данных, объекты - это представители классов. Программист самостоятельно создает их, именует и присваивает им те или иные свойства/операции, доступные для выполнения с ними.</li>
37 </ol><p>Соответствующие особенности наглядно объясняют ключевые параметры Джава. Зная их, разработчик сможет оценить целесообразность языка разработки для тех или иных целей.</p>
37 </ol><p>Соответствующие особенности наглядно объясняют ключевые параметры Джава. Зная их, разработчик сможет оценить целесообразность языка разработки для тех или иных целей.</p>
38 <h2>Преимущества и недостатки</h2>
38 <h2>Преимущества и недостатки</h2>
39 <p>Java, как и любой другой язык программирования, имеет свои собственные преимущества и недостатки. Знать о них должен каждый разработчик. В противном случае в процессе создания того или иного проекта могут возникнуть некоторые проблемы.</p>
39 <p>Java, как и любой другой язык программирования, имеет свои собственные преимущества и недостатки. Знать о них должен каждый разработчик. В противном случае в процессе создания того или иного проекта могут возникнуть некоторые проблемы.</p>
40 <p>К преимуществам Java относят:</p>
40 <p>К преимуществам Java относят:</p>
41 <ul><li>мультифункциональность;</li>
41 <ul><li>мультифункциональность;</li>
42 <li>простой и понятный синтаксис;</li>
42 <li>простой и понятный синтаксис;</li>
43 <li>независимость - программный код способен успешно функционировать на любой платформе с поддержкой Джавы;</li>
43 <li>независимость - программный код способен успешно функционировать на любой платформе с поддержкой Джавы;</li>
44 <li>высокий уровень надежности, достигаемый за счет строгой типизации;</li>
44 <li>высокий уровень надежности, достигаемый за счет строгой типизации;</li>
45 <li>возможность реализации параллельной разработки;</li>
45 <li>возможность реализации параллельной разработки;</li>
46 <li>хорошую организацию кода;</li>
46 <li>хорошую организацию кода;</li>
47 <li>универсальность применения разнообразных классов;</li>
47 <li>универсальность применения разнообразных классов;</li>
48 <li>высокий уровень читаемости исходного кода.</li>
48 <li>высокий уровень читаемости исходного кода.</li>
49 </ul><p>Также к преимуществам Java можно отнести его универсальность в плане сфер применения. С помощью этого инструмента получится создать как серьезное приложение для работы с финансами, так и достаточно сложную игру.</p>
49 </ul><p>Также к преимуществам Java можно отнести его универсальность в плане сфер применения. С помощью этого инструмента получится создать как серьезное приложение для работы с финансами, так и достаточно сложную игру.</p>
50 <p>Недостатки у изучаемого средства разработки тоже имеются. К их числу относят:</p>
50 <p>Недостатки у изучаемого средства разработки тоже имеются. К их числу относят:</p>
51 <ul><li>необходимость выделения под приложения большого количества памяти;</li>
51 <ul><li>необходимость выделения под приложения большого количества памяти;</li>
52 <li>низкую скорость по сравнению с C++ и C;</li>
52 <li>низкую скорость по сравнению с C++ и C;</li>
53 <li>отсутствие поддержки программирования низкого уровня;</li>
53 <li>отсутствие поддержки программирования низкого уровня;</li>
54 <li>для бизнеса и коммерческого использования с 2019 года выпускаются платные обновления.</li>
54 <li>для бизнеса и коммерческого использования с 2019 года выпускаются платные обновления.</li>
55 </ul><p>У Java также поддерживается автоматически сборка мусора. Эта функциональная возможность неоднозначна. С одной стороны, она является преимуществом, с другой - недостатком из-за невозможности программиста контролировать процесс очистки исходного кода.</p>
55 </ul><p>У Java также поддерживается автоматически сборка мусора. Эта функциональная возможность неоднозначна. С одной стороны, она является преимуществом, с другой - недостатком из-за невозможности программиста контролировать процесс очистки исходного кода.</p>
56 <h2>Отличия от Python</h2>
56 <h2>Отличия от Python</h2>
57 <p>Наряду с Java наиболее известными языками разработки являются Python и C#. Чтобы грамотно выбрать средство программирования, необходимо понимать разницу между упомянутыми инструментами. Стоит начать с Python. Он - основной конкурент Java. Отличается от рассматриваемого языка следующими особенностями:</p>
57 <p>Наряду с Java наиболее известными языками разработки являются Python и C#. Чтобы грамотно выбрать средство программирования, необходимо понимать разницу между упомянутыми инструментами. Стоит начать с Python. Он - основной конкурент Java. Отличается от рассматриваемого языка следующими особенностями:</p>
58 <ol><li>Типизацией. У Джава она является статической - при вводе переменной в исходный код требуется прописывать тип данных. В Python она является динамической. Это значит, что типы данных будут определяться автоматически. Здесь также можно смешивать разнообразные типы переменных.</li>
58 <ol><li>Типизацией. У Джава она является статической - при вводе переменной в исходный код требуется прописывать тип данных. В Python она является динамической. Это значит, что типы данных будут определяться автоматически. Здесь также можно смешивать разнообразные типы переменных.</li>
59 <li>Читаемостью. Java имеет более простой синтаксис по сравнению с другими средствами разработки. Python в этом смысле еще проще. Его код окажется более читаемым.</li>
59 <li>Читаемостью. Java имеет более простой синтаксис по сравнению с другими средствами разработки. Python в этом смысле еще проще. Его код окажется более читаемым.</li>
60 <li>Синтаксисом. Python предусматривает более простую структуру. Этот язык программирования может называться интуитивно понятым. Он больше подходит для изучения новичками. Java является более комплексным, со множеством слов и знаков. Он читается чуть сложнее, хотя многие разработчики чувствуют себя более комфортно при работе со строгим синтаксисом.</li>
60 <li>Синтаксисом. Python предусматривает более простую структуру. Этот язык программирования может называться интуитивно понятым. Он больше подходит для изучения новичками. Java является более комплексным, со множеством слов и знаков. Он читается чуть сложнее, хотя многие разработчики чувствуют себя более комфортно при работе со строгим синтаксисом.</li>
61 </ol><p>Стоит обратить внимание на то, что Python подойдет для разработки небольших приложений. Крупные проекты только с его помощью сформировать проблематично из-за относительно ограниченной функциональности по сравнению с Джава.</p>
61 </ol><p>Стоит обратить внимание на то, что Python подойдет для разработки небольших приложений. Крупные проекты только с его помощью сформировать проблематично из-за относительно ограниченной функциональности по сравнению с Джава.</p>
62 <p>А еще Python уступает Java в плане производительности и скорости. В обоих инструментах исходный код переводится в байт-код. Только у Джава компиляция осуществляется при помощи JIT-компиляции, заранее, а у Python - непосредственно при выполнении приложения. Из-за этого Джава-программы работают более быстро.</p>
62 <p>А еще Python уступает Java в плане производительности и скорости. В обоих инструментах исходный код переводится в байт-код. Только у Джава компиляция осуществляется при помощи JIT-компиляции, заранее, а у Python - непосредственно при выполнении приложения. Из-за этого Джава-программы работают более быстро.</p>
63 <h2>Отличие от C#</h2>
63 <h2>Отличие от C#</h2>
64 <p>Java конкурирует не только с Python, но и с C#. Эти два инструмента оба относятся к объектно-ориентированным языкам со строгой типизацией. У них также схожи синтаксисы. Отличия будут следующими:</p>
64 <p>Java конкурирует не только с Python, но и с C#. Эти два инструмента оба относятся к объектно-ориентированным языкам со строгой типизацией. У них также схожи синтаксисы. Отличия будут следующими:</p>
65 <ol><li>Безопасность. Это - один из ключевых параметров языков программирования. Ни C#, ни Джава не относятся к инструментам с высоким уровнем безопасности. Только Java выступает более надежным. Он создавался так, чтобы ошибки при разработке программного обеспечения оказались минимальными. C# предусматривает наличие указателей, которые делают доступ к памяти менее безопасным.</li>
65 <ol><li>Безопасность. Это - один из ключевых параметров языков программирования. Ни C#, ни Джава не относятся к инструментам с высоким уровнем безопасности. Только Java выступает более надежным. Он создавался так, чтобы ошибки при разработке программного обеспечения оказались минимальными. C# предусматривает наличие указателей, которые делают доступ к памяти менее безопасным.</li>
66 <li>Указатели и управление памятью. Если требуется работа с указателями, рекомендуется выбрать C или C++ для разработки. В C# тоже есть указатели, хоть и ограниченные. А вот в Джава они отсутствуют.</li>
66 <li>Указатели и управление памятью. Если требуется работа с указателями, рекомендуется выбрать C или C++ для разработки. В C# тоже есть указатели, хоть и ограниченные. А вот в Джава они отсутствуют.</li>
67 <li>Поддержка платформ. C# - инструмент для разработки проектов на платформах от компании Microsoft. С его помощью удается создавать программное обеспечение непосредственно для Windows. Java является более универсальным. Он поддерживает разработку для самых разных платформ, включая Windows.</li>
67 <li>Поддержка платформ. C# - инструмент для разработки проектов на платформах от компании Microsoft. С его помощью удается создавать программное обеспечение непосредственно для Windows. Java является более универсальным. Он поддерживает разработку для самых разных платформ, включая Windows.</li>
68 </ol><p>Java и C# отлично подойдут для разработки игр. Второй инструмент программирования также используется для проектов виртуальной реальности.</p>
68 </ol><p>Java и C# отлично подойдут для разработки игр. Второй инструмент программирования также используется для проектов виртуальной реальности.</p>
69 <h2>Аннотации Java</h2>
69 <h2>Аннотации Java</h2>
70 <p>Изучая статьи по Java, можно столкнуться с таким понятием как "аннотации". Они имеют немаловажную роль для разработки программного обеспечения. Далее этот элемент будет изучен более подробно. С ним должен быть знаком каждый Джава-программист.</p>
70 <p>Изучая статьи по Java, можно столкнуться с таким понятием как "аннотации". Они имеют немаловажную роль для разработки программного обеспечения. Далее этот элемент будет изучен более подробно. С ним должен быть знаком каждый Джава-программист.</p>
71 <p>Аннотации - это специальная форма синтаксических метаданных, которая может быть внедрена в исходный код. Записи, используемые для анализа проекта, компиляции или выполнения.</p>
71 <p>Аннотации - это специальная форма синтаксических метаданных, которая может быть внедрена в исходный код. Записи, используемые для анализа проекта, компиляции или выполнения.</p>
72 <p>С помощью аннотаций разработчик указывает компилятору и другим средствам программирования, что делать с участками кода помимо выполнения программы. Это - что-то напоминающее комментарии, но не для человека, а для компьютера.</p>
72 <p>С помощью аннотаций разработчик указывает компилятору и другим средствам программирования, что делать с участками кода помимо выполнения программы. Это - что-то напоминающее комментарии, но не для человека, а для компьютера.</p>
73 <p>Аннотации можно присваивать:</p>
73 <p>Аннотации можно присваивать:</p>
74 <ul><li>пакетам;</li>
74 <ul><li>пакетам;</li>
75 <li>классам;</li>
75 <li>классам;</li>
76 <li>методам;</li>
76 <li>методам;</li>
77 <li>переменным;</li>
77 <li>переменным;</li>
78 <li>параметрам.</li>
78 <li>параметрам.</li>
79 </ul><p>Существуют два типа аннотаций - встроенные и собственные. Оба варианта предусматривают один и тот же синтаксис. Чтобы написать аннотацию, нужно в начале имени поставить символ "@" ("собака", без кавычек). Далее - указать, что делать компилятору с тем или иным блоком кода.</p>
79 </ul><p>Существуют два типа аннотаций - встроенные и собственные. Оба варианта предусматривают один и тот же синтаксис. Чтобы написать аннотацию, нужно в начале имени поставить символ "@" ("собака", без кавычек). Далее - указать, что делать компилятору с тем или иным блоком кода.</p>
80 <h3>Для чего необходимы</h3>
80 <h3>Для чего необходимы</h3>
81 <p>Аннотации - это полезная функция, которая помогает:</p>
81 <p>Аннотации - это полезная функция, которая помогает:</p>
82 <ul><li>автоматически формировать конфигурационные XML-документы и дополнительные Java-коды на основе исходного аннотируемого проекта;</li>
82 <ul><li>автоматически формировать конфигурационные XML-документы и дополнительные Java-коды на основе исходного аннотируемого проекта;</li>
83 <li>документировать приложения и базы данных параллельно с процессом их непосредственной разработки;</li>
83 <li>документировать приложения и базы данных параллельно с процессом их непосредственной разработки;</li>
84 <li>создавать классы, минуя применения маркерных интерфейсов;</li>
84 <li>создавать классы, минуя применения маркерных интерфейсов;</li>
85 <li>быстрее осуществлять подключение зависимостей к программным элементам;</li>
85 <li>быстрее осуществлять подключение зависимостей к программным элементам;</li>
86 <li>выявлять ошибки, которые изначально не заметны компиляторам;</li>
86 <li>выявлять ошибки, которые изначально не заметны компиляторам;</li>
87 <li>решать иные задачи по усмотрению разработчика.</li>
87 <li>решать иные задачи по усмотрению разработчика.</li>
88 </ul><p>Маркерный интерфейс - это когда у интерфейсов нет никаких методов. Они будут действовать подобно маркерам - сообщать компилятору о том, что объекты классов, которые имплементируют соответствующие интерфейсы, должны иметь отличительные черты и восприниматься иначе.</p>
88 </ul><p>Маркерный интерфейс - это когда у интерфейсов нет никаких методов. Они будут действовать подобно маркерам - сообщать компилятору о том, что объекты классов, которые имплементируют соответствующие интерфейсы, должны иметь отличительные черты и восприниматься иначе.</p>
89 <p>Аннотации появились в Java EE 5. Тогда они использовались в качестве инструментов, значительно ускоряющих разработку крупных веб-сервисов и клиентских приложений. Сейчас основные функции и области применения аннотаций изменились. Они представлены ниже.</p>
89 <p>Аннотации появились в Java EE 5. Тогда они использовались в качестве инструментов, значительно ускоряющих разработку крупных веб-сервисов и клиентских приложений. Сейчас основные функции и области применения аннотаций изменились. Они представлены ниже.</p>
90 <h3>Обработка аннотаций</h3>
90 <h3>Обработка аннотаций</h3>
91 <p>Опираясь на аннотации, компиляторы могут с помощью специальных обработчиков генерировать новые коды и конфигурационные файлы.</p>
91 <p>Опираясь на аннотации, компиляторы могут с помощью специальных обработчиков генерировать новые коды и конфигурационные файлы.</p>
92 <p>В качестве обработчиков чаще всего выступают библиотеки и утилиты, которые можно позаимствовать у сторонних программистов или создать их самостоятельно, а также встраивать их в проект непосредственно в среде разработки. Способ подключения зависит от системы сборки или IDE. В Maven используется подключение обработчиков через модуль annotation-user или плагин maven-compiler-plugin.</p>
92 <p>В качестве обработчиков чаще всего выступают библиотеки и утилиты, которые можно позаимствовать у сторонних программистов или создать их самостоятельно, а также встраивать их в проект непосредственно в среде разработки. Способ подключения зависит от системы сборки или IDE. В Maven используется подключение обработчиков через модуль annotation-user или плагин maven-compiler-plugin.</p>
93 <p>Парсинг аннотаций цикличен. Компилятор будет искать их в пользовательском коде, а затем он выберет подходящие обработчики. Если обработчик на основе аннотации создает новые документы с кодом, система переходит к следующему этапу - на нем в качестве исходного материала выступает сгенерированный код. Подобные операции осуществляются до тех пор, пока не будут созданы все необходимые файлы.</p>
93 <p>Парсинг аннотаций цикличен. Компилятор будет искать их в пользовательском коде, а затем он выберет подходящие обработчики. Если обработчик на основе аннотации создает новые документы с кодом, система переходит к следующему этапу - на нем в качестве исходного материала выступает сгенерированный код. Подобные операции осуществляются до тех пор, пока не будут созданы все необходимые файлы.</p>
94 <h3>Встроенные аннотации</h3>
94 <h3>Встроенные аннотации</h3>
95 <p>Рассматриваемый инструмент разработки предусматривает встроенные аннотации. К исходному коду применяются следующие из них:</p>
95 <p>Рассматриваемый инструмент разработки предусматривает встроенные аннотации. К исходному коду применяются следующие из них:</p>
96 <ol><li>Override - маркер. Применяется только к методам. Данная аннотация указывает, что метод должен переопределять метод суперкласса. Override используется для проверки переопределения метода. Если в родительском классе или интерфейсе ничего не найдено, возникает ошибка компиляции.</li>
96 <ol><li>Override - маркер. Применяется только к методам. Данная аннотация указывает, что метод должен переопределять метод суперкласса. Override используется для проверки переопределения метода. Если в родительском классе или интерфейсе ничего не найдено, возникает ошибка компиляции.</li>
97 <li>Deprecates - аннотация, которая указывает, что метод устарел и не рекомендуется для применения в исходном коде. Обычно используется, когда предполагается, что метод в будущем будет удален. При его использовании появляется сообщение-предупреждение.</li>
97 <li>Deprecates - аннотация, которая указывает, что метод устарел и не рекомендуется для применения в исходном коде. Обычно используется, когда предполагается, что метод в будущем будет удален. При его использовании появляется сообщение-предупреждение.</li>
98 <li>SuppressWarnings - аннотация, помогающая компилятору подавить предупреждения компиляции, определенные в параметрах.</li>
98 <li>SuppressWarnings - аннотация, помогающая компилятору подавить предупреждения компиляции, определенные в параметрах.</li>
99 <li>SafeVarargs - указывает на то, что никакие небезопасные действия, связанные с параметром переменного количества аргументов, не могут быть использованы. Аннотация применяется только к методам и конструкторам с переменным количеством параметров, объявленных как final или static.</li>
99 <li>SafeVarargs - указывает на то, что никакие небезопасные действия, связанные с параметром переменного количества аргументов, не могут быть использованы. Аннотация применяется только к методам и конструкторам с переменным количеством параметров, объявленных как final или static.</li>
100 </ol><p>Также язык предусматривает аннотации, применяемые к другим аннотациям. К ним можно отнести:</p>
100 </ol><p>Также язык предусматривает аннотации, применяемые к другим аннотациям. К ним можно отнести:</p>
101 <ol><li>Retention - указывает на то, как отмеченная аннотация может храниться: в коде, в скомпилированном классе или во время работы исходного кода. позволяет задать жизненный цикл аннотации.</li>
101 <ol><li>Retention - указывает на то, как отмеченная аннотация может храниться: в коде, в скомпилированном классе или во время работы исходного кода. позволяет задать жизненный цикл аннотации.</li>
102 <li>Documented - отметка аннотации как включаемой в документацию.</li>
102 <li>Documented - отметка аннотации как включаемой в документацию.</li>
103 <li>Target - отмечает аннотацию как ограничивающую, какие элементы аннотации могут быть к ней применимы.</li>
103 <li>Target - отмечает аннотацию как ограничивающую, какие элементы аннотации могут быть к ней применимы.</li>
104 <li>Inherited - указывает на возможность расширения той или иной аннотации за счет подклассов ее классов. Указывает аннотацию, которая будет унаследована потомком класса, отмеченного соответствующим "маркером".</li>
104 <li>Inherited - указывает на возможность расширения той или иной аннотации за счет подклассов ее классов. Указывает аннотацию, которая будет унаследована потомком класса, отмеченного соответствующим "маркером".</li>
105 </ol><p>Все это - встроенные аннотации. Разработчики также могут создавать в Java собственные аннотации.</p>
105 </ol><p>Все это - встроенные аннотации. Разработчики также могут создавать в Java собственные аннотации.</p>
106 <h3>Первая аннотация в Java - пример</h3>
106 <h3>Первая аннотация в Java - пример</h3>
107 <p>Чтобы лучше понимать работу рассматриваемого инструмента, стоит создать собственную аннотацию. Пусть будет дан веб-сервис с поддержкой нескольких версий одного функционала для соблюдения политики совместимости. А еще - предусмотрен обработчик аннотаций, позволяющий компилятору выбирать нужные версии.</p>
107 <p>Чтобы лучше понимать работу рассматриваемого инструмента, стоит создать собственную аннотацию. Пусть будет дан веб-сервис с поддержкой нескольких версий одного функционала для соблюдения политики совместимости. А еще - предусмотрен обработчик аннотаций, позволяющий компилятору выбирать нужные версии.</p>
108 <p>Нужно создать место хранения данных о версии и авторе функционала. Для этого будет создана новая аннотация - @interface:</p>
108 <p>Нужно создать место хранения данных о версии и авторе функционала. Для этого будет создана новая аннотация - @interface:</p>
109 <p>Здесь добавлены два атрибута, которые выглядят, как методы. Параметры отличаются от методов тем, что они никогда не используют throws и не назначают никаких характеристик. Их значениями могут быть:</p>
109 <p>Здесь добавлены два атрибута, которые выглядят, как методы. Параметры отличаются от методов тем, что они никогда не используют throws и не назначают никаких характеристик. Их значениями могут быть:</p>
110 <ul><li>примитивные типы;</li>
110 <ul><li>примитивные типы;</li>
111 <li>классы или обращения к ним;</li>
111 <li>классы или обращения к ним;</li>
112 <li>перечисления;</li>
112 <li>перечисления;</li>
113 <li>массивы;</li>
113 <li>массивы;</li>
114 <li>другие аннотации.</li>
114 <li>другие аннотации.</li>
115 </ul><p>Допустимо указание значения по умолчанию - как в случае с полем author. При формировании аннотации атрибуты с дефолтными значениями можно пропускать. А вот как будет выглядеть блок кода, благодаря которому приложение поймет, как пользоваться аннотацией:</p>
115 </ul><p>Допустимо указание значения по умолчанию - как в случае с полем author. При формировании аннотации атрибуты с дефолтными значениями можно пропускать. А вот как будет выглядеть блок кода, благодаря которому приложение поймет, как пользоваться аннотацией:</p>
116 <p>Теперь остается ассоциировать аннотацию с тем или иным классом и запустить приложение.<a>Лучше изучить Java и основы работы с этим языком</a>помогут дистанционные компьютерные курсы.</p>
116 <p>Теперь остается ассоциировать аннотацию с тем или иным классом и запустить приложение.<a>Лучше изучить Java и основы работы с этим языком</a>помогут дистанционные компьютерные курсы.</p>
117 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
117 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
118  
118