<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sib">
	<id>https://sibwiki.org/index.php?action=history&amp;feed=atom&amp;title=Java</id>
	<title>Java - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sibwiki.org/index.php?action=history&amp;feed=atom&amp;title=Java"/>
	<link rel="alternate" type="text/html" href="https://sibwiki.org/index.php?title=Java&amp;action=history"/>
	<updated>2026-05-31T13:13:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://sibwiki.org/index.php?title=Java&amp;diff=85909&amp;oldid=prev</id>
		<title>Yaroslav: Bot: Automated import of articles</title>
		<link rel="alternate" type="text/html" href="https://sibwiki.org/index.php?title=Java&amp;diff=85909&amp;oldid=prev"/>
		<updated>2026-05-30T21:54:24Z</updated>

		<summary type="html">&lt;p&gt;Bot: Automated import of articles&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторонка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{YouTube|TwIPTar6yzU|width=300|height=250}}&lt;br /&gt;
&lt;br /&gt;
Java — строго типизированный, полностью объектно-ориентированный язык программирования общего назначения, отличительной особенностью которого является глубокая реализация принципа мультиплатформенности. Изначально разработанный компанией Sun Microsystems (впоследствии поглощенной корпорацией Oracle), язык стабильно удерживает позиции в мировых рейтингах популярности благодаря высокой безопасности исполнения кода и развитой корпоративной инфраструктуре.&lt;br /&gt;
&lt;br /&gt;
== История создания и эволюция версий ==&lt;br /&gt;
Разработка языка была инициирована программистом Джеймсом Гослингом. Первоначально проект носил название «Oak» (Дуб) и предназначался для программирования бытовых электронных устройств. Ввиду того, что торговая марка Oak уже была зарегистрирована, язык был переименован в Java в честь одноименной марки кофе, производимого на острове Ява. &lt;br /&gt;
&lt;br /&gt;
Официальная первая версия языка (Java 1.0) была выпущена 23 января 1996 года. На ранних этапах развития интернета (в конце 1990-х годов) язык приобрел широкую известность благодаря технологии Java-апплетов — небольших приложений, встраиваемых непосредственно в веб-страницы для обеспечения интерактивности, однако с развитием динамического веба эта технология утратила свою актуальность.&lt;br /&gt;
&lt;br /&gt;
Важными вехами в развитии спецификаций языка стали:&lt;br /&gt;
* JDK 1.1 (1997 год) — внедрение поддержки кодировки Unicode и базовые улучшения производительности.&lt;br /&gt;
* J2SE 1.2 (1998 год) — выход стандарта Java 2.&lt;br /&gt;
* J2SE 5.0 (2004 год) — масштабное обновление, в рамках которого в язык были добавлены перечислимые типы данных (заимствованные из языков C/C++), аннотации (метаданные, не влияющие непосредственно на выполнение кода, но предоставляющие сведения для его обработки) и механизмы обобщенного программирования (дженерики).&lt;br /&gt;
* Java SE 6 (2006 год) — добавление интерфейсов для коллекций, потоков для обработки сжатых данных и встроенного HTTP-сервера.&lt;br /&gt;
&lt;br /&gt;
Интересным историческим эпизодом является конфликт вокруг виртуальной машины от Microsoft. В конце 1990-х годов корпорация Microsoft разработала собственную реализацию среды исполнения — Microsoft Java Virtual Machine, интегрировав её в операционную систему Windows. Эта реализация содержала расширения, оптимизированные исключительно под Windows, что нарушало фундаментальный принцип кроссплатформенности языка. В результате компания Sun Microsystems инициировала успешное судебное разбирательство. Впоследствии, в 2005 году, Microsoft выпустила язык J# для платформы Visual Studio, рассчитанный на программистов, привыкших к синтаксису Java.&lt;br /&gt;
&lt;br /&gt;
== Архитектура и вычислительная модель ==&lt;br /&gt;
Ключевой архитектурной особенностью Java является трансляция исходного кода не в машинный код целевого процессора, а в промежуточный аппаратно-независимый байт-код. Выполнение этого байт-кода осуществляется специализированной программой — виртуальной машиной Java (Java Virtual Machine, JVM), которая выступает в роли интерпретатора. Данный подход гарантирует абсолютную мультиплатформенность: написанная программа может быть запущена на любой аппаратной архитектуре и в любой операционной системе, для которой существует реализация JVM. &lt;br /&gt;
&lt;br /&gt;
Использование виртуальной машины обеспечивает высочайший уровень безопасности среды исполнения. JVM полностью контролирует действия запущенной программы, и любые попытки несанкционированного доступа к данным, памяти или превышения установленных полномочий немедленно вызывают системные прерывания. Дополнительным фактором надежности выступает отказ от прямой манипуляции физическими адресами памяти.&lt;br /&gt;
&lt;br /&gt;
Главным историческим недостатком архитектуры Java является снижение производительности. В сравнении с программами, скомпилированными на языке C++, приложения на Java могут работать в 1.5–2 (а в некоторых вычислительных задачах до 7) раз медленнее, потребляя при этом в 10–30 раз больше оперативной памяти. Для решения этой проблемы в современные виртуальные машины внедрена технология JIT-компиляции (Just-In-Time), транслирующая критические участки байт-кода в прямой машинный код непосредственно во время исполнения, а также активно используются платформенно-ориентированные оптимизированные стандартные библиотеки. Концепция виртуальной машины Java оказала колоссальное влияние на индустрию и впоследствии легла в основу платформы Microsoft .NET.&lt;br /&gt;
&lt;br /&gt;
== Объектно-ориентированная парадигма ==&lt;br /&gt;
Java реализует концепцию объектно-ориентированного программирования (ООП) в абсолютной форме. В языке отсутствует понятие глобальных или независимых процедурных функций — любой исполняемый код может существовать исключительно в виде метода какого-либо класса. Даже базовые математические операции (такие как вычисление синуса или косинуса) реализованы как методы специализированных математических объектов. Точкой входа в программу традиционно является статический метод main.&lt;br /&gt;
&lt;br /&gt;
В языке присутствуют следующие особенности объектной модели:&lt;br /&gt;
* Отсутствие деструкторов: управление освобождением памяти полностью делегировано встроенному механизму автоматической сборки мусора (Garbage Collector).&lt;br /&gt;
* Конструкторы: специальные методы для инициализации объектов при их создании. Имя конструктора всегда совпадает с именем класса. Если программист не объявляет конструктор явно, компилятор создает его автоматически.&lt;br /&gt;
* Методы могут объявляться как статические (принадлежащие классу в целом), финальные (не допускающие переопределения в наследниках) и приватные. &lt;br /&gt;
* Абстрактные классы и методы: методы, содержащие сигнатуру, но не имеющие тела реализации (аналог чисто виртуальных функций в C++). Для их использования класс также должен быть помечен модификатором abstract.&lt;br /&gt;
* Интерфейсы: специализированные структуры, содержащие набор абстрактных методов. В современных версиях языка интерфейсы также могут содержать реализованные статические и приватные методы.&lt;br /&gt;
&lt;br /&gt;
Язык поддерживает концепции обобщенного программирования (шаблоны). Однако, в отличие от C++, механизм шаблонов в Java реализуется исключительно на уровне компиляции путем стирания типов, и в сгенерированном байт-коде информация о типах шаблона отсутствует.&lt;br /&gt;
&lt;br /&gt;
Концептуальный пример определения класса и конструктора:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 class Box {&lt;br /&gt;
     double width;&lt;br /&gt;
     double height;&lt;br /&gt;
     double depth;&lt;br /&gt;
&lt;br /&gt;
     // Описание конструктора класса&lt;br /&gt;
     Box() {&lt;br /&gt;
         depth = 10;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     // Метод вычисления объема&lt;br /&gt;
     double volume() {&lt;br /&gt;
         return width * height * depth;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Система типов и синтаксис ==&lt;br /&gt;
Синтаксис Java сформировался под сильным влиянием языков C и C++, заимствовав у них управляющие конструкции и операторные скобки. Для обработки исключительных ситуаций применяется стандартный механизм с блоками try, catch и finally.&lt;br /&gt;
&lt;br /&gt;
В языке строго определено восемь примитивных типов данных, характеристики которых жестко стандартизированы для обеспечения переносимости кода между различными платформами. Все остальные сущности (включая строки и массивы) являются объектами. &lt;br /&gt;
&lt;br /&gt;
Переменные объектного типа фактически являются безопасными ссылками (указателями). Присваивание одного объекта другому копирует только адрес ссылки в памяти, а не содержимое самого объекта. В отличие от C++, разыменование скрыто от программиста: обращение к полям и методам объекта через ссылочную переменную происходит напрямую. Неинициализированные переменные автоматически заполняются нулями. Если разработчику требуется использовать примитивный тип в контексте ссылочного объекта, применяются специальные классы-обертки (например, класс Boolean для примитивного логического типа). Допускаются неявные преобразования типов при математических операциях.&lt;br /&gt;
&lt;br /&gt;
Структурно весь код организован в пакеты (packages), что косвенно отражает архитектурное влияние языка Ада. Пакетная система имеет строгую древовидную иерархию, имена задаются латиницей и разделяются точками. Абсолютно все описания, классы и аннотации обязаны принадлежать какому-либо пакету.&lt;br /&gt;
&lt;br /&gt;
== Сферы применения ==&lt;br /&gt;
Java представляет собой универсальный язык, широко применяемый в индустрии программного обеспечения. Экосистема языка разделена на несколько семейств:&lt;br /&gt;
* Java Standard Edition (SE) — базовая платформа для универсальных приложений.&lt;br /&gt;
* Jakarta Enterprise Edition (EE) — решения для корпоративного сектора и крупных предприятий.&lt;br /&gt;
* Java Micro Edition (ME) — платформа для мобильных устройств.&lt;br /&gt;
* Java Card — специализированная среда для смарт-карт.&lt;br /&gt;
&lt;br /&gt;
Язык является одним из основных инструментов разработки мобильных приложений для операционной системы Android. На Java базируются решения крупнейших транснациональных корпораций (таких как IBM и Oracle), язык глубоко интегрирован в системы управления базами данных и имеет безупречно отработанные стандарты для создания сетевых HTTP-серверов. Разработка ведется в мощных интегрированных средах, среди которых наиболее известны Eclipse, NetBeans, JDeveloper и BlueJ. Стандартный набор утилит (JDK) также позволяет компилировать код напрямую из командной строки.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
[[JavaScript]]&lt;br /&gt;
[[JOSS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Языки программирования]]&lt;br /&gt;
[[Category:Объектно-ориентированное программирование]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=TwIPTar6yzU Смотреть видео]&lt;/div&gt;</summary>
		<author><name>Yaroslav</name></author>
	</entry>
</feed>