小工具知识网

当前位置: 首页 > 行业知识 > java中的变量

行业知识

java中的变量

2026-10-25 11:57:00 来源:互联网转载

知识点框架:

字面量

   字面量说得通俗一点就是数据,例如:123, "中国",false, 3,14等等。在我们的现实生活中每天都会与数据打交道,今天买了50块钱的水果,水果重3.2公斤,今天明明是星期一,你却说是星期二,显然你在说谎 (false)。计算机最厉害的地方就在于处理数据的能力,一门编程语言首先要能够表示数据,才能去处理数据,所以在java中通过字面量来表示数据。

   为了满足生活中需要,数据就会被分类,根据数据的类别,就有了不同的数据类型。

数据被分为:整型,浮点型,字符型,布尔型,字符串等。

整型:(整数)1   100     1000       10000

浮点型:(小数)3.14 ,1.0 ,3.1

字符型:(单个文字,字符)'a' ,      '国‘

布尔型:(真假)true,false

字符串型:(多个字符):"欢迎来到中国"

public class ConstTestDemo {    public static void main(String[] args) {        System.out.println("我爱中国");        System.out.println(110);        System.out.println(3.14159);        System.out.println("不好好学习,就要回家卖红薯");        System.out.println(true);        System.out.println(false);        System.out.println('男');        System.out.println('A');        System.out.println("ab");    }}

注意:Java中规定字符型字面量必须用半角的单引号括起来,字符串型字面量则是采用半角双引号括起来。

这个是用IDEA演示的,编译报错了。因为在java语言中字符型只能是单个字符,多个字符则是字符串,应该使用半角双引号括起来。以上程序中编译器检测到 'ab' 之后,发现以单引号开始,会认为后面是一个字符,于是去a后面找另一半单引号,结果未找到结束的单引号(因为结束的单引号在b后面),所以编译器报错,提示信息是“未结束的字符文字”。

变量概述:

变量是内存当中存储数据最基本的单元,将数据放到内存当中,给这块内存空间取一个名字,这就是变量。

变量就是内存当中的一块空间,这块空间有类型,名字,数据(值),这也是变量必须具备的三个要素。

变量的本质就是一块内存空间,而数据类型则是决定这个变量内存空间的大小。

变量里面存储的数据需要和数据类型保持一致。

变量,就是可以发生改变的量,即:内存中存储的数据可以发生改变:例如:

public class ConstTestDemo2 {    public static void main(String[] args) {        int age = 18;        age = 20;        System.out.println(age); //20    }}

变量的使用:

使用变量之前先声明变量,语法格式:

                                      数据类型 变量名;

public class ConstTestDemo2 {    public static void main(String[] args) {        int age;        System.out.println(age);    }}

可以看到的是:上述代码中 age 变量的三要素只具备了两个要素:数据类型和变量名,缺少了字面值(变量里面没有存储数据),这个变量是不能够访问的。像IDEA这样的编译器连编译都通过不了,如下图的红色箭头这样。

运行结果:

得出结论:在java语言中,变量必须先声明,在赋值才能访问;采用“ =”进行赋值。

赋值语法格式:

                                             变量名 = 值; 

需要注意的是值的数据类型必须和变量的数据类型保持一致。例如:

java当中允许一次声明多个同类型的变量:

public class ConstTestDemo2 {    public static void main(String[] args) {        int a = 10, b = 20, c = 30;        System.out.println(a);   //10        System.out.println(b);   //20        System.out.println(c);   //30    }}

将代码稍微改动一下,这是修改之后的代码:

public class ConstTestDemo2 {    public static void main(String[] args) {        int a,b,c = 100;        System.out.println(a);        System.out.println(b);        System.out.println(c);    }}//修改后的代码编译不能通过,可以自行尝试一下//定义了三个变量分别叫 a ,b,c,并且给c 赋值为100//此时a,b 都没有赋值,不满足变量的三要素,也就是说,在访问之前要给变量赋值才能访问

变量的分类:

变量根据位置不同可以分为;局部变量和成员变量。在方法体当中声明的变量以及方法的参数都是局部变量。在方法体外且在类体内部声明的变量叫成员变量,成员变量如果使用static关键字修饰则称为静态变量,如果没有static关键字修饰则称为实例变量。

public class ConstTestDemo3 {    int a = 20; //实例变量    static int b = 100;//静态变量    public static void sum(int a, int b) { //局部变量    }    public static void main(String[] args) {        int c = 50; //局部变量    }}

变量的作用域:

局部变量只有在方法体内部有效,方法执行的时候局部变量的内存才会被分配(类似一个婴儿出生),当方法执行结束之后,局部变量的内存就会被释放(类似于一个老人去世)。

例如:

public class ConstTestDemo4 {    public static void main(String[] args) {        int age = 24;    }    public static void fun() {        System.out.println(age);    }}//首先给出结论,这段代码编译都是不能通过的// 找不到符号:变量age//原因分析因为age 是局部变量,出了main函数就被释放了,//被释放了之后就不复存在,当在fun函数里面去访问的时候就找不到这个变量age,//即编译器的运行结果:找不到符号:变量age  

那如果将age 声明为静态变量,代码如下:

public class ConstTestDemo4 {    static int age = 24;    public static void main(String[] args) {        System.out.println("main age" + "=" + age);    }    public static void fun() {        System.out.println("fun age" + "=" + age);    }}

运行结果

: 

为什么只有main方法当中输出了age,因为main()函数是程序的入口,而fun()函数没有手动的去调用它,所以就不会被执行到

在同一个作用域之中:变量名不能重复:

public class ConstTestDemo5 {    public static void main(String[] args) {        int a = 1;        int a = 1;    }}//连编译都不通过

局部变量和成员变量同名时,遵循“ 就近原则 “ 局部变量优先:

public class ConstTestDemo5 {    static int a = 10;    public static void main(String[] args) {        int a = 1;        System.out.println(a);  //1    }    public static void fun() {        System.out.println("fun" + "=" + a); //10    }}

上一篇:Win10文件共享设置教程,轻松实现文件快速共享

下一篇:揭秘付费问答背后的神秘源码奥秘,源码揭秘之旅,激发你的好奇心!