- •Java - объектно-ориентированный язык
- •Виртуальная Java-машина.
- •Алфавит языка Java
- •Типы данных
- •Числа высокой точности
- •Переменные в Java
- •Объявление переменной
- •Область действия и время жизни переменной
- •Операции в Java
- •Арифметические операции
- •Логические операции
- •Побитовые операции
- •Операции сдвига
- •Тернарный оператор ?:
- •Оператор запятая
- •Одномерные массивы
- •Многомерные массивы
- •Функции
- •Класс Поля и методы
- •Модификаторы доступа
- •Инициализация и очистка
- •Перегрузка методов
- •Ключевое слово this
- •Вызов конструктора из конструктора
- •Использование объектов в качестве параметров
- •Ключевое слово static
- •Спецификатор final
- •Вложенные и внутренние классы
- •Сборщик «мусора»
- •Как работает сборщик мусора
- •Наследование
- •Основы наследования
- •Использование ключевого слова super
- •Использование super для вызова конструктора суперкласса
- •Использование super для доступа к скрытым членам суперкласса
- •Конструкторы при наследовании
- •Динамическая диспетчеризация методов
- •Абстрактные классы
- •Использование final с наследованием
- •Использование final для отказа от переопределения
- •Использование final для отмены наследования
- •Класс Object
- •Пакеты и интерфейсы Пакеты
- •Оператор package
- •Оператор import
- •Уровни доступа.
- •Интерфейсы
- •Оператор implements
- •Частичные реализации
- •“Множественное” наследование в Java
- •Конфликты имен при комбинировании интерфейсов
- •Расширение интерфейса
- •Группировка констант
- •Инициализирование полей в интерфейсах
- •Вложенные интерфейсы
- •Стандартный ввод/вывод
- •Чтение из стандартного ввода
- •Замена System.Out на PrintWriter
- •Первое приложение Java
- •Исключительные ситуации. Обработка исключений
- •Типы исключений
Язык JAVA
Java - это объектно-ориентированная, платформо-независимая, многопоточная среда программирования. Это основа для Web- и сетевых сервисов, позволяет надежно и безопасно наращивать информационную структуру благодаря платформенной независимости. Все виды систем могут взаимодействовать друг с другом независимо от аппаратной платформы и системного программного обеспечения.
Java – язык интерпретирующего типа. Программный продукт, написанный на языке программирования Java, компилируется с использованием технологии Java, в платформенно-независимый байткод. Виртуальная машина Java (интерпретатор байткода, ориентированный на конкретную платформу) может интерпретировать этот байткод на любой платформе, на которой установлена виртуальная машина Java. Это означает, что нет необходимости в экспортировании программ.
Первая версия языка java была задумана Джеймсом Гослингом, Патриком Ноутоном, Крисом Вартом, Эдом Франком и Майком Шериданом. Спецификация языка разработана фирмой Sun Microsystems и выпущена компанией Sun Microsystem Inc. в 1991 г, где и работали указанные авторы. Первоначально java был задуман как независимый от платформы язык, с целью внедрения в электронные устройства различных производителей. Позднее открылась и другая его более значительная особенность – пригодность для использования в WWW. Публичное признание язык получил в 1995 году под именем “Java” (Ява).
На Java можно создавать четыре основных вида приложений, которые можно разделить по 2 категориям: апплеты и собственно приложения Java.
Апплеты – мини приложения, выполняемые в среде Java совместимого броузера, например Netcscape, Microsoft Exploer, Hot Java и др. Вызов апплета встраивается в HTML страницу при помощи специального тега <APPLET> </APPLET>. Сам апплет размещается, как правило на сервере, загружается при прочтении браузером указанного тега, загружается и выполняется на компьютере клиента.
Приложения командной строки - обычное приложение, которые запускаются из командной строки MS-DOS. Для его выполнения необходима специальная утилита-интерпретатор, т.е. виртуальная машина JAVA, поставляемая с пакетом JDK (Java Development Kit);
GUI – приложение (Java Grafical User Inerfase) – это обычные программы под Windows, как например, Windows Notepad, которые не требуют для работы присутствия браузера, а их выполнение обеспечивается виртуальной машиной JAVA;
Пакеты (похожи на библиотеку классов С++) – это не приложение в чистом виде, а наборы классов (переносимых файлов Java), содержащихся в одном пакете. Как правило, все классы пакета помещаются в один каталог (например, пакет AWT (Abstract Windows Toolkit), где AWT – оконный пользовательский интерфейс) , Java.awt - пакет, входящий в набор инструментальных средств JDK (Java Development Kit).
JAVA – надежный, защищенный, независимый от платформы объектно-ориентированный язык. Язык Java позаимствовал синтаксис языка С++ и его лучшие качества. Стандартные библиотеки Java значительно расширены и включают мощные функции поддержки сетевых соединений. Это позволяет легко создавать средствами Java приложения для Internet.
Исходный текст программы Java преобразуется в независимый от платформы байт-код, который затем выполняется платформенно-ориентированным интерпретатором – виртуальной машиной JAVA (виртуальным компьютером располагающимся в памяти), реализующим выполнение байт-кода для конкретной платформы. В силу интерпретации кода, выполнение программ относительно медленное.
Для апплетов роль виртуальной машины выполняет браузер (язык апплетов имеет определенные ограничения, по сравнению с базовым языком Java). Для других приложений необходима интерпретирующая программа (виртуальная машина Java).
Java - объектно-ориентированный язык
Язык Java является объектно-ориентированным и, следовательно, относится к группе языков, рассматривающих данные как объекты и методы, используемые для этих объектов. Java язык со строгой типизацией, что помогает выявлять возможные скрытые ошибки. В Java отсутствует множественное наследование и указатели, что с одной стороны повышает, читаемость, надежность программного кода, упрощает программирование и предохраняет от множества трудно диагностируемых ошибок, а с другой несколько ограничивает в ряде ключевых возможностей.
Java обеспечивает очень развитую объектно-ориентированную технологию поддержки обработки особых «исключительных» ситуаций. В Java можно создавать совершенно «абстрактные классы», называемые интерфейсами (interface). Интерфейсы позволяют описывать методы, разделяемые и реализуемые между несколькими классами, не учитывая при этом то, как другие классы используют данные методы.
Объекты могут порождаться от любого количество интерфейсов (или одного класса и одного или более интерфейсов).
Виртуальная Java-машина.
О сновной языка Java является виртуальная Java-машина (Java Virtual Machine, JVM).
JVM - это виртуальный компьютер (модель компьютера), располагающийся только в оперативной памяти. JVM позволяет выполнять Java-приложения на множестве платформ, а не только в той системе, для которой скомпилирован код. Возможность компиляции Java-программ для JVM обеспечивает уникальность языка. Но для того чтобы приложения Java выполнялись на конкретной платформе, необходимо реализовать JVM для данной платформы (для каждой платформы своя JVM, что и обеспечивает мобильность JAVA).
Виртуальная машина обеспечивает абстрагируемость откомпилированных Java-программ от аппаратной платформы и операционной системы.
Некоторые особенности Java от С++
В Java – отсутствуют глобальные переменные и функции.
Вводится понятие пакета, представляющее набор классов, включаемых оператором import. Каждый пакет располагается в каталоге, имеющим тоже название, что и пакет.
Для импортирования пакета в апплет необходима строка, например:
import my_kat.in.*;
что говорит о том, что импортируется пакет in из каталога my_kat.in.
Если имя класса myclass, то можно записать следующую строку
import My_kat.in.myclass;
Сиволы, строки и идентификаторы составляют из 16 разрядных кодов UNICODE, где первые 256 символов соответствуют ASCII кодам. Для представления остальных используются escape-последовательности. Последовательности строки \uh, где h – может представлять от одной до 4 цифр. При этом сохранены eskape последовательности С++ \n,\r, \t для сивольных и строковых констант.
В Java отсутствуют структуры С++ (struct, union). Функции (методы) могут быть только компонентами класса (кроме методов из интерфейсов, содержащих только описание методов). Эти методы в определенном смысле аналог виртуальных классов в С++.
Имена классов в Java рекомендуется начинать с большой буквы.
Методы в Java определяют как в С++ небольшие программы, среди которых особым является метод main, с которого начинается выполнение любого Java приложения.
Типы языка Java разделены на две категории: примитивные типы и ссылки. Ссылочные типы - классовые типы, интерфейсные типы, и типы массивов. Имеется также специальный тип null. Объект в языке Java - это динамически созданный экземпляр классового типа или динамически созданный массив. Значения ссылочного типа - это ссылки на объекты. Все объекты, включая массивы, поддерживают методы класса Object. Строковые литералы представляются объектами класса String.