Где используется Java и зачем нужна? Как научиться программировать на Java — полное руководство.

Язык Java был создан в 1995 году, и за 22 года своего существования покорил сердца миллионов программистов. Как ему это удалось? Почему за это время не появилось ни одной достойной замены? Чтобы разобраться в этом, поговорим об особенностях языка Java.

Компания Sun Microsystems при выпуске языка заложила 5 парадигм потенциального успеха:

  1. простота, объектная ориентированность и понятность;
  2. надёжность и безопасность;
  3. переносимость и независимость от платформы;
  4. высокая производительность;
  5. интрепретируемость, поточность и динамичность.

Рассмотрим каждую из них подробнее.

Простота

Синтаксис языка был унаследован от C++. Сегодня на фоне Python, Groove или Go его трудно назвать простым, однако тогда эволюционный вид позволил привлечь внимание Си-разработчиков.

Стандартная программа “Hello World” выглядит следующим образом:

public static void main(String args)
{
System.out.println("Hello World");
}

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

Надёжность

Надёжность обеспечивается двумя принципами:

  • ООП. Иерархия наследования увеличивает читаемость кода и снижает количество невынужденных ошибок.
  • Строгая типизация. Разработчику приходится выполнять больший объём работы, но данные интерпретируется однозначно.

Кроме того, первоначально в Java предполагался запрет прямого доступа к памяти, что также повышало бы надёжность. Но разработчики оставили несколько лазеек, например бэкдор sun.misc.Unsafe, которые этот запрет обходят.

Безопасность

Кроме сохранения общей формы конструкций, Java по сравнению с C++ формально лишился двух потенциальных опасностей: указателей и множественного наследования. На деле обе функции сохранены, но представлены в ином виде: вместо указателей используются значения, а в множественном наследовании участвуют не классы, а интерфейсы. Тем не менее, такая особенность java программирования почти исключает возможный урон от невнимательности разработчика.

Удобство

Дословно концепция Java звучит как: «Write once, run anywhere». То есть исполняемость кода не зависит от используемой операционной системы или установленного ПО. Достигается это благодаря транслированию в байт-код виртуальной машиной JVM.

Как нельзя кстати пригодилась эта особенность java на android. Разнообразие производителей, моделей телефонов, характеристик - всё это могло бы негативно сказаться на работе приложений, если бы не существование такого универсального инструмента.

Производительность

Особенность ява, связанная с транслированием в байт-код, положительно сказывается и на производительности конечных продуктов. По скорости исполнения однотипные программы на java уступают в 1,5-2 раза программам на C/C++, при этом превосходят JavaScript, Ruby, Python.

Развитая экосистема

За 22 года жизни язык оброс десятками IDE и фреймворков, сотнями сообществ и форумов, тысячами библиотек и плагинов. Всё это благоприятно сказывается на пороге вхождения в профессию, востребованности и качеству производимых с помощью java продуктов.

Безусловно, каждый популярный язык программирования уникален, каждый имеет свои недостатки и преимущества. Особенности Java не имеют революционного характера, они незначительны, но вместе с тем фундаментальны. Именно то, что отличает хороший язык от лучшего.

Язык программирования Java является объектно-ориентированным языком программирования, который был создан Джеймсом Гослингом (James Gosling) и другими инженерами в компании Sun Microsystems. Он был разработана в 1991 году, как часть проекта "Green Project", и официально объявлен 23 мая 1995 года, в SunWorld, а выпущен в ноябре. Java была изначально разработана как замена для C++ (хотя набор функций больше похожа на Objective C) и известный как Дуб (в честь дерева за пределами офиса Гослинга). Подробнее об истории Java можно найти в статье о платформе Java, которая включает в себя язык, Java Virtual Machine, и Java API. Java является собственностью компании Sun Microsystems; Java является торговой маркой компании Sun Microsystems.

Существовали четыре основных цели при создании языка Java:

  • Объектно-ориентированный язык.
  • Независим от целевой платформы (более или менее).
  • Должен содержать объекты и библиотеки для работы в сети.
  • Он предназначен для выполнения кода из удаленных источников надежно.

Объектная ориентация
Первая характеристика, объектно-ориентированный подход ("ОО"), относится к методу программирования для чайников и дизайну язык. Основная идея ОО заключается в разработке программного обеспечения все это "вещи" (то есть объекты), которыми можно манипулировать, а не действия, которые нужно выполнять. Это основано на том, что первое (вещи) изменяются реже и радикальнее, чем действия, что делает такие объекты (на самом деле вещи, содержащие данные) более стабильной основу для разработки программного обеспечения. Целью является, делать большие проекты программного обеспечения легко управляемыми, таким образом, можно добиться повышения качества и сокращения числа неудачных проектов программирования для начинающих.

Независимость от платформы

Вторая характеристика, независимость от платформы, означает, что программы, написанные на языке Java должны работать аналогично на различном оборудовании. Программист должен быть в состоянии написать программу один раз и запустить её в любом месте. Это достигается путем компиляции Java-кода "наполовину" в байт-код - упрощенные машинные команды, которым соответствуют стандартный набор реальных команд процессору. Этот код затем необходимо запустить на виртуальной машине, то есть программе, написанойя на машинном коде для взаимодействия с аппаратными средствами, которая переводит байт-код Java в пригодный для использования код на конкретном оборудовании. Кроме того, предоставляются стандартизированные библиотеки для обеспечения доступа к особенностям архитектуры конкретной машины (например, графики и сетей) единым способам. Язык Java также включает поддержку для многопоточных программ - жизненно важная необходимость для многих сетевых приложений и основа программирования.

Первая реализация языка использовали интерпретирующую виртуальную машину для достижения мобильности, и многие реализации используют такой подходдо сих пор. Однако, эти реализации создают программы, которые выполняются медленнее, чем полностью скомпилированные программы, созданные типичным компилятором С++ и немного позднее появившимися компиляторами языка Java, поэтому язык страдает от приобретенной репутации "производтиель медленных программ". В более поздних реализациях Java VM создает программы, которые работают намного быстрее, используя несколько методов.

Первый метод - это просто компиляция непосредственно в машинный код, как традиционные компилятор, пропуская этап превращения программы в байт-код целиком. Этим достигается большая производительность, но за счет утраты мобильности и переносимости программ. Другой метод, "В поцессе исполнения" или "JIT", компилирует байт-код Java в машинный код во время выполнения программы. Более сложные виртуальные машины даже использовали динамические перекомпиляции, в которой VJM может анализировать поведение работы программы и выборочно перекомпилировать и оптимизировать критические части программы. Обе эти технологии позволяют программе воспользоваться скоростью машинного код без потери мобильности.

Портативность является технически трудной целью для достижение и успех Java вдостижении этой цели является предметом споров. Хотя на самом деле можно писать программы для платформы Java, которые ведут себя одинаково на многих платформах, но все же большее количество доступных платформ не выполняет программу как ожидалось, а выдает небольшое количество ошибок или несоответствий, что привело к появлению пародии на известный лозунг компании Sun "Написал один раз, работает везде" в другой "Написал один раз, отлаживал везде ".

Независимый от платформы Java, однако, стал очень успешным для серверов приложений, таких как веб-сервисы, сервлеты, или Enterprise Java Beans.

Безопасное выполнение удаленного кода

Платформа Java была одной из первых систем для обеспечения широкой поддержки для выполнения кода из удаленных источников. Апплет может работать в браузере пользователя, в процессе выполнения кода может загрузить маленький кусочек чужого кода с удаленного сервера HTTP и выполнить. Удаленное выполнения кода происходит в весьма ограниченной "песочнице", которая защищает пользователя от некорректного или вредоносного кода. Издатели таких приложений могут подать заявку на сертификат, который они могли бы использовать для цифровой подписи апплетов как "безопасный", что дает им разрешение, чтобы вырваться из "песочницы" и получить доступ к локальной файловой системе и сети, конечно, предположительно этот процесс происходит под контролем пользователя.

По мнению большинства людей, Java технология достаточно хорошо подходит для всех этих целей. Язык, однако, не без недостатков.

Java как правило, более высокого уровня, чем аналогичные языки (такие как C++), что означает, что языку Java не хватает функций, таких как аппаратные или для работы с конкретными типами данных или, например, низкоуровневыме указатели на произвольные ячейки памяти. Хотя этими функциями часто злоупотребляют или используются программистами неправильно, они также являются мощными инструментами. Однако, технология Java включает Java Native Interface (JNI), способ вызова машинного кода из кода на языке Java. С JNI можно использовать эти возможности.

