Смекни!
smekni.com

Организация доступа к базам данных в Интернет (стр. 20 из 23)

Подробнее о языке заголовка см. раздел Параллельные данные.

Наличие

Повторяется для заголовка, содержащего данные на разных языках.

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

Приложение 2

Спецификация языка Java

П2.1 Основные особенности

П2.1.1. Введение

Язык хорош для сетей. Известно, что даже бытовую технику объединяют/подключают в(к) сети - "сетевой" язык очень полезен. На Java удобно писать сетевые программки. Язык придумали в фирме Sun не на пустом месте. (см также на их сайт (9) или русcкоязычный ресурс (10)). Итак Sun сделали интерпретируемую версию C++ под названием Oak - для видеомагнитофонов, микроволновых печей и проч.. Программы для такой техники не должны зависать (ТВ или печь не должна виснуть). Потому в синтаксис заложена надежность и безопасность программок. Язык JavaTM компании Sun Microsystems решает эти проблемы.

  • Java является объектно-ориентированным и одновременно простым языком программирования.
  • Цикл разработки программных средств с использованием Java значительно сокращается в силу того, что Java - интерпретируемый язык. Процесс компиляции-сборки-загрузки устарел - теперь программу надо только откомпилировать и сразу запускать.
  • Приложения переносимы на многие платформы. Однажды написанное приложение не придется модифицировать под другие платформы: оно будет работать без каких-либо изменений на различных операционных системах и аппаратных архитектурах.
  • Приложения надежны: Java контролирует обращения к памяти.
  • Приложения высокопроизводительны: несмотря на то, что язык Java - интерпретируемый, код Java программы оптимизируется до фазы исполнения.
  • Поддержка системы многопоточности позволяет создавать параллельно исполняемые взаимодействующие легковесные процессы.
  • Приложения настраиваемы под изменяющееся окружение: возможна динамическая загрузка программных модулей из любого места в сети.
  • Пользователи могут быть уверены в безопасности приложений, даже если в них загружен программный код из любого места в Internet. Исполняющая система Java имеет встроенную защиту от вирусов и попыток взлома.

П2.2 Синтаксис Java

// это однострочный комментарий

/* это многострочный

комментарий */

(или можно посреди строки /* кусок программки */ при отладке так вот закомментировать)

