第三章:数据类型和运算符
基本数据类型
- 整数类型:byte(1字节,内存中占8位),short(2字节,16位),int(4字节,32位),long(8字节,64位)
- 字符类型:char(2字节)
- 浮点类型:float(4字节),double(8字节)
- 布尔类型:boolean (1位,False or True)
基本类型的类型转换
自动类型转换:Java中的数值型的变量可以自动相互转换。当把一个表述范围小的数值或变量直接赋值另一个表述范围大额变量时,系统可以进行自动类型转换,否则需要强制类型转换。
强制类型转换:将表数范围大的数值类型赋值给表述范围小的数值类型需要强制转换
基本类型由低到高的顺序:
byte,short,char< int< long< float< double;
public class Test{
public static void main(String[] args){
int a=233;
byte b=(byte)a;
System.out.println(b);//-23,溢出
double c=3.45;
int d=(int)c;
System.out.println(d);//3,损失精度
}
}
将一个浮点数强制转换成整数数值时,Java将截断浮点数的小数部分int类型数值在内存中是32位,byte是8位,所以转换时,将32位的前24位截断,只留下最后8位,左边第一个符号等于1,表示负号,负数在计算机中以补码形式存在。
将补码减1得到反码,再将反码取反得到原码
0000 0000 0000 0000 0000 0000 1110 1001
反码形式 1110 1000
原码形式1001 0111
三目运算符
三目运算符一般作为ifelse的精简写法
public classSynchronizedTest{
public static void main(){
int a=5;
int b=10;
Systemp.out.println(a>b?"a大于b":(a<b?"a小于b":"a等于b"));
}
}