1. 变量
1.1 变量的概念
- 变量是计算机内存中的一块存储单元,是存储数据的基本单元
- 变量的组成包括:数据类型、变量名、值,后文会具体描述
- 变量的本质作用就是去记录数据的,比如说记录一个人的身高、体重、年龄,就需要去程序中记录数据,而不同的数据使用不同的数据类型去存储,后文会具体描述
1.2 变量的定义
变量的定义有三种方法
- 直接声明
- 先声明后赋值
- 多个同类型变量声明与赋值
代码举例:
public class VariableDefine {
public static void main(String[] args) {
int age; //第一种方法:变量的声明
age = 21;
int number = 12345; //第二种方法:先声明后赋值
int a,b,c = 100,d=123; //第三种方法:多个同类型变量声明与赋值
System.out.println("age = " + age);
System.out.println("number = " + number);
System.out.println("c = " + c);
System.out.println("d = " + d);
}
}
-
以上代码可以清晰看到三种变量的定义方法
-
输出结果:
-
要实现 age = 21这种效果,只需要在输出时,用
字符串 + 变量
就可以了,如上输出,其中,+
只做文字拼接,不做加法计算 -
注意如果只是单纯输出变量的值,不需要双引号,如
System.out.println(age); //输出变量的值,不需要加双引号 System.out.println("age"); //如果加了双引号,那么输出的是字符age,既不是变量age也不是变量的值。
输出结果
-
注意事项:
-
未赋值的变量是不能使用的,当我们注释掉了age,此时age就没有赋值,可以看到没有赋值是直接报错了
-
第三种定义变量的方法,不推荐使用,因为代码可读性不高,不便于阅读
1.3 变量概念解析
有了变量的定义,用以上代码解析一下变量的概念
- 变量是计算机内存中的一块存储单元,是存储数据的基本单元
- 当我们声明一个变量age,
int age;
那么在内存当中就会开辟一个int字节的空间,这块空间的名称叫做age,我们可以通过age来访问到这一块空间
- 当我们声明一个变量age,
此时里面还没有数据,我们只需要赋值age = 21;
就把数据存到内存当中
- 变量的组成包括:数据类型、变量名、值
- 比如说:
int number = 12345;
,其中int是整数类型,变量名为number,值为12345,这三个部分组成了一个number变量
- 比如说:
1.4 局部变量
-
定义位置
-
定义在方法内
-
比如说定义在main方法以内
public class VariableDefine { public static void main(String[] args) { int a = 10; System.out.println(a); } }
-
-
-
作用范围
-
当前变量最近的大括号内
public class VariableDefine { public static void main(String[] args) { int a = 10; System.out.println(a); if(a == 10){ int b = 20; int c = 30; System.out.println(c); } System.out.println(b); } }
运行结果
可以看见c在作用范围内,而b已经不在作用范围内 所以无法使用
-
-
重名
-
重名的作用范围内不能出现重名
public class VariableDefine { public static void main(String[] args) { int a = 10; System.out.println(a); if(a == 10){ int b = 20; int b = 30; System.out.println(b); } } }
印证结论
-
-
默认值
-
局部变量必须先赋值后使用,没有默认值
public class VariableDefine { public static void main(String[] args) { int a = 10; int b; System.out.println(b); } }
验证结论
-
-
生命周期
- 随着方法的入栈而生效,随着方法的出栈而死亡
-
存储文章
- 基本数据类型存在栈区中,引用数据类型 变量名在栈区 而值在堆区
2. 常量
无法改变的数据叫做常量
public class ConstantTest {
public static void main(String[] args) {
System.out.println(100); //100为整型常量
System.out.println(3.14); //3.14为浮点型常量
System.out.println('a'); //a为字符常量
System.out.println(true); //true为布尔常量
System.out.println("true"); //"true"为字符串常量
}
}
3. 标识符
标识符 |
---|
只要是需要自定义名称的内容,都属于标识符 |
标识符名称不能与Java关键字、保留字冲突 |
可以以字母、下划线、美元符号、人民币符号,可以包含数字但不能以数字开头 |
类名:由一个或多个单词组成,每个单词字母开头大写,满足大驼峰 |
变量名:由一个或多个单词组成,第一个单词字母开头小写,其余每个单词大写,满足小驼峰 |
定义变量居然做到见名知义,尽量使用单词定义,最好不要中英文混用,或者是中文拼音,不便于阅读 |