变量与类型转换

final修饰常量
在c中我们用const修饰常量,但是在Java中我们是用关键字final来修饰常量。变量在运行期间是可以改变的,而且变量的值在运行的时候才能知晓,但是常量是在编译期间就能确定的知道它的值(直接被替换),而且在运行期间不能被改变。

以下代码中,可以看到a被重新赋值为20,但是只能初始化,所以c=40;
变量与类型转换
但是当常量b被赋值的时候,程序将会报错,如下:
变量与类型转换

也可以先定义一个常量,再进行初始化,但是只能初始化一次变量与类型转换
该反汇编中,是可以直接看到d的值(50),但是却不能直接看到c的值。所以可以印证变量的值在运行的时候才能知晓,常量在编译期间就能知道它的值。
变量与类型转换

类型转换
把大类型转化为小类型是,一定要强转!!!

1.整型int和长整型long之间的类型转换
变量与类型转换
2.int和double之间的类型转换
变量与类型转换
3.boolean与其他类型的转换
boolean与其他类型之间均不可以转换,是完全不相关的类型,Boolean类型只有两个值(true和false),无法进行转换。
变量与类型转换
数值提升
当两个不同类型的变量进行运算时,小类型会向大类型转换

当整型和长整型两者相加时,a会先被提升为long类型,进行两个long类型之间的运算,所以其结果为long类型,对于整型c的赋值就需要进行强制转换
变量与类型转换
但是在byte中,对于相同的byte(1个字节)类型是不能直接进行运算的,我们要知道CPU中为了提升存取数据的速度,它是4个字节4个字节的去取值,所以在byte中的取值时需要进行整型提升(将不足4个字节的数据提升为4个字节),所以这里将a,b转化为整型,在对byte cf赋值时需要将int型进行类型强转,转为byte型。
变量与类型转换
变量与类型转换
4.int和String之间的转换
**int转换为String:**用以下两种方法
变量与类型转换
String转换为int:
变量与类型转换
注意:在Java中,变量在定义后在使用前一定要进行初始化,否则编译出错!!!