一、变量概述
变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。
二、计算机存储单元
无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
当程序需要使用存储空间时,操作系统最小会分派给程序1个字节,而不是1个位。
三、基本类型(4类8种)
变量必须要有明确的类型,什么类型的变量装载什么类型的数据。
Java中基本类型一共4类,把这4类展开后共8种基本类型。我们今后编写程序时使用的是这8种基本类型而不是4类,这8种基本类型指定了范围。
四类 |
八种 |
字节数 |
数据表示范围 |
整型 |
byte |
1 |
-128~127 |
short |
2 |
-32768~32767 |
|
int |
4 |
-2147483648~2147483648 |
|
long |
8 |
-263~263-1 |
|
浮点型 |
float |
4 |
-3.403E38~3.403E38 |
double |
8 |
-1.798E308~1.798E308 |
|
字符型 |
char |
2 |
表示一个字符,如('a','A','0','家') |
布尔型 |
boolean |
1 |
只有两个值true与false |
四、常量与类型
整数常量可以根据所在范围来确定类型,例如100在-128~127之间,所以他是byte类型;500在-32768~32767之间,所以它是short类型;100000在-2147483648~2147483648之间,所以它是int类型。java中默认的整数类型是int类型
在Java中整数常量如果不在-2147483648~2147483648之间就必须添加“L”后缀(小写的也可以,但建议使用大写),在-2147483648~2147483648之间的也可以添加“L”后缀。也就是说12345678901不在-2147483648~2147483648之间,所以它在Java中是错误的常量,你必须这样写:12345678901L,这才是正确的常量。所以添加了“L”后缀的整数常量都是long类型的,例如:100L、12345678901L都是long类型的常量。
浮点类型的常量也可使用后缀,在Java中所有没有后缀以及使用“D”后缀(小写也可以,但建议使用大写)的小数都是double类型;float类型常量必须添加“F”后缀(小写也可以,但建议使用大写)java中默认的浮点类型是double类型
3.14没有后缀,所以它是double类型;
5.28D为double类型;
1.26F为float类型。
五、 定义变量(创建变量)
定义变量的语法格式:
数据类型 变量名 = 数据值;
int a = 100;
其中int是数据类型,指定了变量只能存储整数,而且指定了存储范围为-2147483648~2147483648。
其中a表示变量名,变量名是标识符,这说明只要是合法的标识符都可以用来做变量名。在程序中可以通过变量名来操作变量(内存中的小盒子)。
其中“=100”是给变量赋值,即向a变量中写入100(变量是个小盒子,现在小盒子中保存的是100)。注意,给变量赋的值一定要与类型符合,也就是说int类型只能存储整数,而且必须是在-2147483648~2147483648范围内的整数。100满足了这两个条件,所以是正确的。
/*
变量定义格式:
数据类型 变量名 = 变量值;
*/
public class Variable {
public static void main(String[] args) {
int a = 10;
double b = 3.14;
char c = 'z';
String s = "i love java";
a = 20;
System.out.println(a);
}
}
六、变量使用的注意事项
我们使用变量的时候需要注意,要满足变量的使用规则才可以使用的,我们来看看都有哪些注意事项。
变量使用的注意事项
1.变量定义后可以不赋值,使用时再赋值。不赋值不能使用。
public static void main(String[] args) {
int x;
x = 20; //为x赋值20
System.out.println(x);//读取x变量中的值,再打印
}
2.变量使用时有作用域的限制。
public static void main(String[] args) {
int x = 20;
{
int y = 20;
}
System.out.println(x);//读取x变量中的值,再打印
System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量
}
3.变量不可以重复定义。
public static void main(String[] args){
int x = 10;
double x = 5.5;//编译失败,变量重复定义
}
七、数据类型转换
不同类型的变量要先进行类型转换再运算。
比如把小数转换成整数的操作转换的过程中,数据遵循一个原则:
范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);
范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte)
数据范围从小到大依次:byte -> short -> int -> long -> float -> double
1.自动类型转换
表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换
自动类型转换格式:
范围大的数据类型 变量 = 范围小的数据类型值;
如:
double d = 1000;
或
int i = 100;
double d2 = i;
2.强制类型转换
表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换
强制类型转换格式:
范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型值;
如:
int i = (int)6.718; //i的值为6
或
double d = 3.14;
int i2 = (int)d; //i2的值为3