/** это особый комментарий */ для создания документации при помощи утилиты javadoc. Она кое-что понимает и создает документацию в виде HTML-страницы. Например комментарий относится к введенной следом переменной в программке. Тогда в HTML-странице будет мой комментарий и следом - та самая переменная указана. Посмотрите в Документацию Java! Полезно документацией уметь пользоваться. Ее очень много и все запомнить нереально. (и, как уже было сказано, в печатаных книгах за Sun не поспевают.. Реплика из зала: есть книжка, морально старая, но хорошо написанная - 2 тома - P.Norton "программирование на Java".

П2.2.1. Типы данных:

Простые типы данных

целочисленные = для хранения целых чисел

byte (8 bit) : -128 - +127

short = 2 byte : -32768 .. +32767

int = 4 byte : -... +2147483647

long = 8 byte : много-много ( 10**19 степени)

Много разных типов? Это сделано для экономии места в оперативной памяти. Если есть куча *небольших* чисел, то мне незачем отводить на них *большие* куски памяти. На использование int рассчитаны все функции. Если переполняется предусмотренная под тот или иной тип ячейка памяти - данные просто теряются. Но такие ошибки надо предусматривать и перехватывать механизмом перехвата исключительных ситуаций.

Вещественные числа (с плав. точкой):

float : 4 byte : min=+/-1,4*10**-45 max=+/-3,4*10**+38

double : 8 byte : max=+/-2*10**-308 max=+/-1.7*10**+308

Символьные

char : 2 byte (чтобы туда влазила кодировка unicode - см www.unicode.org - 65 000 символов на всех языках и еще место осталось). В Win окне или в DOS-окне не сработает, но в бродилках все ОК

Логические-булевские

boolean : thrue/false (нельзя как в других языках понимать это как 0 или 1)

Что такое "простые типы" ? Это значит отвели память и никак ее не структурировали. А еще существуют сложные типы данных - объекты. Об них позднее. Теперь о них упоминаю, чтоб вас не пугало отсутствие строкового типа string. Объекты - это современно и здорово. Это нужно освоить. Это несложно и удобно... Но пока закончим разговор про простые типы.

int a; // мы сделали переменную имя а для хранения целого числа.

// в конце оператора ставят ; и пробелов, табуляций.. может

// быть много (не то что в Бейсике)

Память не только выделилась, но и заполнилась. В других языках надо инициализировать переменную - назначить ей некоторое значение, "ноль" например, иначе там будет вредный мусор. А в java переменная сама собой заполняется нулями. Вещественная переменная заполнилась бы 0,0 ; Символьная заполнится нулевым символом кодировки unicode (т.е. 0000 ), boolean - false ; (хотя лучше все же инициализировать явно, по старинке)

Вводить переменные можно в любом месте до их использования. А не только в начале.

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

a = 5 ; // в объявленную ранее переменную занесли 5

Можно эти операции объединить вот так:

int a = 5 ;

Примеры для переменных других простых типов:

float c = 7.2 ;

boolean d = true ;

char e = 'M' ; // только в одинарные кавычки

Спецсимволы - как и в C - например:

\n enter=newline \t = tab \r = enter \f = newpagetoprint \b backspace

Использование числовых значений кодировки unicode:

\u0037 = это то же самое, что символ '7' (цифры десятичные)

Расшифровка символов есть на сайте Unicode и на

розданном CD есть расшифровка для русского языка.

Чтобы спецсимвол не работал как спецсимвол, ставят косую черту:

char c = '\'' ; // тут в "c" поместили символ "одиночная кавычка"

Экзотика: Можно использовать и 8 и 16-ричную форму записи, например так:

a = 0x7B // записано 16-ричное число 7B

a = 0175 // записано 8-ричное число 175

---

Какие преобразования типов данных возможны?:

int x; // 4 byte длиной

byte y; // 1 byte длиной

x=y; // более короткое число "y 1 byte длиной" положили в место

// для длинного "x 4 byte длиной"

Наоборот тоже возможно, но компилятор будет ругаться.

Еще можно явно преобразовывать типы:

y=(byte)x; // сделать из 4-байтового числа "x" 1-байтовое

Аналогичные штуки работают для вещественных чисел.

double z = 7.8; Превратим вещ. z в целое

x=(int)z; // сработает, но пропадет хвостик 0.8

А если попытаться написать x=z; то компилирование не произойдет и байт-код не получиться. Наоборот, преобразование с удлинением места в памяти не обязательно указывать во что преобразовываем. То есть при таком безопасном преобразовании можно применить неявную форму записи преобразования. То есть в примере выше можно написать z=x;

П2.2.2. Математические операции

Все обычные операции

(кто не знает что такое % - это есть вычисление остатка от

целочисленного деления, например

10 % 3 -> получится 1 ,

10,2 % 3 -> тоже 1)

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

а=а+5; то же самое что а+=5;

Аналогично пишут для - % * /

Инкремент, например а=а+1;

++а = сначала увеличиваем переменную, потом можем

воспользоваться хранящимся в ней значением.

а++ = наоборот, сначала можем воспользоваться хранящимся

в переменной значением, потом увеличиваем ее на единицу;

Пример:

int a=5, b;

b=++a; // это значит в b попала шестерка

// (сначала к 5 прибавилась 1, потом ее

// использовали для занесения в ячейку "6")

Аналогично есть "декремент"

--а или а--

(это все не сложно, нужно лишь привыкнуть и запомнить разные разности)

Сравнение

(результат будет булевского типа)

< > =< >= ==

!= не равно

Пример

int a = 5;

int b = 6;

boolean c

c = а == b // в "с" будет-запишется false

Логические операции

|| или

! не

&& и

исчерпывающие примеры

true && true = true

true && false = false

false && true = false

false && false = false

true || true = true

true || false = true

false || true = true

false || false = false

!true = false

!false = true

Зачем это нужно? Для написания всяких сложных условий типа "если переменная А меньше того-то, но больше сего-то , тогда

П2.2.3. Исключительные ситуации (exeptions)

Прежде чем погибнуть по причине ошибки, программа создает "исключения". Это объекты - экземпляры какого-нибудь класса из подклассов java.lang.Throwable Класс Throwable содержит строку сообщения String. Много стандартных классов-наследников у Throwable.

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