1.Java变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小
·整型:byte short int long
·浮点型:float double
·字符型:char
·布尔类型:boolean
byte: 8位,最大存储数据量是255,存放的数据范围是-128~127之间。 short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。 int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。 long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。 float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。 double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。 boolean:只有true和false两个取值。 char:16位,存储Unicode码,用单引号赋值。
引用数据类型:类、接口、数组
2. 说明基本数据类型变量之间自动类型提升的运算规则。
byte、short、char →int →long →float→ double 特别的:当byte,char,short 三种类型的变量做运算时,结果为int型
3.说明基本数据类型变量之间强制类型转换的使用规则和强转可能出现的问题。
强制类型转换:自动类型提升运算的逆运算
容量大 容量小 使用强转符:() 精度损失。
double d1 = 3.9; int i1 = (int) d1; //截断操作 精度损失 System.out.println(i1);
运行结果:3
4.编写代码实现两个变量值交换,int m = 3, n =5;
答案一:
int temp = m;
m = n;
n = temp;
答案二:
m = m + n;
n = m - n;
m = m - n;
答案三:
m = m ^ n;
n = m ^ n;
m = m ^ n;
5.编码易错点
long l = 21332423235234123; //相当于把int数据转换成long 编译失败报错 正确书写: long l = 21332423235234123L; 2. float f1 = 3.1; //默认是double类型,相当于是double向float转 编译失败报错 正确书写: float f1 = 3.1f; 3. byte b = 12; byte b1 = b + 1; //编译失败 float f1 = b + 12.1; //编译失败 4. char c = “”;//编译失败 char c = “a”; //char里面有且只能放一个字符,不能放
整型常量:默认类型为int类型 浮点型常量:默认类型为double型
位运算符
|