Некоторые программисты также жалуются на отсутствие множественного наследования, мощный инструмент нескольких объектно-ориентированных языков программирования, например, С++. Язык Java отделяет наследование типа и реализации, что позволяет наследование несколько определений типа через интерфейсы, но только единичное наследование типа данных с помощью иерархии классов. Это позволяет использовать большинство из преимуществ множественного наследования, избегая при этом многие из его опасностей. Кроме того, с помощью конкретных классов, абстрактных классов, а также интерфейсы, программист на языке Java имеет возможность выбора полной, частичной или нулевой реализации для типа объекта, он сам определяет, что обеспечивает максимальную полезность в разработке приложений.

Есть люди, которые считают, что для определенных проектов, объектно-ориентированный подход делает работу сложнее, а для других проще. Эта жалоба не является уникальной для языка Java, потому что она распространяется и на другие объектно-ориентированные языки.

Пример программы "привет мир" на языке Java:

Public class HelloWorld { public static void main(String args) { System.out.println("Hello world!"); } }

Управляющие инструкции:
Циклы
while (Boolean expression) { statement(s) } do { statement(s) } while (Boolean expression); for (initialisation ; termination condition ; incrementing expr) { statement(s) }
Условные уператоры
if (Boolean expression) { statement(s) } if (Boolean expression) { statement(s) } else { statement(s) }
Выбор
if (Boolean expression) { statement(s) } else if (Boolean expression) { statement(s) } else if (Boolean expression) { statement(s) } else { statement(s) } switch (integer expression) { case constant integer expr: statement(s) break; ... default: statement(s) break; }
Отлов ошибок
try { statement(s) } catch (exception type) { statement(s) } catch (exception type) { statement(s) } finally { statement(s) }
Базовые типы данных

Символы можно хранить в 16-битный Unicode кодировке. Такой символ может содержать все обычные символы, но также включает в себя наборы символов для многих других языков, кроме английского, в том числе греческий, кириллицу, китайский, арабский и т.д. Java-программы могут использовать все эти символы, хотя большинство редакторов не имеют встроенной поддержки для наборов символов, которые отличаются от обычных символов ASCII. Массивы и строки не примитивные типы: они являются объектами.

Java - это язык программирования. Он позволяет программистам писать инструкции для компьютера, используя команды на английском языке, вместо того, чтобы писать в цифровом коде. Java - язык программирования высокого уровня, потому что его код легко писать и читать. Как и в обычных языках, Java имеет набор правил, которые определяют, как написаны инструкции. Эти правила называются "синтаксисом". Готовый высокоуровневый код Java транслируется в машинопонятный цифровой код, который исполняется компьютером.

Кто создал язык программирования Java?

Java была создана в начале 90-х командой программистов во главе с Джеймсом Гослингом для компании Sun Microsystems. Изначально Java создавалась для разработки на мобильных устройствах. Но когда в 1996 году вышла Java 1.0, основной фокус этого языка сместился на использование в интернете. Java дала больше интерактивности с пользователями, позволяя разработчикам создавать анимированные страницы. Со временем Java стала успешным языком программирования как для интернета, так и в других областях.

Спустя 20 лет, Java все еще остается невероятно популярным языком с более 6,5 миллионами разработчиков по всему миру.

Почему стоит выбрать Java?

Java создавалась на основе нескольких ключевых принципов:

1. Легкость в использовании.

Основы Java взяты из ЯП C++. Несмотря на мощность C++, этот язык имеет довольно сложный синтаксис и неадекватен для всех требований Java. Совершенствуясь, Java улучшила идеи C++, давая язык программирования мощный, но при этом простой.

2. Надежность.

Java сводит к минимум фатальные ошибки, возникающие из-за ошибок программистов. Таким образом было представлено объектно-ориентированное программирование. После того, как данные и действия с ними были собраны в одном месте, надежность языка Java повысилась.

3. Безопасность.

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

4. Платформонезависимость.

Программы, написанные на Java, должны были работать независимо от того, на какой платформе они запускались. Java изначально была переносимым языком, для которого не важна ни операционная система, ни аппаратная составляющая компьютера.

Команда Sun Microsystems успешно скомбинировала ключевые принципы. Своей популярностью Java обязана надежности, безопасности, простоте в использовании и портабельности.

С чего начать изучение Java?

1. Установить JDK

Чтобы начать программировать на Java, нужно скачать и установить Java development Kit (пакет разработчика Java, JDK). Как только вы установите JDK на компьютер, вы сразу сможете начать писать свою первую программу.

2. Выбрать IDE

IDE - интегрированная среда разработки. Для разработки приложений на Java существует несколько разных инструментов. Их цель - помочь написать Java-приложение. Есть несколько сред разработки на Java, но мы рекомендуем NetBeans - идеальна для начинающих. Вы сможете сосредоточиться всего на паре команд NetBeans, чтобы достичь своих целей.

3. Первые шаги

Неизбежно первой программой любого новичка становится простая программа "Hello World", которая просто выводит это название. Такая простая программа продемонстрирует вам компиляцию, запуск и работу приложения в среде разработки типа NetBeans.

После создания своей первой программы пора начать изучение языка по урокам для начинающих, например, с курсов - . Они проведут вас через разные стадии изучения синтаксиса Java.

Или, если вы из тех, кто любит сразу погружаться в омут с головой, вы можете начать свое обучение более амбициозно. Чем больше вы бросаетесь в глубины языка, тем большему вы научитесь. Это можно сделать, сразу начав писать Java-приложение.

4. Как выбрать свое первое приложение на Java

За любым языком программирования, в том числе и Java, стоит много теории. Вам придется выучить синтаксис языка и как приложение собирается целиком. Но нам кажется, что важнее помнить о том, что язык Java нужен для того, чтобы им пользоваться. Существует бесконечное число приложений, которые можно создать с помощью него. И если вы с самого начала выберите, какое приложение хотите создать, оно будет диктовать вам путь изучения Java-синтаксиса.

Скажем, вы ничего не знаете о том, как писать программы на Java, но решили начать с простого калькулятора. Вы уже знаете, что такое калькулятор и как он выглядит. Вопросов к дизайну нет, есть вопросы о реализации. Вы узнаете, что в процессе создания программы вы будете постоянно задавать себе вопросы в духе "А как сделать это?.." И их будет много. Но чем больше будет вопросов, тем больше вы узнаете о языке.

Например, в первую очередь вы, скорее всего, подумаете о GUI (графический пользовательский интерфейс), попросту то, как программа будет выглядеть на экране во время работы приложения. Интуитивно вы чувствуете, как должна выглядеть программа, по своему опыту работы с готовыми приложениями. Во-первых, основное окно программы, где будут расположены все управляющие элементы калькулятора. Кнопки для цифр, для операций (сложение, умножение и т.п.). Элемент для отображения результата вычислений. И так далее.

Так мы примерно обрисовали ваш первый набор вопросов. Как сделать окно приложения? Как добавить на него кнопки? Какой элемент использовать для вывода результатов? Вот где начинается изучение языка Java. Вы начинаете искать ответы, как создать приложение на Java, какие элементы использовать для окна приложения, какие элементы - для кнопок и т.д. Ответы вы всегда найдете на сайтах с уроками Java, в книгах, на форумах программистов.

Самое главное - сделать первую рабочую программу. Не думайте о том, чтобы сразу сделать все оптимально. Это придет с опытом, когда вы наберетесь уверенности в программировании на языке Java. А пока что единственная цель - заставить код на Java скомпилироваться и выполниться. Даже если программа не будет работать как было задумано, это даст начало изучению.

5. Другим путем

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

Java - язык программирования, разработанный компанией SunMicrosystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине(JVM) независимо от компьютерной архитектуры. Дата официального выпуска - 23 мая 1995 года. Сегодня технология Java предоставляет средства для превращения статических Web-страниц в интерактивные динамические документы и для создания распределенных не зависящих от платформы приложений.

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) -программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

Достоинство подобного способа выполнения программ - в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программы алгоритмов, реализованных на языке Java. В последнее время был внесен ряд усовершенствований, которые несколько увеличили скорость выполнения программ на Java:

Применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,

Широкое использование платформенно - ориентированного кода (native-код) в стандартных библиотеках,

Аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).



Основные возможности языка:

Автоматическое управление памятью;

Расширенные возможности об работки исключительных ситуаций;

Богатый набор средств фильтрации ввода/вывода;

Набор стандартных коллекций, таких как массив, список, стек и т.п.;

Наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);

Наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;

Встроенные в язык средства создания многопоточных приложений;

Унифицированный доступ к базам данных:

На уровне отдельных SQL-запросов-на основе JDBC,SQLJ;

На уровне концепции объектов, обладающих способностью к хранению в базе данных-на основе Java Data Objects и Java Persistence API;

Поддержка шаблонов (начиная с версии 1.5);

Параллельное выполнение программ .

1.4.3 Язык программирования C#

В июне 2000 года стало известно о новом языке программирования, родившемся в недрах компании Microsoft. Он стал частью новой технологии Microsoft, названной.NET (читается «Dot Net»). В рамках этой технологии предусмотрена единая среда выполнения программ (Common Language Runtime, CLR), написанных на разных языках программирования. Одним из таких языков, основным в этой среде, и является C# (C#, читается «C sharp», «Си шарп»). Названием языка, конечно же, хотели подчеркнуть его родство с Си++, ведь # - это два пересекшихся плюса. Но больше всего новый язык похож на Java . И нет сомнений, что одной из причин его появления стало стремление Microsoft ответить на вызов компании Sun.

Хотя официально авторы C# не называются, но на титульном листе одной из предварительных редакций справочника по языку обозначены Андерс Хейльсберг (Anders Hejlsberg) - создатель Турбо Паскаля и Дельфи, перешедший в 1996 году в Microsoft, и Скотт Вилтамут (Scott Wiltamuth).

Единая среда выполнения программ основана на использовании промежуточного языка IL (Intermediate Language - промежуточный язык), исполняющего почти ту же роль, что и байт-код виртуальной машины языка Ява. Используемые в рамках технологии.NET компиляторы с различных языков транслируют программы в IL-код. Так же как и байт-код Явы, IL-код представляет собой команды гипотетической стековой вычислительной машины. Но есть и разница в устройстве и использовании IL.

Во-первых, в отличие от JVM, IL не привязан к одному языку программирования. В составе, предварительных версий Microsoft.NET имеются компиляторы с языков Си++, C#, Visual Basic. Независимые разработчики могут добавлять другие языки, создавая компиляторы с этих языков в IL-код.

Во-вторых, IL предназначен не для программной интерпретации, а для последующей компиляции в машинный код. Это позволяет достичь существенно большего быстродействия программ. Содержащие IL-код файлы несут достаточно информации для работы оптимизирующего компилятора .

«C# - простой, современный, объектно-ориентированный язык с безопасной системой типов, происходящий от Си и Си++. C# будет удобен и понятен для программистов, знающих Си и Си++. C# сочетает продуктивность Visual Basic и мощность Си++.» Такими словами начинается описание C#.

Рассмотрим технические особенности языка:

Единицей компиляции является файл (как в Си, Си++, Яве). Файл может содержать одно или несколько описаний типов: классов (class), интерфейсов (interface), структур (struct), перечислений (enum), типов-делегатов (delegate) с указанием (или без указания) об их распределении по пространствам имен;

Пространства имен (namespace) регулируют видимость объектов программы (как в Си++). Пространства имен могут быть вложенными. Разрешено употребление объектов программы без явного указания пространства имен, которому этот объект принадлежит. Достаточно лишь общего упоминания об использовании этого пространства имен в директиве using (как в Турбо Паскале). Предусмотрены псевдонимы для названий пространств имен в директиве using (как в языке Оберон);

Элементарные типы данных: 8-разрядные (sbyte, byte), 16-разрядные (short, ushort), 32-разрядные (int, uint) и 64-разрядные (long, ulong) целые со знаком и без знака, вещественные одиночной (float) и двойной (double) точности, символы Unicode (char), логический тип (bool, не совместим с целыми), десятичный тип, обеспечивающий точность 28 значащих цифр (decimal);

