变量
字面量
字面量就是数据/数值,例如:1234,true,”abc”,‟中‟,3.14。在现实生活中每天都会接 触到数据,例如:你今天的体重是 86Kg,你今天花了 500 元,买了个西瓜重量是 8.6Kg,外 面明明是晴天,你却说狂风暴雨,你说的是假话(false),你明明喜欢她,却嘴上说不喜欢, 撒谎(false)。
软件其实就是为了解决现实生活当中的问题,解决生活当中的问题其实就是处理生活当中 的数据,一门编程语言首先要能够表示数据才可以处理数据,所以 Java 程序通过字面量来表 示数据。
在编程语言中数据一般会被分门别类,所以每个数据都是有数据类型的,不同的数据类型 会分配不同大小的内存空间去存储它。
数据被分为:整数型、浮点型、字符型、布尔型、字符串型等。
整数型(数字):1、2、100、-2
浮点型(数字,带小数):1.0、2.0、3.14
字符型(文字,单个字符):'a'、'中'
布尔型(真假):true、false
字符串型(文字,多个字符):”你好呀童鞋!”
需要注意的是,java 中规定字符型字面量必须采用半角的单引号括起来,而字符串型字面 量必须使用半角双引号括起来。这是一个语法规定,不然编译器就报错了。
接下来,我们一起来找出以下代码中哪些是字面量吧?
public class ConstTest1 {
public static void main(String[] args) {
System.out.println("小明的体重=" + 86 + "kg");
System.out.println("圆周率=" + 3.1415926);
System.out.println(true);
System.out.println(false);
System.out.println('男');
System.out.println('a');
System.out.println("你的对手在看书!");
System.out.println("你的闺蜜在减肥!");
System.out.println("你的仇人在磨刀!");
System.out.println("隔壁老王在练腰!");
System.out.println("你还不赶紧抓紧时间,还在这愣着干啥呀!!!");
}
}
通过以上的代码我们可以看到这些数据,或者说可以看到这些字面量:
"小明的体重=":字符串型字面量
86:整数型字面量
"kg":字符串型字面量
"圆周率=":字符串型字面量
3.1415926:浮点型字面量
true、false:都是布尔型字面量,表示真和假
'男'、 'a':都是字符型字面量
"你的对手在看书!"、"你的闺蜜在减肥!"、"你的仇人在磨刀!"、"隔壁老王在练腰! "、"你还不赶紧抓紧时间,还在这愣着干啥呀!!!":这些都是字符串型字面量
以上程序的运行结果如下图所示:

接下来,我们再看一段代码,找出以下程序中字面量属于哪种类型,请看代码:
public class ConstTest2 {
public static void main(String[] args){
System.out.println('9');
System.out.println(9);
System.out.println("100");
System.out.println(100);
System.out.println("3.1415926");
System.out.println(3.1415926);
System.out.println("true");
System.out.println(true);
}
}
通过代码我们可以看到这些字面量:'9'、9、"100"、100、"3.1415926"、3.1415926、"true"、 true,其中'9'由于带有单引号则属于字符型字面量,9 属于整数型字面量;"100"由于带有双引 号则属于字符串型字面量,100 属于整数型字面量;"3.1415926"由于带有双引号则属于字符串 型字面量,3.1415926 属于浮点型字面量;"true"带有双引号则属于字符串型字面量,true 属于布尔型字面量。
通过本小节的学习,大家需要理解的是:什么是字面量。能够知道字面量就是数据,我们 软件处理的就是数据,不同类型的数据在程序中有不同的编写方式,例如:字符型字面量必须 是单个字符,并且使用半角的单引号括起来。字符串型字面量必须是使用半角的双引号括起来。 布尔类型字面量只有两个值,写法是 true 和 false,true 表示真,false 表示假。而浮点型字面 量则带有小数点。
变量
变量概述
变量是内存当中存储数据最基本的单元,将数据(字面量)放到内存当中,给这块内存空间起一个名字,这就是变量。所以变量就是内存当中的一块空间,这块空间有名字、有类型、 有值,这也是变量必须具备的三要素。变量在内存中的抽象图形可以参考下图:

