
- •Глава 2
- •Глава 2. Обзор языка Java 31_
- •Глава 2. Обзор языка Java
- •Глава 2. Обзор языка Java 37
- •Глава 2. Обзор языка Java 39
- •Глава 2. Обзор языка Java 41
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 43_
- •Глава 2. Обзор языка Java 45_
- •Глава 2. Обзор языка Java 47
- •Глава 2. Обзор языка Java 49_
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 57
- •Глава 3
- •Глава 3. Типы данных, переменные и массивы 53
- •Глава 3. Типы данных, переменные и массивы _ 55
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 59_
- •Глава 3. Типы данных, переменные и массивы 61_
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 65_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 67_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 69_
- •Глава 3. Типы данных, переменные и массивы 71_
- •Глава 3. Типы данных, переменные и массивы 73_
- •Глава 3. Типы данных, переменные и массивы
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы _ 77_ Эта программа генерирует следующий вывод:
- •Глава 3. Типы данных, переменные и массивы 79
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 81_
- •Глава 4
- •Глава 4. Операции 83
- •84 Часть I. Язык Java
- •Глава 4. Операции 85_
- •Глава 4. Операции 87_
- •88_ Часть I. Язык Java
- •Глава 4. Операции 89
- •Глава 4. Операции 91_
- •Глава 4. Операции 93_
- •Глава 4. Операции 95_
- •Глава 4. Операции 97_
- •Глава 4. Операции 99
- •Глава 4. Операции 101
- •Глава 4. Операции 103
- •104 Часть I, Язык Java
- •Глава 4. Операции 105
- •Глава 5
- •Глава 5, Управляющие операторы 107
- •Глава 5. Управляющие операторы 109
- •110 Часть I. Язык Java
- •Глава 5, Управляющие операторы 111
- •Глава 5. Управляющие операторы 113
- •Глава 5. Управляющие операторы
- •Глава 5. Управляющие операторы 117
- •118 Часть I. Язык Java
- •Глава 5. Управляющие операторы 119
- •Глава 5. Управляющие операторы 121
- •122 Часть I. Язык Java
- •Глава 5. Управляющие операторы 123
- •Глава 5. Управляющие операторы 125
- •Глава 5. Управляющие операторы 127
- •Глава 5. Управляющие операторы 129
- •Глава 5. Управляющие операторы
- •Глава 6
- •134 Часть I. Язык Java
- •Глава 6. Введение в классы 135
- •136 Часть I. Язык Java
- •Глава 6. Введение в классы _ 137
- •Глава 6. Введение в классы 139
- •Глава 6. Введение в классы
- •Глава 6. Введение в классы 143
- •Глава 6. Введение в классы 145
- •Глава 6. Введение в классы 147
- •Глава 6. Введение в классы 149
- •Глава 6. Введение в классы 151
- •154 Часть I. Язык Java
- •Глава 6. Введение в классы 155
- •Глава 6. Введение в классы 157
- •Глава 7
- •Глава 7. Методы и классы 159
- •Глава 7. Методы и классы . 161
- •Глава 7. Методы и классы • 163
- •164 Часть I. Язык Java
- •Глава 7. Методы и классы 165
- •Глава 7. Методы и классы 167
- •Глава 7. Методы и классы 169
- •Глава 7, Методы и классы 171-
- •Глава 7. Методы и классы 173
- •Глава 7. Методы и классы 775
- •Глава 7. Методы и классы 177
- •Глава 7. Методы и классы ' 179
- •Глава 7. Методы и классы 1_81_
- •Глава 7. Методы и классы 1_83
- •184 '• Часть I. Язык Java
- •Глава 7. Методы и классы . 185
- •Глава 7. Методы и классы 187
- •Глава 8
- •Глава 8. Наследование 191
- •Глава 8. Наследование 193
- •Глава 8, Наследование 195
- •Глава 8. Наследование 197
- •198 Часть I. Язык Java
- •Глава 8, Наследование 199
- •Глава 8. Наследование 201
- •202 Часть I. Язык Java
- •Глава 8. Наследование 203
- •Глава 8. Наследование 205
- •Глава 8. Наследование 207
- •Глава 8. Наследование 209
- •Глава 8. Наследование 211
- •Глава 8. Наследование 213
- •Глава 8. Наследование 215
- •Глава 8. Наследование 217
- •Глава 12
- •Глава 12. Ввод/вывод, апплеты и другие темы 303_
- •Глава 12. Ввод/вывод, апплеты и другие темы . 305
- •Глава 12. Ввод/вывод, алплеты и другие темы 307
- •Глава 12. Ввод/вывод, апплеты и другие темы 309
- •Глава 12. Ввод/вывод, апплеты и другие темы 311
- •Глава 12. Ввод/вывод, апплаты и другие темы 313
- •314 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 315
- •Глава 12. Ввод/вывод, апплеты и другие темы 317
- •Глава 12. Ввод/вывод, апплеты и другие темы 319
- •320 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 321
- •Глава 12. Ввод/вывод, апплеты и другие темы 323
- •324 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 325
- •326 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплегы и другие темы 327
Глава 3. Типы данных, переменные и массивы _ 55
Байтовые переменные объявляются при помощи ключевого слова byte. Например, следующее предложение объявляет две байтовые переменные с именами b и с:
byte b,c;
Тип short
Тип short — 16-разрядный тип данных со знаком. Диапазон изменения его значений от -32,768 до 32,767. Пожалуй, это наименее используемый тип Java, так как он определен со старшим байтом в начале (в так называемом формате big-endian). Этот тип главным образом применим к 16-разрядным компьютерам, которые становятся все более и более редкими.
Некоторые примеры объявлений short переменных:
short s; short t;
Термин "Endianness" описывает, как многобайтовые типы данных, такие как short, int. и long, хранятся в памяти. Предположим, имеется два байта для представления типа short. Который из них идет первым — наиболее или наименее значащий? Термин "big-endian" означает, что наиболее значащий байт хранится первым, за ним следует наименее значащий. Машины типа SPARC и PowerPC можно назвать машинами big-endian, в то время как машины серии Intel x86 — little-endian (т. к. первым хранится менее значащий байт).
Тип int
Чаще всего используется тип int. Это 32-разрядный тип со знаком, который имеет диапазон от -2,147,483,648 до 2,147,483,647. В дополнение к другим применениям, переменные типа int обычно используются для управления циклами и индексирования элементов массива. Всякий раз, когда появляется целочисленное выражение, включающее операнды типа byte, short, int и целочисленные константы, тип полного выражения расширяется (или по-вышается) до типа int прежде, чем выполняется вычисление.
Тип int наиболее универсален и эффективен и должен быть использован для расчетов, индексации элементов массива или выполнения целочисленных операций. Может показаться, что использование short или byte экономит память, но нет никакой гарантии, что Java не будет внутренне так или иначе расширять эти типы до int. Помните, что тип определяет поведение, а не размер. (Единственное исключение — массивы, где тип byte гарантирует использование только одного байта на элемент массива, в то время как snort будет забирать два байта, a int. — четыре байта.)
56 Часть I. Язык Java
Тип long
Тип long — 64-разрядный тип со знаком. Он полезен в тех случаях, когда тип int недостаточен (по размеру памяти), чтобы хранить желаемое значение. Диапазон значений long весьма велик. Это делает его полезным при работе с большими целыми числами. Например, вот программа, которая вычисляет мили, пройденные светом за указанное число дней.
// Вычисляет расстояние, пройденное световым сигналом, // используя long-переменные, class Light {
public static void main(String argsf]) {
int lightspeed;
long days;
long seconds;
long distance;
// аппроксимация скорости света в мили в секунду lightspeed = 186000;
days =1000; // задать количество дней
seconds = days * 24 * 60 * 60; // преобразовать в секунды distance = lightspeed * seconds; // вычислить расстояние
System.out.print("За " + days);
System.out.print(" дней световой сигнал пройдет около "); System.out.println(distance + " миль."); } }
Эта программа генерирует следующий вывод:
За 1000 дней световой сигнал пройдет около 16070400000000 миль.
Ясно, что результат не мог быть получен в int-переменной.
Типы с плавающей точкой
Числа с плавающей точкой, также известные как вещественные числа, используются при оценке выражений, которые требуют дробной точности. Например, вычисления квадратного корня или трансцендентных функций типа синуса и косинуса приводят к вещественному значению с определенной точностью, что и требует типа с плавающей точкой. Java реализует стандартный (IEEE-754) набор типов с плавающей точкой и соответствующие операции с ними. Существует два вида типов с плавающей точкой float и double, которые представляют числа с одинарной и двойной точностью, соответственно. Их ширина и диапазоны представлены в табл. 3.2.