Структурированные типы: классы и интерфейсы (как в Яве), одномерные и многомерные (в отличие от Явы) массивы, строки (string), структуры (почти то же, что и классы, но размещаемые не куче и без наследования), перечисления, несовместимые с целыми (как в Паскале);

Типы-делегаты или просто «делегаты» (подобны процедурным типам в Модуле‑2 и Обероне, указателям на функции в Си и Си++);

Типы подразделяются на ссылочные (классы, интерфейсы, массивы, делегаты) и типы-значения (элементарные типы, перечисления, структуры). Объекты ссылочных типов размещаются в динамической памяти (куче), а переменные ссылочных типов являются, по сути, указателями на эти объекты. В случае типов-значений переменные представляют собой не указатели, а сами значения. Неявные преобразования типов разрешены только для случаев, когда они не нарушают систему безопасности типов и не приводят к потере информации. Все типы, включая элементарные, совместимы с типомobject, который является базовым классом всех прочих типов. Предусмотрено неявное преобразование типов-значений к типу object, называемое упаковкой (boxing), и явное обратное преобразование - распаковка (unboxing);

Автоматическая сборка мусора (как в Обероне и Яве);

Обширный набор операций с 14 уровнями приоритета. Переопределение операций (как в Алголе-68, Аде, Си++). С помощью операторов checked и unchecked можно управлять контролем переполнения при выполнении операций с целыми;

Методы с параметрами значениями, параметрами-ссылками (ref) и выходными параметрами (out). Слова ref и out нужно записывать перед параметром не только в описании метода, но и при вызове. Наличие выходных параметров позволяет контролировать выполнение определяющих присваиваний. По правилам языка любая переменная должна гарантированно получить значение до того, как будет предпринята попытка ее использования;

Управляющие операторы: if, switch, while, do, for, break, continue (как в Си, Си++ и Яве). Оператор foreach, выполняющий цикл для каждого элемента «коллекции», несколько разновидностей оператора перехода goto;

Обработка исключений (как в Яве);

Свойства - элементы классов (объектов), доступ к которым осуществляется так же, как и к полям (можно присвоить или получить значение), но реализуется неявно вызываемыми подпрограммами get и set (как в Объектном Паскале - входном языке системы Delphi);

Индексаторы - элементы классов (объектов), позволяющие обращаться к объектам так же, как к массивам (указанием индекса в квадратных скобках). Реализуются неявно вызываемыми подпрограммами get и set. Например, доступ (для чтения) к символам строки может выполняться как к элементам массива благодаря тому, что для стандартного класса string реализован индексатор;

События - элементы классов (поля или свойства) процедурного типа (делегаты), к которым вне класса, где они определены, применимы только операции += и –=, позволяющие добавить или удалить методы-обработчики событий для объектов данного класса;

Небезопасный (unsafe) код, использующий указатели и адресную арифметику, локализуется в частях программы, помеченных модификатором unsafe;

Препроцессор, предусматривающий, в отличие от Си и Си++, только средства условной компиляции .

Разумеется, обсуждавшиеся недостатки C# вовсе не лишают язык перспектив. Он во многих отношениях предпочтительней Си++. Общая неудовлетворенность языком Си++, признанием которой является само появление нового языка, является одной из основных предпосылок успеха C#.

Сравнивая C# с Явой, можно увидеть много общих черт. Правда, если Ява-системы многоплатформны, то реализация C# существует пока только для операционной системы Windows и только одна. Но, несмотря на тяжеловесность, можно ожидать, что язык будет реализован и для других систем. Кроме того, сама платформа Microsoft .NET с единой средой выполнения программ может быть продвинута на альтернативные архитектуры, в первую очередь на UNIX-системы.

C# представляется более реалистичным языком, чем Ява. В отличие от Явы, он самодостаточен. То есть на C# можно написать любую программу, не прибегая к другим языкам. Это возможно благодаря наличию «небезопасных» блоков кода, которые открывают доступ непосредственно к аппаратуре. В языке Ява для доступа к средствам низкого уровня должны использоваться «родные методы» (native methods), которые необходимо программировать на других языках.

И, разумеется, перспективы C# в первую очередь связаны с теми усилиями, которые, конечно же, приложит компания Microsoft для его продвижения .

