1.变量
1.1 什么是变量???
▪ 内存中的一个存储区域。
▪ 可在该区域中的同一类型范围内不断变化。
1.2 变量的作用:
▪ 在内存中保存数据。
1.3 变量的使用:
▪ 在java中每个变量必须先声名,后使用。
1.4变量的声名:
语法 :<数据类型> <变量名称>
int x;
1.5变量的赋值:
语法:<变量名称>=<值>
x = 5;
1.6变量的分类:
按数据类型分:
扩展 按声名位置分:
在方法体外,类体内声明的变量称为成员变量。
在方法体内部声明的变量称为局部变量。
实例变量(不以static修饰)
类变量(以static修饰)
形参(方法、构造器中定义的变量)
方法局部变量(在方法内定义)
代码块局部变量(在代码块内定义)
2.数据类型
2.1整数类型:
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte(字节) | 1字节=8bit位 | -128~127 |
short (短整型) | 2字节 | -2^15 ~ 2^15-1 |
int (整形) | 4字节 | -2^31 ~ 2^31-1(约21亿) |
long (长整型) | 8字节 | -2^63 ~2^63-1 |
▪ Java各整数类型有固定的表数范围和字段长度,以保证java程序的可移植性。
▪ java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’,一般情况下加‘L’,以便于区分。
▪ java程序中变量一般情况下声明为int型,除非不足以表示较大的数,才使用long。
2.2浮点类型:
类型 | 占用存储空间 | 表数范围 |
---|---|---|
float (单精度浮点数) | 4字节 | -3.403E38 ~ 3.403E38 |
double(双精度浮点数) | 8字节 | -1.798E308 ~ 1.798E308 |
▪ float,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求,而double的精度是float的两倍,通常情况下使用double。
2.3字符型:
类型 | 占用存储空间 |
---|---|
char | 2字节 |
▪ char类型数据来表示通常意义上的字符,
▪ Java中的所有字符都使用Unicode编码,所以一个字符可以存储一个字符或者一个汉字,例如‘共’的Unicode编码为20849。所以char类型是可以运算的。
2.4布尔型:
▪ boolean(布尔型)用来判断逻辑条件,其类型数据只有true和false。
2.5字符串类型:
▪ String(字符串)不是基本数据类型,属于引用数据类型。其使用方式基本上与基本数据类型一致,它可以连接其他字符串也可以连接其他数据类型。
注: 其他引用数据类型这里暂时不作介绍
3数据类型转换
▪ 数据类型转换分为自动类型转换和强制类型转换。
3.1自动类型转换:
▪ 容量小的类型可以向容量大的类型进行自动类型转换。
其大小顺序为:
▪ byte/short/char < int < long < float < double < String
▪ 有多种数据类型进行混合运算时,系统会自动将所有类型转化为最大的,然后进行运算。
▪ 注意Boolean类型不会参与运算。
例如:
public class Test {
public static void main(String[] args) {
int a = 50;
float b = 6;
System.out.println(a+b);
}
}
其输出结果为:
这里将输出结果自动转化为float类型所以会输出"56.0",出现小数点后一位。
3.2强制类型转换:
▪ 是自动类型转换的逆向过程,所以有可能会出现精度降低或溢出。
▪ 注意Boolean类型不能参与转换。
方法:
▪ (需要转换的类型)数据
例如:
public class Test {
public static void main(String[] args) {
float a = (byte)50.25;
System.out.println(a);
}
}
其输出结果为:
注意此时输出结果为50.0,a的值本应该为50.25,因为进行强制类型转换,向精度更小的范围转换少了0.25。所以我们在进行转换时应当特别注意这些精度范围。