Хотите узнать, как создавать динамические веб-сайты? Существует множество вариантов, наиболее популярными из которых являются ASP, PHP и другие языки сценариев. Другим вариантом является Java. Конечно, Java начиналась как язык для написания веб-апплетов и кроссплатформенных приложений, но в последние несколько лет ее роль была расширена и теперь включает программирование веб-страниц на стороне сервера. На самом деле, на рынке труда есть большой спрос для разработчиков, имеющих опыт написания серверных Java-приложений. Ваш первый шаг к добавлению этих навыков в ваше резюме должен состоять в том, чтобы получить общее представление о языке Java в целом.
Это первая из серии статей, в которой вы узнаете о языке программирования Java с учетом особенностей и методов, применимых для создания динамических веб-сайтов. В частности, после ознакомления с основами языка и объектно-ориентированными концепциями, необходимыми для эффективного использования языка, я перейду к обсуждению Java-сервлетов и JavaServer Pages (JSP), двух технологий, используемых для создания динамических данных, управляемые веб-сайты с использованием Java. Попутно я познакомлю вас со смежными технологиями, такими как Java Database Connectivity (JDBC). Но прежде чем я буду слишком увяз в описании грядущих событий, позвольте мне обратить ваше внимание на цель этой статьи: введение в основы языка Java.
Что такое Java?
Java — это полнофункциональный язык программирования, такой как C / C ++, но более простой и более структурированный. Как и C ++, Java — это объектно-ориентированный язык программирования, концепцию которого я расскажу в следующей статье этой серии. В общих чертах, однако, программы на Java написаны путем создания структурированного набора программных компонентов, которые взаимодействуют друг с другом для получения желаемого эффекта. Эти компоненты называются объектами, и основная задача разработчика Java состоит в том, чтобы определить наилучшую структуру объектов для создания системы, которая работает в соответствии с требованиями, максимально эффективно и, по возможности, создавая компоненты, которые могут повторно использоваться в аналогичных приложениях.
Если все это звучит немного страшно, не волнуйтесь; все это будет иметь смысл, как только вы это узнаете. А пока мы продолжим в маленьких шагах.
Java-программы вместо того, чтобы работать непосредственно в операционной системе компьютера, работают на «виртуальной машине Java» (JVM), которая сама по себе является программой, работающей в операционной системе компьютера. Поскольку производство виртуальных машин Java строго стандартизировано, несовместимости между различными платформами минимальны. Это означает, что теоретически любая операционная система, имеющая JVM (почти все основные операционные системы в наши дни), может запускать любую Java-программу без необходимости перекомпиляции программы для каждой платформы. Это приводит к одной из самых привлекательных особенностей языка Java: «Пиши один раз, беги куда угодно» (WORA). Недостатком является то, что Java-программы, как правило, работают медленнее, поскольку виртуальная машина должна преобразовывать инструкции Java-программ и передавать их операционной системе, в которой она выполняется.
Большинство современных веб-браузеров также могут запускать программы Java, загруженные из Интернета, либо с помощью встроенной в браузер JVM (как в браузерах Netscape 4 и Internet Explorer), либо путем взаимодействия со стандартной JVM, устанавливаемой отдельно (как в Netscape 6 и Оперные браузеры). Java-программы, разработанные для работы в веб-браузерах, называются Java-апплетами. Когда Java была первоначально выпущена, большая часть маркетинговой шумихи вокруг языка была сосредоточена на этих маленьких программах, которые работают в веб-браузерах. Однако с годами внимание Java в Интернете сместилось на серверные приложения (включая сервлеты и JSP), а апплеты Java во многих случаях были заменены более гибкими технологиями, такими как Dynamic HTML и Flash. В наши дни широко используются Java-апплеты, такие как веб-программы чата и онлайн-игры.
Теперь, когда вы знаете, во что вы ввязываетесь, пришло время овладеть инструментами, необходимыми для начала ваших усилий по разработке Java.
Что вам нужно
Все, что вам нужно для разработки и запуска программ на Java, можно бесплатно загрузить с веб-сайта Sun Java по адресу www.javasoft.com . Основным пакетом, который вам понадобится, является Java 2 Software Development Kit (SDK), Standard Edition. SDK содержит как инструменты разработки для создания программ Java, так и среду выполнения Java (JRE) для запуска программ Java. JRE включает в себя JVM и различные вспомогательные файлы. За исключением Java-апплетов, которые запускаются с использованием внутренних JVM некоторых браузеров, любой, кто хочет запустить Java-программу, должен будет установить JRE, которую также можно загрузить отдельно из SDK. Однако для написания собственных программ на Java вам нужен полный SDK. Вы также захотите получить копию пакета документации Java 2 Platform, которая включает в себя исчерпывающий справочник по всем встроенным функциям, которые Java предоставляет для вас. Как только вы познакомитесь с основами языка и будете готовы писать реальные программы, эта документация станет вашим лучшим другом.
Подробные инструкции по установке предоставляются для каждого из этих пакетов, и я настоятельно рекомендую вам следовать им в письме. Многие люди, которые устанавливают версию для Windows, просто загружают и запускают программу установки и не выполняют дополнительную задачу по настройке критических переменных среды, чтобы обеспечить правильную работу Java. Единственное упущение в предоставленных инструкциях по установке — это метод добавления / редактирования переменных среды в Windows ME и Windows 2000. Методы, представленные в инструкциях, работают для Windows 95/98 / NT, но в Windows ME вам нужно нажать Пуск , Выполнить … , А затем введите msconfig, чтобы запустить программу настройки системы Windows ME. Переменные среды системы можно настроить на вкладке « Среда ». В Windows 2000 процедура, которую они предоставляют, почти правильная. Запустив значок панели управления системой , перейдите на вкладку « Дополнительно » и нажмите кнопку « Переменные среды» , а затем следуйте инструкциям.
Чтобы дважды проверить правильность установки Java SDK на вашем компьютере, откройте командную строку (т. Е. Командную строку или командную строку MS-DOS в Windows или XTerm в Linux). Попробуйте две команды, показанные ниже. Если вы получаете похожий вывод, вы можете идти. Если ваша операционная система не распознает команды, вам может потребоваться перезагрузка для обнаружения изменений переменных среды.
C:> java –version java version "1.3.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-C) Java HotSpot(TM) Client VM (build 1.3.0-C, mixed mode) C:> javac Usage: javac <options> <source files> where possible options include: ...list of options...
После того, как вы установили SDK (и, необязательно, документацию), вы готовы написать свою первую программу на Java. Прежде чем продолжить, позвольте мне сказать несколько слов об интегрированных средах разработки (IDE). Вы, наверное, видели рекламу причудливых сред разработки, как коммерческих, так и бесплатных, для написания программ на Java. Хотя они могут быть полезны для опытного разработчика Java (я сам интенсивно использую IBM VisualAge для Java в своих собственных проектах), я настоятельно рекомендую вам, как новичку, начать использовать простые инструменты, предоставляемые в SDK.
Я рассуждаю по этому вопросу о том, что многие функции, предоставляемые интегрированными средами разработки, такими как JBuilder и другие, предназначены для обеспечения быстрого доступа к определенным задачам. Проблема в том, что, если вы не понимаете «длинный путь» выполнения этих задач заранее, у вас будут большие проблемы с пониманием последствий и ловушек использования автоматизированных методов, предоставляемых этими инструментами. Эта проблема сродни выбору между текстовым редактором, таким как HotDog Pro, и WYSIWYG-редактором, таким как Dreamweaver, для создания веб-сайта. Хотя Dreamweaver может помочь вам быстро создавать некоторые расширенные эффекты, но если вы не понимаете, как заранее кодировать эти же эффекты, вам будет сложно создавать какие-либо дополнительные эффекты, выходящие за рамки тех, которые предоставляются с помощью автоматизированных инструментов Dreamweaver. ,
Ваша первая программа на Java
Цель этого раздела — дать вам представление о процессе написания, компиляции и запуска Java-программы. Вы также увидите, как выглядит Java-программа, пусть даже очень простая. Я объясню все в основных терминах, но если что-то не имеет смысла для вас, не беспокойтесь об этом. Некоторые концепции будут знакомы только опытным программистам, и если это не вы, не беспокойтесь об этом! На этом этапе для вас наиболее важно привыкнуть к тому, что нужно сделать, а не понять, почему .
Начните с создания нового каталога в удобном месте; в большинстве случаев вам нужно, чтобы файлы каждой из ваших программ на Java хранились в отдельном каталоге. Я предполагаю, что каталог, который вы используете — D:MyFirstJava
, но вы можете вызывать каталог как угодно. Например, в Linux вы, вероятно, создали бы каталог как подкаталог вашего личного домашнего каталога (например, /home/kyank/MyFirstJava
).
С помощью любого текстового редактора, который вы предпочитаете (например, NotePad под Windows подойдет), создайте файл с именем Hello.java
в этом каталоге. Обратите внимание на .java
файла .java
. Все файлы, содержащие исходный код Java, должны иметь расширение .java
чтобы идентифицировать их как исходные файлы Java. Обратите внимание, что имя файла пишется с большой буквы. Это важно, поэтому обязательно дайте файлу точное имя. Чтобы сохранить файл без расширения .txt
в блокноте, выберите « Все файлы» в раскрывающемся меню « Тип файла» в диалоговом окне « Сохранить как »; в противном случае NotePad добавит .txt
в конец имени файла (например, Hello.java.txt
).
Введите следующее для содержимого Hello.java
, затем сохраните файл. Обратите внимание, что номера строк предоставляются только для вашего удобства; не вводите номера строк в файл!
1 /** 2 * Hello.java 3 * A simple Java program 4 */ 5 6 class Hello { 7 public static void main(String[] args) { 8 // Print a couple of one-line messages 9 System.out.println("Hello, World!"); 10 System.out.println("This is a test."); 11 } 12 }
Вы только что написали свою первую программу на Java! Прежде чем я покажу вам, как его скомпилировать и запустить, я постараюсь шаг за шагом пройтись по коду, чтобы в общих чертах объяснить, что все делает.
- Строки 1-4: файл начинается с комментария . Этот раздел кода предназначен для чтения людьми, чтобы помочь им лучше понять, что делает код. Java фактически полностью игнорирует комментарии, поэтому программа будет работать точно так же, если эти четыре строки были удалены из файла (попробуйте позже, если хотите!), Но рекомендуется всегда описывать содержимое файла с комментарием по адресу вершина. В Java есть два способа включить комментарии в ваши файлы. Этот первый метод начинает комментарий с
/*
(произносится как «слэш-звезда») и заканчивает*/
(«звезда-слэш»). Все, что находится между этими двумя маркерами, игнорируется Java. Как видите, комментарий этого типа может занимать несколько строк.Я отформатировал этот комментарий в стандартном стиле, рекомендованном в руководстве по стилю документации Java. Комментарий начинается с косой черты, за которой следует другая звезда и разрыв строки, а затем каждая строка комментария начинается с пробела, за которым следует звезда и еще один пробел. Комментарий заканчивается пробелом, за которым следует одиночная косая черта в конце строки. Хотя это рекомендуемый стиль комментирования и который я буду использовать в этой серии статей, вы или ваша компания можете разработать альтернативный стиль. Вот пара примеров альтернативных стилей комментирования:
/* /*-----------------------* Hello.java | Hello.java | A simple Java Program | A simple Java program | */ *-----------------------*/
Хотя они выглядят очень по-разному, обратите внимание, что они оба начинаются с
/*
и заканчиваются*/
. То, что находится между этими двумя маркерами, не имеет никакого значения в том, как работает программа — используйте любой стиль, который вы предпочитаете. - Строка 5: пустые строки игнорируются, как и комментарии.
- Строка 6: Я говорил ранее о том, что Java-программы состоят из набора программных компонентов, которые работают вместе для достижения желаемого эффекта. Эта очень простая программа требует только одного такого компонента, и эта строка отмечает его начало. Слово «
class
означает, что я запускаю новый компонент (на данный момент вы можете использовать класс для обозначения компонента), а слово «Hello
— это имя этого компонента (или класса). Открывающая фигурная скобка ({
) отмечает начало кода, который определит новый класс.Не случайно, что класс (
Hello
) назван так же, как и файл, в котором он определен (Hello.java
). На самом деле это требование. Каждый создаваемый вами класс должен быть определен в своем собственном файле с тем же именем, что и класс, определенный в нем. Два имени должны точно соответствовать, вплоть до случая (вы не можете определить класс с именемMyClass
в файле с именемmyclass.java
; скорее, файл должен называтьсяMyClass.java
).Имена классов в Java пишутся с заглавной буквы. То есть, вы можете назвать класс
myclass
если вы действительно, действительно этого хотите, но другие Java-программисты привыкли видеть заглавные имена классов, поэтому ваш код будет намного легче читать и поддерживать, если вы вместо этогоMyClass
классMyClass
, - Строка 7: эта строка выглядит довольно сложно, и, действительно, это самая сложная строка в программе, насколько вам нужно знать, чтобы понять ее полностью. Так же, как предыдущая строка помечала начало класса, эта строка отмечает начало метода . Метод может быть свободно определен как то, что может сделать класс. Если вы работали с другими языками программирования, методы являются Java-эквивалентом функций или подпрограмм.
Слова
public
,static
иvoid
в начале строки предоставляют определенную информацию об этом методе. У каждого из них есть довольно длинная история, почему это необходимо здесь; так что пока не беспокойтесь об этом. Словоmain
— это название метода. Обратите внимание, что имена методов, в отличие от имен классов, не пишутся с большой буквы. Еще раз, это всего лишь соглашение, но вы должны придерживаться его ради тех, кому, возможно, придется читать ваш код.В зависимости от того, насколько большой опыт программирования у вас есть, часть этой строки в скобках либо вам уже знакома, либо выглядит довольно пугающе. По сути, он определяет, какая информация требуется для того, чтобы этот метод выполнял свою работу, но сейчас вам не нужно беспокоиться о деталях.
Этот
main
метод на самом деле довольно особенный. Когда программа запускается в первый раз, Java ищет метод с именемmain
со словамиpublic static void
перед ним в классе и использует его в качестве начальной точки программы. Поэтому, если хотите, вы можете думать об этой строке как о «волшебной формуле» для выражения «программа начинается здесь». - Строка 8: это еще один комментарий, часть кода, которая включена для людей, которым необходимо читать код. Еще раз, программа будет функционировать точно так же, если эта строка была удалена. Обратите внимание, что этот комментарий не начинается и не заканчивается на
/*
и*/
. Это пример комментариев второго типа, которые Java позволяет вам использовать. Когда он встречается с//
(косой чертой) в любом месте вашего кода, Java игнорирует остальную часть этой строки. Этот тип комментариев полезен для быстрого написания однострочных комментариев в вашем коде или для добавления короткого объяснения в конце особенно сложной строки кода. - Строка 9: эта строка является первым примером оператора Java в этой программе. Заявление говорит программе сделать что-то; это команда, инструкция или приказ, если вы предпочитаете. Java-операторы принимают разные формы, но все они заканчиваются точкой с запятой (
;
). Одна из наиболее распространенных ошибок, которые допускают новички при написании программ на Java, — это забыть точку с запятой в конце своих операторов. К счастью, Java очень хорошо замечает эти ошибки и сообщает вам о них.Это конкретное утверждение указывает вашей программе напечатать текст
Hello, World!
на экране.System.out.println
означает «напечатать следующую строку текста на экране», а остальная часть строки указывает, что именно должно быть напечатано. - Строка 10: во многом так же, как и в предыдущей строке, это утверждение указывает программе напечатать текст.
This is a test.
на экране. Поскольку операторы выполняются один за другим, это сообщение должно быть напечатано на экране сразу после предыдущего сообщения. - Строка 11: закрывающая скобка в этой строке обозначает конец
main
метода. Когда программа достигает этой точки, она останавливается. - Строка 12: закрывающая скобка в этой строке обозначает конец класса
Hello
.
Прежде чем продолжить, обратите внимание на стиль кодирования. Вы, вероятно, заметили, что некоторые строки этой программы имеют пробелы перед ними, а другие нет. Этот стиль кодирования, известный как отступ , предназначен для демонстрации структуры кода. То есть, делая отступ для main
метода (вместе с закрывающей скобкой в строке 11) двумя пробелами, становится ясно, что метод находится внутри класса Hello
. Аналогичным образом, путем отступа строк 8-10 (содержимого main
метода) еще на два пробела становится ясно, что эти строки принадлежат main
методу. Код программы мог бы быть написан без отступа (каждая строка начинается с левого поля), и он работал бы так же хорошо, но структура программы не была бы очевидна с первого взгляда. Когда вы попадаете на этап, на котором пишете сложные программы, нередки случаи, когда некоторые фрагменты вашего кода имеют отступ на пять или даже десять уровней. Приняв эту полезную привычку сейчас, она обеспечит легкость чтения вашего кода сейчас и в будущем.
Компиляция и запуск вашей программы
Когда ваша первая Java-программа написана, вам, вероятно, не терпится ее запустить. Прежде чем вы сможете запустить свою программу, вы должны сначала преобразовать ее в формат, понятный виртуальной машине Java (JVM). Этот процесс, называемый компиляцией , включает в себя запуск программы, называемой Java-компилятором, которая проверяет ваш Java-код на наличие ошибок (пропуски точек с запятой и еще много чего) и затем преобразует его в двоичный формат, называемый байт-кодом Java, который может понять JVM. Компилятор Java запускается из командной строки, набирая javac
, за которым следует имя файла кода Java, который вы хотите скомпилировать.
Чтобы скомпилировать файл Hello.java
, начните с открытия командной строки и Hello.java
в каталог, содержащий файл для компиляции. Например, в Windows, чтобы перейти к D:MyFirstJava
, введите следующие команды (нажимая Enter после каждого):
C:> d: D:> cd MyFirstJava D:MyFirstJava>
Чтобы скомпилировать Hello.java
, введите следующую команду:
D:MyFirstJava> javac Hello.java
Если все идет по плану, должна быть небольшая задержка, за которой следует еще один запрос (нет новостей, это хорошие новости!). Однако, если компилятор обнаружит что-то не так с вашим кодом, будет отображаться одна или несколько ошибок или предупреждений. В большинстве случаев будет указан точный номер строки и некоторая подсказка относительно природы ошибки. Сравните ваш код с приведенным выше и убедитесь, что они точно совпадают (помните, что номера строк не являются частью кода).
После того, как вы успешно скомпилировали свою программу, в Hello.class
будет создан файл Hello.class
вместе с вашим файлом Hello.java
. Это скомпилированная версия вашего Java-кода, содержащая описание класса Hello
который вы определили в своем файле. Такие файлы называются файлами классов по понятным причинам. Это описание представлено в двоичном формате (в частности, в байт-коде Java) и готово к запуску JVM.
Запуск Java-программы аналогичен компиляции, за исключением того, что вместо использования компилятора Java ( javac
) вы используете Java Runtime Environment (JRE), которую можно вызывать с помощью команды java
, за которой следует имя класса, содержащего специальный main
метод. В этом случае ваш класс называется Hello
, поэтому для запуска вашей программы вы вводите следующую команду:
D:MyFirstJava> java Hello Hello, World! This is a test.
Как и следовало ожидать, два сообщения, Hello, World!
и This is a test.
распечатаны. Ваша программа работает! Одно важное замечание: при запуске программы необходимо указать имя класса ( Hello
), а не имя файла класса ( Hello.class
). Java находит файл класса автоматически, используя имя класса. Если вы Hello.class
ему запустить Hello.class
, он будет искать файл, содержащий определение класса Hello.class
, и вы получите ошибку, подобную следующей:
D:MyFirstJava> java Hello.class Exception in thread "main" java.lang.NoClassDefFoundError: Hello/class
Этот NoClassDefFoundError
указывает, что Java не смогла найти определение класса, который искала, в данном случае Hello.class
(который отображается как Hello/class
по причинам, которые я объясню в следующей статье).
Резюме и дальнейшее чтение
В этой статье я представил введение в язык программирования Java с нуля. Я рассмотрел основы того, что такое Java и почему это полезный инструмент, чтобы иметь под рукой, я объяснил, какие инструменты вам нужны для написания, компиляции и запуска программ Java на вашем компьютере и где вы можете их получить, и, наконец, я обошел вас через процесс создания и запуска очень простой Java-программы.
Как я уже сказал, это только первая из серии статей, призванных познакомить вас с миром Java-программирования для Интернета. Во второй части, « Базовая версия языка Java» , мы рассмотрим язык более подробно, охватывая типы данных, операторы, переменные и поток управления. Между тем, если ваша конечная цель — научиться создавать динамические веб-сайты с использованием Java-сервлетов и страниц JavaServer (JSP), вы можете прочитать мое краткое руководство по JSP, чтобы настроить программное обеспечение, необходимое для создания серверной Java программы для Интернета.
Если вам не терпится продвинуться вперед с языком Java, есть другие ресурсы, на которые вы можете ссылаться в ожидании дополнительных выпусков этой серии. Java Tutorial — это официальное онлайн-руководство по изучению большинства аспектов Java, к которому можно получить бесплатный доступ. Однако лучший способ выучить язык — подобрать хорошую книгу на эту тему. Моя лучшая рекомендация — «Начиная с Java 2 — JDK 1.3 Edition» от WROX Press, и полный обзор можно найти здесь .