java基础知识之变量与常量及java数据类型

Java中的变量与常量

Java中的变量与常量

变量定义的注意事项

1.作用域问题:变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。
2.初始化值问题:没有初始化值不能直接使用。
3.在一行上建议只定义一个变量:可以定义多个,但是不建议。
4.定义long类型(一种数据类型,下面会提到)时要在数值后面加上L,否则数字超过int容量会报错;定义float类型时要在数值后面加F,否则会发生报错。这是因为如果未加会导致变量未被定义为我们想要的float或long类型,而是小数默认的double类型或整数默认的int类型。
举个例子

class Demo_3 {
	public static void main(String[] args) {
		float a=3.14F;
		long  b=5611114865L;
		System.out.println(a);
		System.out.println(b);
	}
}

这里先试一下不加F
这里涉及到下面的数据类型
不加L效果如下:

在这里插入图片描述

java中的数据类型

java数据类型

自动类型提升

自动类型提升是指
1.byte,short,char在运算过程中会转化为int类型;若含有long或double则会转化为long或double
2.范围较小的数据类型和范围较大的数据类型同时操作时会转化为较大的数据类型(byte在与short,char运算时会转化为int)
这里举个例子:byte在运算过程中自动提升至int类型

class Demo_3 {
	public static void main(String[] args) {
		byte  a=2;
		byte  b=3;
		byte  c=a+b;
		System.out.println(b);
	}
}

这里byte类型参与运算被转化成了四个字节的int类型,而byte只有一个字节,强行将int存入byte中可能会导致出错

强制类型转化

有的时候你可能不希望你定义的byte,short或其他类型在运算过程中被转化为int,long,或double类型,那么你可以使用强制类型转化来使其转化为你想要的类型
就拿上免得那个例子来再试一次

强制类型转化
但是这样也有不好的地方,当运算的结果的大小超出你强制转化的类型容量的话运算结果可能就会出错,例如:
数值超过容量导致运算结果出错
byte容量为一个字节即 -128~127 所以127+2超过的他的容量,这时强行存储进byte类型中,导致了错误的结果—127

猜你喜欢

转载自blog.csdn.net/rtx_2080/article/details/84572070
今日推荐