关于变量的一些细节
以下内容是我本人关于初学Java的变量的一些理解,如有错误,希望各位多多指正,谢谢!
-
关于变量分类
-
整型变量:byte、short、int、long
-
浮点型变量:float、double
-
字符型:char
-
布尔型:boolean
引用数据类型:类(class)、接口(interface)、数组(array)
变量在类中声明的位置:成员变量 vs 局部变量
byte = (1字节 = 8bit) short(2字节) int(4字节) long(8字节) byte范围(-128 ~ 127)
声明:long型变量,必须以“l”或者“L”结尾
与整数类型相似,Java浮点类型也有固定的表述范围和字段长度,不受具体操作系统的影响
-
浮点型变量有如下两种表现形式
-
十进制数形式: 5.12 512.0f .512
-
科学计数法形式: 5.12e2 512E2 100E-2
-
float:单精度,位数可以精确到7位有效数字,很多情况下,精度很难满足要求
-
double:双精度,精度是float的两倍,通常采用此种类型
-
Java浮点型常量默认为double类型,声明位float型常量,须在后面加上“f”或者“F”
-
自动类型提升:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型
例:float容量要大于long的容量。特别的,当byte 、short、int三者做运算是,结果默认为int类型
-
强制类型转换:自动类型提升的逆运算
代码如下
很显然,系统会出现一个错误,当我们运行这个代码时,控制台会输出如下语句
解决方案如下
运行结果如下
这与我们预期结果时一致的,接下来会讲解这种方法的注意事项
-
强制类型转换需要满足的条件
-
需要使用强制转换符
-
强制类型转换可能会导致精度丢失
精度损失案例如下:
运行结果如下
变量规则的两种特殊情况
-
代码如下
运行结果如下
2.代码如下
很明显,运行有一个错误,运行结果如下:
整型变量:默认类型为int类型
浮点型变量:默认类型为double类型
——————————————————————————————————
以上就是我个人关于变量这一块浅薄的认识,请各位多多赐教,