Прежде, чем перейти к обучению, начнём с введения в java-программирование, разберёмся, что это за такой язык программирования. Немного истории. Язык Java разработан компанией Sun Microsystems, создателем которого был Джеймс Гослинг, и выпущен в 1995 году в качестве основных компонентов компании Sun Microsystems - Java платформ (Java 1.0 ).

По состоянию на 2017 год последней версией Java Standard Edition является 8 (J2SE). С развитием Java, и её широкой популярностью, несколько конфигураций были построены для различных типов платформ. Например: J2EE - приложения для предприятий, J2ME - для мобильных приложений.

Sun Microsystems переименовала прежнюю версию J2 и ввела новые: Java SE, Java EE и Java ME. Введение в программирование Java различных версий подтверждало знаменитый слоган компании «».

История создания языка Java

История создания языка Java начинается в июне 1991 года, когда Джеймс Гослинг создал проект для использования в одном из своих многочисленных сет-топ проектов. Язык, который рос вне офиса Гослинга, как дуб, Oak - первоначальное название Java до 1995 года, после в дальнейшем история Java продолжалась под именем Green , а позже был переименован как Java.

Но официальной датой создания языка Java считается 23 мая 1995 года, после выпуска компанией Sun первой реализации Java 1.0. Она гарантировала «Напиши один раз, запускай везде », обеспечивая недорогой стоимостью на популярных платформах.

13 ноября 2006 года, Sun выпустила большую часть как свободное и открытое программное обеспечение в соответствии с условиями GNU General Public License (GPL).

После 8 мая 2007 года судьба Java сложилась иначе. Компания завершила процесс, делая все чтобы исходный код был бесплатным и открытым, кроме небольшой части кода, на который компания не имела авторских прав.

Преимущества Java как языка программирования

Объектно-ориентированный : в Java все является объектом. Дополнение может быть легко расширено, так как он основан на объектной модели.

Платформонезависимый : в отличие от многих других языков, включая C и C++, Java, когда был создан, он не компилировался в платформе конкретной машины, а в независимом от платформы байт-коде. Этот байт код распространяется через интернет и интерпретируется в Java Virtual Machine (JVM), на которой он в настоящее время работает.

Простой : процессы изучения и введение в язык программирования Java остаются простыми. Если Вы понимаете основные концепции объектно-ориентированного программирования, то он будет прост для Вас в освоении.

Безопасным : методы проверки подлинности основаны на шифровании с открытым ключом.

Архитектурно-нейтральным : компилятор генерирует архитектурно-нейтральные объекты формата файла, что делает скомпилированный код исполняемым на многих процессорах, с наличием системе Java Runtime.

Портативный : архитектурно-нейтральный и не имеющий зависимости от реализации аспектов спецификаций - все это делает Java портативным. Компилятор в Java написан на ANSI C с чистой переносимостью, который является подмножеством POSIX.

Прочный : выполняет усилия, чтобы устранить ошибки в различных ситуациях, делая упор в основном на время компиляции, проверку ошибок и проверку во время выполнения.

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

Интерпретированный : Java байт-код переводится на лету в машинные инструкции и нигде не сохраняется. Делая процесс более быстрым и аналитическим, поскольку связывание происходит как дополнительное с небольшим весом процесса.

Высокопроизводительный : введение Just-In-Time компилятора, позволило получить высокую производительность.

Распространенный : предназначен для распределенной среды интернета.

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

После небольшого введения, обзора преимуществ и истории Java, приступим к нашему обучению.

Инструменты, которые понадобятся

Для выполнения примеров, рассмотренных в этом учебнике , Вам нужен компьютер Pentium 200 МГц с минимальной оперативной памятью 64 Мб (рекомендуется оперативная память 128 Мб).

Вам также понадобится следующее программное обеспечение:

  • Linux 7.1, Windows 95/98/2000/7/8 и выше или другая операционная система.
  • JDK 5 и выше.
  • Notepad или любой другой текстовый редактор.

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

Ознакомившись с особенностями истории появления и преимуществами Java, Вы закончили урок введения в язык программирования. Следующий урок будет Вас вести к изучению языка и документации. Проинструктирует Вас о том, как установить и подготовить среду для разработки приложений.