Java学习之路——变量

Java学习之路——变量

一、定义

1. 什么是变量?

在计算机中,大部分需要实时处理的数据都被存放在了内存中。在内存内部,分割出了若干个数据存储单元,每个单元可以存储一个 8bit 的数据,就如同一栋楼里面包含了许许多多的居民房。为了区分这些存储单元,每个单元都分配了一个编号,这个编号就被称为内存地址

变量的实质是计算机按照我们需要使用的变量的数据类型及大小而分配到的一块内存空间,这块内存空间包含一个或多个数据存储单元,在这块空间中包含了变量的类型、名字和值。

我们在编写Java程序时,表面上是在对变量进行操作,实质上是在对内存空间中的数据存储单元进行操作。只是由于编译器的功劳,能够让不同的变量与相对应的内存地址结合起来,让我们以操作变量的形式去操作数据存储单元。

2. 什么是数据类型?

不同的数据有着不同的类型,不同的类型有着不同的空间分配方式,不同的分配方式又需要着不同的数据空间。

例如 在 Java中int类型和float类型都是4个字节,但是float类型的数值范围却大于int的数值范围

这就是因为两种类型的数据对空间的利用方式不同:

  • **int 类型:**第一位是符号位代表正负,剩下的31位表示数值位。其表示数据是各个位之间表示的值直接相加得出,所以表示的值范围是-2^31 ~ 2^31 - 1
  • **float类型:**第一位是符号位代表正负,余下的是八位指数位和23位底数位(底数是无符号的)。此类型是8位指数23位底数,这么来说可以表示最大的值就是2^23^127,最小值就是-2^23^127。所以范围就是-2^23^127 ~ 2^23^127

数据类型的根本作用就是告诉计算机应该为这个变量分配多大的内存空间!

3. 变量的声明与赋值

int num;    // 声明一个整型的变量,变量名为num
num = 100;  // 为该整型变量赋值100
// 可以同时完成变量的声明与赋值
int num1 = 100;

二、作用域

1. 作用域的范围

在Java程序中,变量的使用使用范围限制的。这个范围就叫变量的作用域。

一对 “{}” 就是一个作用域,在同一个作用域中,变量名不能重名,但是变量可以重新赋值。

public class Demo {
    
    
    public static void main(String[] args) {
    
    
        int b = 10;

        for (int i=0 ; i<1 ; i++) {
    
    
            System.out.println(b);
        }

        // System.out.println(i);  此处会报错
    }
}

在上面这个程序中,“变量b” 定义在 “main方法” 之中,而 “for语句” 也在 “main方法” 中,因此可以在循环中访问 “变量b”;

但是 “变量i” 是在 “for语句” 中定义的,因此只能在 “for语句” 中访问,循环结束后该变量已经被释放,在循环外面是无法访问 “i变量” 的。

因此我们编写程序的过程中,对于一些只在循环、判断等地方使用的变量,我们可以在其内部定义变量,这样有利于我们节省内存空间。

2. 成员变量和局部变量

  • 局部变量:在方法体中声明的变量
  • 成员变量:在方法体外,类体之内声明的变量叫成员变量
public class Demo {
    
    
    // 成员变量
    int a = 10;    

    public static void main(String[] args) {
    
    
        // 局部变量
        int a = 100;  
        int b = 1000;

        System.out.println(a);  // 100
        // 访问变量时遵循就近原则,优先访问局部变量
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43580193/article/details/109996541