1、变量
我们可以将变量视为内存中的一个存储区域,该区域具有自己的名称(变量名)和类型(数据类型);变量通过使用变量名来访问存储变量的那块内存区域。由于Java是强类型语言,因此每个变量必须先声明类型才能使用,并且变量的值可以在已声明的数据类型的约束下不断改变。变量的作用域是离变量声明最近的一对{}之内。
2、变量的分类
①、按照变量的类型分类
基本数据类型变量:byte、short、int、long、float、double、char、boolean
引用数据类型变量:类、接口、数组
②、按照声明的位置分类
局部变量: 方法或者语句块的内部定义的变量,其作用域是该方法或者该语句块中。
全局变量: 方法外部、类的内部定义的变量,其作用域是整个类。
3、基本数据类型:
类型 | 占用存储空间(字节) | 数据范围(容量) | |
byte | 整型(默认为int型),声明long型后面必须增加'l'或者'L',譬如:long i = 10L | 1 | -27 ~ 27-1 |
short | 2 | -215 ~ -215-1 | |
int | 4 | -231 ~ 231-1 | |
long | 8 | ...... | |
float | 浮点类型(默认为double型)声明float型须在后面加'f'或‘F',譬如: float f = 10.9f | 4 | ...... |
double | 8 | ...... | |
char | 字符类型,该类型可以进行运算,因为它都对应有Unicode码 | 2 | ...... |
boolean | 布尔型,该类型数据只有true和false两个值,不能使用0和非0数来代替。 | ...... |
4、数据类型的转换。
①、自动数据类型转换:容量小的类型可以自动转换为容量大的数据类型,具体容量大小排序如下:

当有多种类型的数据混合运算时,系统默认将所有数据转换为当前表达式容量最大的那个数据的数据类型,然后进行运算。
byte,short,char之间是不能自动转化的,对于只包含这三种类型的运算,系统会自动将他们都转换为int型。
当把任何基本类型的值和字符串进行连接运算时(+),基本类型的值都自动转化为字符串类型。
boolean类型是不能转换为其他基本数据类型的。
②、强制类型转换:通过使用强制转换符()将容量大的数据类型转换为容量小的数据类型。
字符串无法直接转换为基本类型,但是可以通过基本类型对应的包装类的一些方法显示地进行转换。如:
int i = Integer.parseInt(new String("43")); //Integer 是 int 类型的包装类型。
package tzy_01_variable;public class Test_01 {public static void main(String [] args){byte bt = 10;int i = 10;char c = 'a';short s = 10;long l = 10;//float f = 10.0;报错,因为float类型的变量值后需要紧跟'f'或者'F',正确写法如下:float f = 10.0f;double d = 10.0;boolean bl = true;String str1 = "10";//基本数据类型的自动转换://short s1 = bt + s + c; 报错,因为byte、short、char之间是不能自动转化的,对于只包含这三种类型的运算,系统会自动将他们都转换为int型。int i1 = bt + s + c;System.out.println(i1);//short s1 = s + i; 报错,因为不同类型的基本数据类型变量相加减,会自动转换为当前运算式中“容量”最大的那个基本类型变量的类型。long l1 = s + i ;System.out.println(l1);//在表达式中,字符串之前的基本数据类型变量遵照原有的基本数据类型运算的规则进行运算,但是字符串之后的基本数据类型变量统统视为字符串来进行连接运算。System.out.println(str1 + i + l);//结果:101010System.out.println(d + f + i + str1 + bl); //结果:30.010true//System.out.println(d + f + i + bl + str1); boolean类型的变量无法转化为其他基本数据类型。//强制类型转换:通过使用强制转换符()将容量大的数据类型转换为容量小的数据类型。char c2 = (char) (i1 + c + bt); //强转符: (char)System.out.println(c2); //输出结果为字符: à//int i2 = str1;报错,因为字符串是无法直接转换为基本数据类型.若想将字符串转换为字符串,需调用基本类型对应的包装类的方法(如parsrInt(str));//int i3 = Integer.parseInt(new String("string")); 运行时异常:NumberFormatException;由此可见将字符串转换为基本数据类型之前,还要考虑字符串双引号内的元素是否符合基本类型的要求。int i2 = Integer.parseInt(str1);System.out.println(i2);boolean b1 = Boolean.parseBoolean("true"); //方法内的字符串只能为"true"或者"false",否则报运行时异常。System.out.println(b1); //输出true }}