Java基础系列之二
- 四、常量
定义:常量表示不能改变的数值。
Java中常量的分类
1.整数常量:所有整数。
2.小数常量:所有小数。
3.布尔(boolean)型常量:只有两个数值,true、false。
4.字符常量:将一个数字字母或者符号用单引号('')标识,如:'a'。
5.字符串常量:将一个或者多个字符用双引号("")标识,如:"helloworld"、"a"、""(空字符串)。
6.null常量:只有一个数值就是:null。
- 五、变量
定义:内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),该区域的数据
可以在同一类型范围内不断变化。可以类比数学中的X。
特点:变量其实就是将不确定的数据进行存储,也就是需要在内存中开辟一个空间。用来不断的存放同一类型的常量,并可以重复使用。
定义变量的格式:
数据类型变量名=初始化值;
例如: int a =1;
P.S.
1、格式是固定的,记住格式,以不变应万变。
2、变量的作用范围(一对{}之间有效)。
3、变量只能存放某一类型的数据。
- 数据类型:
Java语言的数据类型包括8种基本类型,3种引用类型。

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间:
byte1个字节
short2个字节
int4个字节
long8个字节
float4个字节
double8个字节
char2个字节
- 类型转换
所有的byte型、short型和char的值将被提升到int型。
如果一个操作数是long型,计算结果就是long型;
如果一个操作数是float型,计算结果就是float型;
如果一个操作数是double型,计算结果就是double型。
下面用几个例子说明下上述总结:
1 int x = 3; 2 byte b = 5; 3 x= x + b;
int类型的变量占4个字节,当byte类型的变量与其相加的时候,首先会将byte类型的变量自动转化为4个字节的int类型,然后再进行加法操作
1 byte b = 3; 2 b = b + 200; 3 System.out.println(b); 当byte类型的变量提升为int类型与int类型的常量200相加后,结果依然是int类型,再赋值 给byte类型,第三行会出现损失精度的错误。 byte b = 3; b = (byte)(b + 200); System.out.println(b); 结果为-53的原因是,200+3结果是203,换算成占1个字节空间的二进制也就是11001011。 由于首位为1,所以是负数,除符号位外,其余部分取反加1,得1,0110101,即-53。
1 byte a = 3 +7; 2 byte b = 3; 3 byte c = 7; 4 byte d = b +c; 5 6 代码第4行编译不通过! 7 涉及到编译器编译程序时候的细节,之所以byteb=3+7;,没有报错,是因为3和7都是常量,编译器知道结果是10,并且在byte范围之内,因此就自动进行了强转,所以不会报错。 8 而b=b1+b2;中b1和b2都是变量,编译器编译程序是一行一行编译的,它根本不知道b1和b2到底是多少,两个byte类型的数据相加时,首先都会被提升为int类型,他们的和也是int类型,其值可能会超过byte的范围,因此就会报错。
结语:大家可以看到,在基础系列的变量部分,我只写了基本类型的一些使用及注意事项,引用类型变量的使用我想放在面向对象部分阐述。

浙公网安备 33010602011771号