
Базовые типы данных
Тип |
Размер (бит) |
По умолчанию |
Значения (диапазон или максимум) |
boolean |
8 |
false |
true , false |
byte |
8 |
0 |
128..127 |
char |
16 |
'\u0000' |
0..65535 |
short |
16 |
0 |
32768..32767 |
int |
32 |
0 |
2147483648..2147483647 |
long |
64 |
0 |
922372036854775807L |
float |
32 |
0.0f |
3.40282347E+38 |
double |
64 |
0.0 |
1.797693134486231570E+308 |
В арифметических выражениях автоматически выполняются расширяющие преобразования типа byte short int long float double. Java автоматически расширяет тип каждого byte или short операнда до int. Для сужающих преобразований необходимо производить явное преобразование вида (тип) значение.
Например:byte b=(byte)35;
Для преобразования базовых типов друг к другу применяется операция (type), где в качестве (type) используется один из совместимых базовых типов.
В именах переменных не могут использоваться символы арифметических и логических операторов, а также символ ‘#’. Применение символов ‘$’ и ‘_’ допустимо, в том числе и в первой позиции имени.
// пример # 1 : типы данных и операции над ними : TypeByte.java
public class TypeByte {
private static int j;
public static void main(String[] args) {
int i = 3;
byte b = 1,
b1 = 1 + 2;
//b = b1 + 1; //ошибка приведения типов
b = (byte)(b1 + 1);//0
show(b);
//b = -b; //ошибка приведения типов
b = (byte)-b;//1
show(b);
//b = +b1; //ошибка приведения типов
b = (byte)+b1; //2
show(b);
b1 *= 2; //3
show(b1);
b1++; //4
show(b1);
//b = i; //ошибка приведения типов
b = (byte)i; //5
show(b);
b += i++; //работает!!! //6
show(b);
float f = 1.1f;
b /= f; //работает!!! //7
show(b);
}
static void show(byte b){
System.out.println(j + " res=" + b);
j++;
}
}
В результате будет выведено:
0 res=4
1 res=-4
2 res=3
3 res=6
4 res=7
5 res=3
6 res=6
7 res=5
Переменные базовых типов, объявленные как члены класса, хранят нулевые значения, соответствующие своему типу. Если переменные объявлены как локальные переменные в методе, то перед использованием они обязательно должны быть проинициализированы.