变量和常量的举例详解

本文详细介绍了Java中的变量、常量的概念及其使用,包括变量的声明、赋值、作用域以及内存管理。通过实例解析了变量的生命周期和内存变化,帮助读者深入理解程序中的数据存储和操作。同时,提到了常量的分类,如字面常量和符号常量,并强调了变量不可重复定义的原则。
摘要由CSDN通过智能技术生成

 举例:
小美的年龄:去年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等称为符号常量(字符常量)。


字面常量的类型:


注意:逻辑常量就两个值,一个是true,一个是false

变量:

变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。

【1】变量声明格式:

type  varName [=value][,varName[=value]...]; //[ ]中的内容为可选项,即可有可无
数据类型  变量名  [=初始值] [,变量名  [=初始值]…];
案例:
int     age   = 19 , age2 = 90  ;
int  age,age2;

【2】变量的声明:

(1)如果你只定义一个变量,没有给变量进行赋值的话,那么其实这个变量相当于没有定义:

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

【3】变量的赋值:

我们自己定义的时候直接就可以用一句话定义:
int age = 10;

变量的值可以更改:

public class TestVar01{
        public static void main(String[] args){
                //变量的声明(定义变量)(以年龄为案例讲解)
                //java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型
                int age ; //定义一个整数类型的变量,变量名字为age 
                //对变量进行赋值操作:
                age = 10; //变量名字为age,具体的值为10 
                age = 12;
                age = 20;
                age = age + 4;
                age = 9;
                age = 9;
                System.out.println(age);
                
        }
}

变量不可以重复定义:

【4】变量的使用:

public class TestVar01{
        public static void main(String[] args){
                //变量的声明(定义变量)(以年龄为案例讲解)
                //java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型
                int age ; //定义一个整数类型的变量,变量名字为age 
                //对变量进行赋值操作:
                age = 10; //变量名字为age,具体的值为10 
                age = 12;
                age = 20;
                age = age + 4;
                age = 9;
                age = 9;
                System.out.println(age);
                System.out.println(age-2);
                System.out.println(age+10);
                int num = age + 66;
                System.out.println(num);
                
        }
}

扩展:

public class TestVar02{
        public static void main(String[] args){
                int a = 10;
                int b = 20;
                int c = a + b ;
        }
}


现在对上述代码进行“反编译过程”“反汇编过程”

 

【5】变量的内存:

【6】习题:

public class TestVar03{
        public static void main(String[] args){
                int num1 = 10;
                int num2 = 20;
                num1 = num2;
                num2 = num2 + 10;
                num1 = num2 - 10;
                num2 = num1;
                System.out.println("num1="+num1);
                System.out.println("num2="+num2);
        }
}

内存分析:

结果:

【7】变量的作用域:
作用域指的就是作用范围,变量在什么范围中有效
作用范围就是离它最近的{}

 备注:下面写的代码,不要去运行,会出错

/*
局部变量:定义在方法中
成员变量:定义在类中,方法外
*/
public class TestVar04{
        int b = 20;
        public static void main(String[] args){
                System.out.println(a);//no
                int a = 10;
                System.out.println(a);//yes
                System.out.println(b);//yes
                {
                        int c = 40;
                        System.out.println(c);//yes
                        int a = 50;//属于变量的重复定义
                }
                System.out.println(c);//no
        }
        
        public void eat(){
                System.out.println(b);//yes
                System.out.println(a);//no
                int a = 30;//不是变量的重复定义
                System.out.println(a);//yes
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值