Организация доступа к базам данных в ИнтернетРефераты >> Программирование и компьютеры >> Организация доступа к базам данных в Интернет
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 будет создан.