1.2. Этапы подготовки исполняемой программы. Безопасность.
Исходный файл на языке Java — это текстовый файл, содержащий в себе одно или несколько описаний классов. Транслятор Java предполагает, что исходные тексты программ хранятся в файлах с расширениями java. Получаемый в процессе трансляции байт-код для каждого класса записывается в отдельном выходном файле, с именем совпадающем с именем класса, и расширением class. Именно сlass-файлы, содержащие байт-код, интерпретируются системой времени выполнения Java в машинный код конкретной системы. Прежде всего байт-код Java загружается в систему времени выполнения загрузчиком классов. Загрузчик классов отвечает за то, чтобы были загружены все классы, необходимые для выполнения приложения. Затем байт-код проверяется верификатором байт-кода на отсутствие операций, которые могли бы нарушить безопасность системы или вызвать в ней аварийную ситуацию. Важно отметить, что загрузчик классов и верификатор байт-кодов не делают никаких предположений относительно происхождения кодов получены они с локальной файловой системы или с другого континента. Верификатор гарантирует, что любой код, прошедший проверку, может быть использован интерпретатором без риска повредить его (интерпретатор), а именно:
- не может произойти переполнение или «исчерпание» стека
- параметры для инструкций байт-машины имеют нужный тип
- доступ к полям и методам объектов не нарушает объявленных в классе правил (public, private, protected)
После такой проверки на безопасность байт-код интерпретируется в машинный код и запускается на выполнение интерпретатором. Причём классы, полученные локально (заслуживающие безусловного доверия), и классы, присланные по сети из остального мира (и потенциально враждебные), находятся в разных пространствах имён. При разрешении ссылки на какой-либо класс он ищется прежде всего в локальном пространстве. Это не позволяет «внешним» кодам подменить один из базовых классов в системе. Также в процессе интерпретации происходит подключение необходимых библиотек (файлы с расширением jar). Весь описанный процесс исполнения Java программ изображён на рис. 1.








Сделал Java программу с интерфейсом / Погодное приложение
Язык программирования Java — зачем его учить и что на нем пишут
Источник: studfile.net
Происхождение Java: предназначение языка и его сильные стороны
Чтобы досконально изучить язык программирования Java, следует понять причины его создания, факторы, обусловившие его формирование, а также унаследованные им особенности. Подобно другим удачным языкам программирования, предшествовавшим Java, этот язык сочетает в себе лучшие элементы из своего богатого наследия и новаторские концепции, применение которых обусловлено его особым положением. В этой статье поясняется, как и почему был разработан этот язык, что делает его столь важным и как он развивался за годы своего существования.
- Зарождение современного программирования: язык С
- Следующий этап: язык C++
- Предпосылки к созданию Java
- Вас заинтересует / Intresting for you:
Несмотря на то что язык Java неразрывно связан с Интернетом, важно помнить, что это, прежде всего, язык программирования. Разработка и усовершенствование языков программирования обусловлены двумя основными причинами:
- адаптация к изменяющимся средам и областям применения;
- реализация улучшений и усовершенствований в области программирования.
Как будет показано в этой статье, разработка языка Java почти в равной мере была обусловлена обеими этими причинами.
Язык Java тесно связан с языком C++, который, в свою очередь, является прямым наследником языка С. Многие особенности Java унаследованы от обоих этих языков. От С язык Java унаследовал свой синтаксис, а многие его объектно-ориентированные свойства были перенесены из C++.
Собственно говоря, ряд определяющих характеристик языка Java был перенесен — или разработан в ответ на возникшие потребности — из его предшественников. Более того, создание Java своими корнями уходит глубоко в процесс усовершенствования и адаптации, который происходит в языках программирования на протяжении нескольких последних десятилетий. Поэтому в этом разделе рассматривается последовательность событий и факторов, приведших к появлению Java. Как станет ясно в дальнейшем, каждое новшество в архитектуре языка, как правило, было обусловлено необходимостью найти решение той или иной основной проблемы, которую не могли разрешить существовавшие до этого языки. И Java не является исключением из этого правила.
Зарождение современного программирования: язык С
Язык С буквально потряс компьютерный мир. Его влияние нельзя недооценивать, поскольку он полностью изменил подход к программированию. Создание языка С было прямым следствием потребности в структурированном, эффективном и высокоуровневом языке, который мог бы заменить код ассемблера в процессе создания системных программ. Как вы, вероятно, знаете, при проектировании языка программирования часто приходится находить компромиссы между:
- простотой использования и предоставляемыми возможностями;
- безопасностью и эффективностью;
- устойчивостью и расширяемостью.
До появления языка С программистам, как правило, приходилось выбирать между языками, которые позволяли оптимизировать тот или иной ряд характеристик. Так, на языке FORTRAN можно было писать достаточно эффективные программы для научных вычислений, но он не очень подходил для написания системного кода. Аналогично язык BASIC был очень прост в изучении, но у него было не очень много функциональных возможностей, а недостаточная структурированность ставила под сомнение его полезность для написания крупных программ. На языке ассемблера можно писать очень эффективные программы, но его трудно изучать и эффективно использовать. Более того, отладка ассемблерного кода может оказаться весьма сложной задачей.
Еще одна усложнявшая дело проблема состояла в том, что первые языки программирования вроде BASIC, COBOL и FORTRAN были разработаны без учета принципов структурирования. Вместо этого основными средствами управления программой в них были операторы безусловного перехода GOTO. В результате программы, написанные на этих языках, проявляли тенденцию к появлению так называемого “макаронного кода” — множества запутанных переходов и условных ветвей, которые делали программу едва ли доступной для понимания. И хотя языки наподобие Pascal структурированы, они не были предназначены для написания эффективных программ и лишены ряда важных средств, необходимых для написания разнообразных программ. (В частности, применять Pascal для написания системного кода было нецелесообразно, принимая во внимание наличие нескольких стандартных диалектов этого языка.)
Таким образом, до изобретения языка С, несмотря на затраченные усилия, ни одному языку не удавалось разрешить существовавшие в то время противоречия в программировании. Вместе с тем потребность в таком языке становилась все более насущной.
В начале 1970-х годов началась компьютерная революция, и потребность в программном обеспечении быстро превысила возможности программистов по его созданию. В академических кругах большие усилия были приложены к созданию более совершенного языка программирования. Но в то же время стало все больше ощущаться влияние еще одного, очень важного фактора.
Компьютеры, наконец, получили достаточно широкое распространение, чтобы была достигнута “критическая масса”. Компьютерное оборудование больше не находилось за закрытыми дверями. Впервые программисты получили буквально неограниченный доступ к своим вычислительным машинам. Это дало свободу для экспериментирования.
Программисты смогли также приступить к созданию своих собственных инструментальных средств. Накануне создания С произошел качественный скачок в области языков программирования.
Язык С, изобретенный и впервые реализованный Деннисом Ритчи на мини- ЭВМ DEC PDP-11, работавшей под управлением операционной системы UNIX, явился результатом процесса разработки, начавшегося с предшествующего ему языка BCPL, разработанного Мартином Ричардсом. BCPL оказал влияние на язык, получивший название В, который был изобретен Кеном Томпсоном и в начале 1970-х гг. привел к появлению языка С. В течение долгих лет фактическим стандартом языка С была его версия, которая поставлялась вместе с операционной системой UNIX (она описана в книге Язык программирования С Брайана Кернигана и Денниса Ритчи, 2-е издание, И.Д. “Вилямс”, 2007 г.). Язык С был формально стандартизован в декабре 1989 г„ когда Национальный институт стандартизации США (American National Standards Institute — ANSI) принял стандарт на С.
Многие считают создание С началом современного этапа развития языков программирования. Этот язык успешно соединил противоречивые свойства, которые доставляли столько неприятностей в предыдущих языках. В итоге появился мощный, эффективный, структурированный язык, изучение которого было сравнительно простым.
Кроме того, ему была присуща еще одна, почти непостижимая особенность: он был разработан специально для программистов. До появления С языки программирования проектировались в основном в качестве академических упражнений или бюрократическими организациями.
Иное дело — язык С. Он был спроектирован, реализован и разработан практикующими программистами и отражал их подход к программированию. Его функции были отлажены, проверены и многократно переработаны людьми, которые действительно пользовались этим языком. Таким образом, получился язык, который сразу же понравился программистам.
И действительно, язык С быстро приобрел много приверженцев, которые едва ли не молились на него. Благодаря этому С получил быстрое и широкое признание среди программистов. Короче говоря, С — это язык, разработанный программистами для программистов. Как станет ясно в дальнейшем, эту замечательную особенность унаследовали язык Java.
Следующий этап: язык C++
В конце 1970-х-начале 1980-х гг. язык С стал господствующим языком программирования и продолжает широко применяться до сих пор. А если С — удачный и удобный язык, то может возникнуть вопрос: чем обусловлена потребность в каком-то другом языке? Ответ состоит в постоянно растущей сложности программ.
На протяжении всей истории развития программирования постоянно растущая сложность программ порождала потребность в более совершенных способах преодоления их сложности. Язык C++ явился ответом на эту потребность. Чтобы лучше понять, почему потребность преодоления сложности программ является главной побудительной причиной создания языка C++, рассмотрим следующие факторы.
С момента изобретения компьютеров подходы к программированию коренным образом изменились. Когда компьютеры только появились, программирование осуществлялось изменением двоичных машинных инструкций вручную с панели управления компьютера. До тех пор, пока длина программ не превышала нескольких сотен инструкций, этот подход был вполне приемлем. В связи с разрастанием программ был изобретен язык ассемблера, который позволил программистам работать с более крупными и все более сложными программами, используя символьные представления машинных инструкций. По мере того как программы продолжали увеличиваться в объеме, появились языки высокого уровня, которые предоставили программистам дополнительные средства для преодоления сложности программ.
Первым языком программирования, который получил широкое распространение, был, конечно же, FORTRAN. Хотя он и стал первым впечатляющим этапом в программировании, его вряд ли можно считать языком, который способствует созданию ясных и простых для понимания программ. 1960-е годы ознаменовались зарождением структурного программирования.
Эта методика программирования наиболее ярко проявилась в таких языках, как С. Пользуясь структурированными языками, программисты впервые получили возможность без особых затруднений создавать программы средней сложности. Но и методика структурного программирования уже не позволяла программистам справиться со сложными проектами, когда они достигали определенных масштабов. К началу 1980-х. сложность многих проектов начала превышать предел, позволявший справиться с ними, применяя структурный подход. Для решения этой проблемы была изобретена новая методика программирования, получившая название объектно-ориентированного программирования (ООП). Объектноориентированное программирование подробно рассматривает^ ся в последующих главах, а здесь приводится лишь краткое его определение: ООП — это методика программирования, которая помогает организовывать сложные программы, применяя принципы наследования, инкапсуляции и полиморфизма.
Из всего сказанного выше можно сделать следующий вывод: несмотря на то, что С является одним из лучших в мире языков программирования, существует предел его способности справляться со сложностью программ. Как только размеры программы превышают определенную величину, она становится слишком сложной, чтобы ее можно было охватить как единое целое. Точная величина этого предела зависит как от структуры самой программы, так и от подходов, используемых программистом, но начиная с определенного момента любая программа становится слишком сложной для понимания и внесения изменений, а следовательно, неуправляемой. Язык C++ предоставил возможности, которые позволили программистам преодолеть этот порог сложности, чтобы понимать крупные программы и управлять ими.
Язык C++ был изобретен Бьярне Страуструпом (Bjarne Stroustrup) в 1979 г., когда он работал в компании Bell Laboratories в городе Мюррей-Хилл, шт. Нью-Джерси. Вначале Страуструп назвал новый язык “С with Classes” (С с классами). Но в 1983 г. это название было изменено на C++. Язык C++ расширяет функциональные возможности языка С, добавляя в него объектно-ориентированные свойства.
А поскольку язык C++ построен на основе С, то в нем поддерживаются все функциональные возможности, свойства и преимущества С. Это обстоятельство явилось главной причиной успешного распространения C++ в качестве языка программирования. Изобретение языка C++ не было попыткой создать совершенно новый язык программирования. Напротив, все усилия были направлены на усовершенствование уже существующего очень удачного языка.
Предпосылки к созданию Java
К концу 1980-х и в начале 1990-х гг. объектно-ориентированное программирование на C++ стало основной методикой программирования. И в течение некоторого, хотя и непродолжительного периода времени казалось, что программисты наконец изобрели идеальный язык. Ведь язык C++ сочетал в себе высокую эффективность и стилистические элементы языка С наряду с объектно-ориентированным подходом, и поэтому его можно было использовать для создания самых разных программ. Но, как и прежде, уже вызревали факторы, которые должны были в очередной раз стимулировать развитие языков программирования. Прошло еще несколько лет, и развитие Всемирной паутины и Интернета достигло “критической массы”, что и привело к еще одной революции в программировании.
Источник: oracle-patches.com
Что такое Java? История создания
Аннотация: Первая лекция начинается с рассказа о событиях, происходивших задолго до официального объявления Java. Хотя эта технология на сегодняшний день разительно отличается от того, как задумывали ее создатели, однако многие особенности берут свое начало от решений, принятых в то время. Будут освещены все основные этапы создания, появления и развития Java. Также в лекции излагаются необходимые базовые знания для разработчиков – основные свойства платформы Java, и почему она является платформой, а не просто языком программирования. Что входит в пакет разработчика, где найти нужную информацию, какие дополнительные продукты предоставляет Sun, чем различаются Java и Java Script – ответы на эти и другие общие вопросы находятся в первой лекции.
Что такое Java?
Что знают о Java обычные пользователи персональных компьютеров и Internet ? Что говорят о нем разработчики, которые не занимаются этой технологией профессионально?
Java широко известна как новейший объектно-ориентированный язык, легкий в изучении и позволяющий создавать программы, которые могут исполняться на любой платформе без каких-либо доработок ( кроссплатформенность ). Еще с Java почему-то всегда связана тема кофе (изображения логотипов, названия продуктов и т.д.). Программисты могут добавить к этому описанию, что язык похож на упрощенный С или С++ с добавлением garbage collector’а — автоматического сборщика «мусора» ( механизм освобождения памяти, которая больше не используется программой ). Также известно, что Java ориентирована на Internet , и самое распространенное ее применение — небольшие программы, апплеты , которые запускаются в браузере и являются частью HTML -страниц.
Критики, в свою очередь , утверждают, что язык вовсе не так прост в применении, многие замечательные свойства лишь заявлены, а на самом деле не очень-то работают, а главное — программы на Java исполняются чрезвычайно медленно. Следовательно, это просто некая модная технология, которая только на время привлечет к себе внимание, а затем исчезнет, как и многие другие.
Однако некоторые факты не позволяют согласиться с такой оценкой. Во-первых, со времени официального объявления Java прошло достаточно много времени для «просто модной технологии». Во-вторых, конференция разработчиков Java One , которая впервые была организована в 1996 году, уже через год собрала более 10000 участников и стала крупнейшей конференцией по созданию программного обеспечения в мире (каждый следующий год число участников росло примерно на 5000). Специальная программа Sun , объединяющая разработчиков Java по всему миру, Java Developer Connection , также была запущена в 1996 году, через год она насчитывала более 100.000 разработчиков, а в 2000 году — более 1,5 миллионов. На сегодня число программистов на Java оценивается в 3 миллиона.
Было выпущено пять основных версий языка, начиная с 1.0 в 1995 году и заканчивая 1.4 в феврале 2002 года (21 сентября 2017 вышла 9я версия). Следующая версия 1.5 выпущена в 2004 году. Все версии и документацию к ним всегда можно было бесплатно получить на официальном web-сайте Java http://java.sun.com/.
Один из первых продуктов для Java — JDK 1.1 (средство разработки на Java ) — в течение первых трех недель после объявления был загружен более 220.000 раз. Версия 1.4 была загружена более 2 миллионов раз за первые 5 месяцев. Практически все ведущие производители программного обеспечения лицензировали технологию Java и регулярно объявляют о выходе построенных на ней продуктов. Это и «голубой гигант» IBM , и создатель платформы Macintosh фирма Apple, и лидер в области реляционных БД Oracle , и даже главный конкурент фирмы Sun — корпорация Microsoft — лицензировала Java еще в марте 1996 года.
В следующем разделе описывается краткая история зарождения и развития идей, приведших к появлению Java , что поможет понять, чем на самом деле является эта технология, каковы ее свойства и отличительные черты, для чего она предназначена и откуда взялось такое разнообразие мнений о ней.
Источник: intuit.ru