Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры-1 оопип часть 4.doc
Скачиваний:
29
Добавлен:
01.04.2014
Размер:
112.64 Кб
Скачать

18. Введение в Java. Базовые термины Java. Оформление программы на Java. Типы данных языка Java

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

Сначала программист компилирует исходный текст утилитой javac из набора инструментов JDK в Java в байт- коды. Байт- коды являются двоичными и не зависят от архитектуры компьютера

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

Основной языка Java является виртуальная Java-машина (Java Virtual Machine, JVM).

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

Виртуальная машина обеспечивает абстрагируемость откомпилированных Java-программ от аппаратной платформы и операционной системы

class JavaTest

{

public static void main(String args[])

{

System.out.println("Hello, World!");

}

} }

Идентификаторы языка Java должны начинаться с буквы любого регистра или символов "_" и "$". Далее могут следовать и цифры. Например, _Java - правильный идентификатор, а 1_$ - нет. Еще одно ограничение Java проистекает из его свойства использовать для хранения символы кодировки Unicode, т. е. можно применять только символы, которые имеют порядковый номер более 0xC0 в раскладке символов Unicode.

Тип данных Размер занимаемой области памяти Значение по умолчанию

boolean byte char short int long float double(64b)

19. Java. Операторы и массивы

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

В Java имеется 44 встроенных оператора. Их можно разбить на 4 класса - арифметические, битовые, операторы сравнения и логические.

Арифметические операторы (+,-,/,*)

Арифметические операторы используются для вычислений так же как в алгебре (см. таблицу со сводкой арифметических операторов ниже). Допустимые операнды должны иметь числовые типы. Например, использовать эти операторы для работы с логическими типами нельзя, а для работы с типом char можно, поскольку в Java тип char — это подмножество типа int.

class BasicMath { public static void int a = 1 + 1;

int b = a * 3;

main(String args[]) {

int c = b / 4;

int d = b - а;

int e = -d;

System.out.println("a = " + а);

System.out.println("b = " + b);

System.out.println("c = " + c);

System.out.println("d = " + d);

System.out.println("e = " + e);

} }

По сравнению с C++ массивы Java претерпели значительные изменения. Во-первых, изменились правила их описания. Массив теперь может быть описан двумя следующими способами:

type name[];

type[] name;

При этом массив не создается, лишь описывается. Следовательно, для резервирования места под его элементы надо воспользоваться динамическим выделением с помощью ключевого слова new, например:

char[] arrayName;

arrayName[] = new char[100];

или совместить описание массива с выделением под него памяти:

char array[] = new char[100];

Многомерных массивов в Java нет, поэтому приходится прибегать к ухищрениям. Например, создать многомерный массив можно как массив массивов:

float matrix[][] = new float[5][5];

В Java возможно приведение разнообразных типов к типу "массив":

varName = (array_type[]) other_varName;

Одномерные массивы примитивных типов

Эти массивы практически не отличаются от того, к чему привыкли программисты, использующие другие языки. Создание массива производится с помощью все того же оператора new:

// creating array of integers with 5 elements:

int array[] = new int[5];

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

int array[] = new int[5];

System.out.println("Array size: "+array.length);

// will print: Array size: 5

Свойство это является final, потому выставить через него новый размер массива, увы, не получится.

Вторая мелочь – контроль выхода за границы массива. Это делает интерпретатор, в случае выхода индекса за пределы массива будет инициировано исключение java.lang.ArrayIndexOutOfBoundsException. Перехватывать его не обязательно, и, я бы даже сказал, нежелательно, т.к. это RuntimeException и сигнализирует оно о том, что программа работает неправильно. И уж совсем не стоит проектировать приложение в расчете на то, что после прохождения всего массива будет брошено это исключение, и это будет сигналом к завершению цикла обработки. Это очень плохая идея.

После создания массив инициализируется значением по умолчанию для типа его элементов. Это гарантируется спецификацией языка.

Есть одна тонкость. При создании размер массива может быть задан равным 0. Это будет вполне полноценный массив, содержащий 0 элементов. Его свойство .length равно 0. Такая конструкция временами оказывается весьма полезной.