[TOC]
3.1 变量
内容导视:
- 字面量
- 变量
3.1.1 字面量
值(数据)被称为字面量,一眼就能看到值的量。如 3 是整数型字面量,'a' 是字符型字面量;有些人把它叫做常量,无可非议。
字面量类型如下:
1)整数类型:如 1、2、3...这些整数。 2)浮点类型:如 22.4、3.2...这些小数。 3)布尔类型:只有两个值,true、false 分别代表真和假。 4)字符类型:'a'、'b'、'c'...用英文单引号括起来的==单个字符==。 5)字符串类型:"abc"、"b"、"北京欢迎你"...用英文双引号括起来的是字符串。
3.1.2 变量
使用如下方式,也不是不可以,但是你不怕一个个复制粘贴不小心漏了吗?
System.out.println(327501510);
System.out.println(327501510 + 6);
System.out.println("我们的花园真漂亮");
System.out.println("我们的花园真漂亮");
为了使字面量得到重复利用,下面使用变量保存这些值。
内容如下:
- 变量的声明
- 变量含义
- 变量按声明位置分类
变量声明
每个变量都需要先声明(定义)自己将要保存的数据的类型,后再给变量赋值。(放心,数据类型之后有讲,现在先看看,别管 int、String 是什么)
例:想要保存整数类型的值,需要先声明整数类型的变量,假如取名为 i:
int i;
再给变量赋一个整数值。
// 使用等号(赋值运算符)把等号右边的字面量赋给左边的变量
i = 327501510;
可以访问这个变量保存的值。
System.out.println(i);// 此时 i 为 327501510
也可以重新给 i 变量赋值,把之前保存的值覆盖。
i = 6;// 把 6 赋给 i
System.out.println(i);// 此时 i 为 6
两者结合,在声明的同时,赋值。
int i = 327501510;
那么就可以把开头的例子转变了:
int num1 = 327501510;
int num2 = 6;
String str = "我们的花园真漂亮";
System.out.println(num1);
System.out.println(num1 + num2);
System.out.println(str);
System.out.println(str);
num1、num2、str 是变量名,作为标识符,我们有权力命名,只要符合命名规则就行。
很明显通过以上例子看到变量有三个要素:
- 变量的数据类型,如 int
- 变量名,如 num1
- 变量值,如 327501510
数据类型 变量名 = 字面量;
如果不考虑类型转换,那么变量的数据类型必须与字面量类型一致。
比如整数型的 int 类型不能保存浮点型的字面量,int i = 3.23; 是错误的写法。由于现在还没有讲数据类型,听着迷惑很正常。
变量含义
变量是内存中存储数据的最基本的单元,任何变量都有数据类型,不同的数据类型在内存中分配的空间大小不同。
如 int a = 3; 在内存里分配 4 个字节空间,空间存放着 3,a 就代表这个空间。
变量相当于内存中的一小块数据存储空间,通过变量名可以访问到这个区域。可以把 a 理解成你家的门牌号,通过门牌号定位你家。
int 类型会被分配 4 个字节大小的空间,1 个字节(byte)= 8 个比特位(bit)
1 TB = 1024 GB
1 GB = 1024 MB
1 MB = 1024 KB
1 KB = 1024 Byte
1 Byte = 8 Bit
1 Bit = 0 或 1
利用 0 和 1 的不同的组合代表各式各样的数据,等学到进制之间的转换、原码补码就明白了,但你也可以跳过,节省时间。
变量按声明位置分类
分为成员变量与局部变量。之间说过类名 Hello 后跟的 {} 是类体,方法名 main 后跟的 {} 是方法体。
public class Hello {
// 方法体外、类体中声明的变量是成员变量
int a = 2;
public static void main(String[] args) {
// 方法体中声明的变量是局部变量
int b = 4;
System.out.println(b);// 4
}
}
值得注意的地方
1)局部变量必须赋值后才能访问,错误示范:
public static void main(String[] args) {
int i;
System.out.println(i);
}
你得先给 i 赋值,比如 int i = 10; 后再访问。
2)同一个域中,局部变量不能重复声明。
域:{} 包起来的范围。
// 错误示范
public static void main(String[] args) {
int i = 3;
int i = 6;
}
你得换个名字,以免冲突。比如把后面改成 int j = 6;
3)变量需要先声明,后访问,错误示范:
public static void main(String[] args) {
System.out.println(i);
int i = 3;
}
你应该把它俩的顺序换过来,毕竟 java 语句是自上而下逐行执行的。