Организация доступа к базам данных в Интернет
Рефераты >> Программирование и компьютеры >> Организация доступа к базам данных в Интернет

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.

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

try{

тут кусок программы способный

привести к ошибкам

}catch(Exception e){

тут кусок программы "что делать"

когда ошибка произошла

}finally{

что делать дальше независимо от результатов обработки в catch

надеюсь далее будет пример

}

Имя "Exception" означает на самом деле ту самую искл. сит., которая произошла в классе, который мы вызвали из раздела Try{"тут кусок программы способный привести к ошибкам"}. Компилятор помнит, откуда был сделан вызов метода, далее в том же блоке try-catch приведшего к исключению, поэтому собственное имя искл.сит. не требуется, вполне годится общестандартное имя "Exception". Экземпляр класса Exception будет создан.


Страница: