1,什么是变量
-
在程序执行的过程中,在某个范围内其值可以发生改变的量
2,变量的定义格式
-
数据类型 变量名 = 变量值;
3,为什么要定义变量
-
用来不断的存放同一类型的常量,并可以重复使用
4,变量的注意事项
【1】作用域问题
-
同一个区域不能使用相同的变量名
int x = 10;
int x = 20;
System.out.println(x);
【2】初始化值问题
-
局部变量在使用之前必须赋值
int y;
y = 10;
System.out.println(y);*/
【3】一条语句可以定义几个变量
-
int a,b,c...;
int a,b,c,d,e;
a = 10;
b = 20;
c = 30;
d = 40;
e = 50;
5,数据类型转换之隐式转换
-
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
//数据类型转换之隐式转换
int x = 3;
byte b = 4;
x = x + b;
System.out.println(x);*/
6,数据类型转换之强制转换
【1】强制转换问题
int a = 10;
byte b = 20;
b = a + b;
输出的值和自己期望的值有所不同,所有出现强制类型转换
【2】强制转换的格式
-
b = (byte)(a + b);
【3】强制转换的注意事项
-
如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
7, 变量相加和常量相加的区别
/**
*
* @author wangjg
* 题目1:
* byte b1 = 3,b2=4,b;
* b=b1+b2;
* b=3+4;
* 问:那句编译失败的呢?为什么?
*/
public class DataTypeDemo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 定义了三个变量,b1,b2,b
// b1的值是3,b2的值是4,b没有赋值
byte b1 = 3,b2=4,b;
// 这一行会编译异常,错误信息是:Type mismatch: cannot convert from int to byte
// 此行是变量相加,b1和b2都是byte类型,在相加的时候会自动类型提升成int类型,所以执行后的结果是int类型,
// 把int类型赋值给byte类型,会丢失精度,所以报错
b=b1+b2;
// 此行是常量相加,虽然看起来3和4都是int类型,但是常量相加是首先在编译的时候就把常量值相加,
// 然后根据最后的结果判断是否在byte类型范围内,如果在就不报错,同样b = 127+1;这样就会报错
b=3+4;
}
}
变量相加是会首先看类型问题,最终把结果赋值的时候也会考虑类型问题。
常量相加是会首先做加法,然后看结果是否在赋值的数据类型范围类,如果不是才报错