举例:
丽丽的年龄:去年17岁,今年18岁,明年19岁
年龄:17--》18---》19--》值不断变化
年龄---》变量
常量:17,18,19----》常量中的字面常量

常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。
在Java语言中,主要是利用关键字final来定义一个常量。常量一旦被初始化后不能再更改其值。
为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、”helloWorld”等称为字面常量,而使用final修饰的PI等称为符号常量(字符常量)。
2、字面常量的类型
注意:逻辑常量就两个值,一个是true,一个是false
二、变量变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。比如,inta=3;表示a变量的空间大小为4个字节。变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储空间。
1、变量声明格式typevarName[=value][,varName[=value]];//[]中的内容为可选项,即可有可无
数据类型变量名[=初始值][,变量名[=初始值]…];
案例:
intage=19,age2=90;intage,age2;2、变量的声明
(1)如果你只定义一个变量,没有给变量进行赋值的话,那么其实这个变量相当于没有定义:

(2)变量如果没有进行赋值的话,那么使用的时候会出错,告诉你:尚未初始化变量:


我们自己定义的时候直接就可以用一句话定义:
intage=10;
变量的值可以更改:
publicclassTestVar01{publicstaticvoidmain(String[]args){//变量的声明(定义变量)(以年龄为案例讲解)//java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型intage;//定义一个整数类型的变量,变量名字为age//对变量进行赋值操作:age=10;//变量名字为age,具体的值为10age=12;age=20;age=age+4;age=9;age=9;(age);}}变量不可以重复定义:

publicclassTestVar01{publicstaticvoidmain(String[]args){//变量的声明(定义变量)(以年龄为案例讲解)//java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型intage;//定义一个整数类型的变量,变量名字为age//对变量进行赋值操作:age=10;//变量名字为age,具体的值为10age=12;age=20;age=age+4;age=9;age=9;(age);(age-2);(age+10);intnum=age+66;(num);}}扩展
publicclassTestVar02{publicstaticvoidmain(String[]args){inta=10;intb=20;intc=a+b;}}现在对上述代码进行“反编译过程”“反汇编过程”



publicclassTestVar03{publicstaticvoidmain(String[]args){intnum1=10;intnum2=20;num1=num2;num2=num2+10;num1=num2-10;num2=num1;("num1="+num1);("num2="+num2);}}内存分析

结果:

作用域指的就是作用范围,变量在什么范围中有效
作用范围就是离它最近的{}
备注:一会我们写的代码,不要去运行,会出错
/*局部变量:定义在方法中成员变量:定义在类中,方法外*/publicclassTestVar04{intb=20;publicstaticvoidmain(String[]args){(a);//nointa=10;(a);//(b);//yes{intc=40;(c);//yesinta=50;//属于变量的重复定义}(c);//no}publicvoideat(){(b);//(a);//nointa=30;//不是变量的重复定义(a);//yes}}