在上图当中每一个抽象的椭圆就代表一个变量,其中 a、c、pi、sex 是 4 个变量的名字(变 量名只要是合法的标识符即可),13、‟好‟、3.14、true 是 4 个变量中分别存储的数据(字面 量),int、char、double、boolean 是 4 个变量分别对应的数据类型(int、char、double、boolean 等都是 java 的关键字,声明变量时用来指定变量的数据类型)。
数据类型在任何一门编程语言当中都很重要,因为程序在运行的过程中会通过不同的数据 类型给数据分配不同大小的空间。有的数据类型占用的空间较小,但有的数据类型占用的空间 就会很大。这也是符合现实的,在现实生活中有些数据较大,有些数据则较小。
变量要求“变量的数据类型”和变量中存储的“数据(字面量)”必须类型是一致的,换 句话说,冰箱是用来存放小食品的,也就是说冰箱只能存放小食品,大象不能往冰箱里放,原 因是放不下,空间不合适。例如:int 类型就只能存下 4 个字节大小的整数,再长一点儿放不 下,比如 long 类型的整数占有 8 个字节,这样的数据肯定是无法放到 int 类型的变量当中的。
所谓变量:可变化的量。它的意思是变量中存储的数据不是一成不变的,是可以被改变的, 假设变量 i 中之前存储的数据是 10,我们可以将 10 换成 100,变量就是这个意思。
通过以上内容的学习,大家需要掌握一个变量是有三要素组成的,分别是:数据类型、变 量名、存储的值。其中存储的值就是上一节讲到的字面量。
使用变量
我们在使用变量之前需要先进行变量的声明,那么声明变量的语法格式是什么呢?请看:
数据类型 变量名;
以上则是声明变量的语法格式,其中数据类型我们在下一章节会详细讲解,目前我们以 “int”这种数据类型为例进行学习,int 表示整数类型(注意:int 是关键字,不能随意写,必 须全部小写)。变量名只要符合标识符命名规则即可,当然也要见名知意,命名规范中还要求 变量名首字母小写,后面每个单词首字母大写。
在 Java 语言中给变量赋值需要采用赋值运算符“=”,请看赋值的语法格式:
变量名 = 值;
在以上的语法当中,等号右边的值其实就是数据,我们之前所学的字面量就可以当做“值”。 其中的等号“=”是一种运算符,它被称为赋值运算符,赋值运算符右边的表达式优先级较高, 所以等号右边先执行,将执行结果赋给左边的变量。(注意:java 语言中的单等号不是用来判 断是否相等的,是为了完成赋值运算的。)
通过本小节的学习,大家需要掌握的是在 Java 语言中变量如何声明,怎么赋值。另外也要 知道变量是可以重新赋值的,还有声明和赋值可以分开完成,也可以一起完成,并且也可以一 次声明多个变量。还有就是在同一个域当中变量名是不能重名的。方法当中的代码是有执行顺 序的,遵循自上而下的顺序依次逐行执行。
变量分类
变量根据声明的位置不同可以分为:局部变量和成员变量。在方法体当中声明的变量以及 方法的每一个参数都是局部变量。在方法体外,类体内声明的变量称为成员变量,成员变量声 明时如果使用 static 关键字修饰的为静态成员变量(简称静态变量),如果没有 static 关键字 修饰则称为实例成员变量(简称实例变量),请看以下代码:
public class VarTest06 {
int x = 20; // 实例变量
static int y = 200; // 静态变量
public static void sum(int a, int b){ // 局部变量 a 和 b
int firstNum = 100; // 局部变量
}
}
在以上代码当中,sum 是和 main 相似的方法,在 sum 方法当中 a、b 都是方法上的参数属 于局部变量,在 sum 的方法体当中声明的 firstNum 属于局部变量。大家也可以看到在 sum 方 法体外面声明了两个变量,一个是 x,一个是 y,这两个变量都属于成员变量,x 变量没有使 用 static 修饰属于实例变量,而 y 属于静态变量。
局部变量只在方法体当中有效,方法开始执行的时候局部变量的内存才会被分配,当方法 执行结束之后,局部变量的内存就释放了。所以局部变量的生命周期非常短暂。
在本小节当中,需要大家掌握的是,看到程序能够找出哪些是局部变量,哪些是实例变量, 哪些是静态变量即可,至于这个变量什么时候声明为局部的,什么时候声明为成员的,后面的 课程当中会详细介绍。
变量作用域
所谓变量的作用域就是变量的有效范围。通过后面内容的学习大家会更加明白,实际上局 部变量、实例变量、静态变量它们存储在 Java 虚拟机的不同内存区域上,所以变量是有作用 域的。关于变量的有效范围,在这里我给大家总结了一个口诀:出了大括号就不认识了。虽然 这句话属于大白话,但很实用。

浙公网安备 33010602011771号