6. Java变量 6个月前

编程语言
913
6. Java变量

1 什么是变量?

变量就是内存中的一块区域,变量有名字,有对应的值,这块区域有大小(由数据类型决定,如 int, long )

源于数学中的变量,比如 y = x + 10 , 这里面的 x , y 都是变量

在Java中,变量分为两种:基本类型的变量引用类型的变量

2 如何定义一个变量?

变量必须是先声明后使用,那么如何声明一个变量呢?

语法如下:

数据类似 变量名;

下面是一些声明示例如下:

int age = 18;

由上述语句可知:

  • 变量的名字是 age
  • 变量 age 存储的值是18
  • 变量 age 在内存中占4个字节,原因是 age 是 int 类型的,int 类型在内存中占 4 个字节
  • 必须是分号 ; 结尾

注:对于此例子, 如果定义变量的时候不给一个初始值,那么变量默认的就是 0

下面一张图更清楚的表示了变量在内存中的样子

image-20210624130052199

下面是一些声明变量的例子:

int age = 18;                       //声明了一个变量 : age , 并初始化为:18
int a,b,c;                          //声明了 3 个变量:a,b,c
String s = "www.helloworld.net" ;   //声明并初始化变量: s
float pi = 3.14f;                   //声明并初始化变量: pi

3 变量的分类

Java的变量可以分为 3 类:

  • 类变量:独立于方法之外的变量,用 static 修饰,通常也称作类变量
  • 实例变量:独立于方法之外的变量,没有 static修饰
  • 局部变量:类的方法中的变量或者方法的参数

如何声明各种变量,示例如下:

public class HelloWorld {
    static int id = 1000; //类变量 , 使用 static 修饰

    String name;          //实例变量,

    public static void main(String[] args) {
        String site = "www.helloworld.net"; //局部变量 , 定义在方法中
    }
}

3.1 类变量用法

类变量使用 static 修饰,不属性任何对象

示例如下:

public class HelloWorld {
    static int id = 1000; //类变量 , 使用 static 修饰

    public static void main(String[] args) {
        System.out.println(HelloWorld.id);  //输出:1000
    }
}

3.2 实例变量

实例变量不用 static修饰,必须创建类的实例后,才能使用

示例如下:

public class HelloWorld {
    String site = "www.helloworld.net"; //定义了一个实例变量

    public static void main(String[] args) {
        HelloWorld hw = new HelloWorld();  // 首先创建一个类的实例 hw 
        System.out.println(hw.site);       // 输出:www.helloworld.net
    }
}

3.3 局部变量

局部变量,是定义在方法中的变量,作用域也在方法内,出了方法,变量就不起作用了

示例如下:

public class HelloWorld {

    public static void main(String[] args) {
        float pi = 3.14f;
        System.out.println(pi); //输出:3.14
    }
}

4 变量命名规范

对于变量名,每种编程语言都有自己的命名规则,但是大部分都是一样的。

Java的变量命名规范如下:

  • 以字母,美元符号$或者下划线_开头的合法的标符,注:不能以数字开头
  • 后续的字符可以是 字母数字,美元符号$或者下划线_开头
  • 变量名是区分大小写的
  • 关键字或者保留字不能作为变量名

下面还有几个约定成俗的规范,虽然非强制,但是建议这么做

  • 变量命名应该用小驼峰命名法。 什么是小驼峰命名呢? 比如 maxValue, userAge等 即:除了第一个单词首字母小写外,其它单词的首字母全部大写
  • 如果是常量,建议所有字母全部大写,并且单词之间用下划线分开,如 final int MAX_VALUE = 10;

我们看一下下面的示例:

//区分大小写,age 和 AGE 是两个不同的变量
int age = 18;
int AGE = 18;

//小驼峰
String siteUrl = "www.helloworld.net";

//常量
final int MAX_VALUE = 100;

5 基本类型的变量和引用类型的变量

在Java中,从变量的类型上分,可以将变量分为 基本类型的变量引用类型的变量

上面讲的就是基本类型的变量,如 byte ,short ,int ,long , float ,double ,char,boolean

通过上面的讲解我们知道 ,变量就是内存中的一块区域,这块区域有类型,有大小,有名字,有存储的值

我们从存储的值来了解基本类型的变量引用类型的变量的区别

  • 基本类型变量:比如 int a = 10,变量a 存储的值就是数据本身 ,也就是10 , 即这块区域存储的值就是10
  • 引用类型变量:比如我们有一个类叫 Student , 定义一个变量 Student stu = new Student("小明",23) 变量 stu 就是引用类型的变量,这块内存区域存储的值并不是 Student对象的真实的数据,而且存储的是对象的引用,你可以理解为"地址" 通过这个地址是可以找到真实的存储对象的那块内存区域

例子:关于基本类型的变量引用类型的变量 ,我还想举一个例子,来加深理解

基本类型变量:就像一个人,这个人只有一个房车,整个家就是一个房车,走到哪开到哪

引用类型变量:也像一个人,不过这个人有自己的房子,所以,走到哪,房子不能带到哪,只能把房子的地址带在身上

上面的“房子”就是真实的数据

  1. 基本类型的变量,存储的是自己本身,也就是数据本身
  2. 而引用类型的变量,由于房子是不动产,没法时间带在身边,所以只能把地址带身上,真实的房子并不在身边

小结

通过上面的学习,我知道了变量的一些知识,下面来总结一下:

  • 变量对应的是一块内存区域,这块区域有名字,有存储的值,有类型(决定这块区域占多大的内存空间)
  • 变量的声明方法: 数据类型 变量名字, 如 String site = "www.helloworld.net";
  • 必须以分号 ;结尾
  • 变量分为类变量实例变量,局部变量
  • 变量命名以小驼峰为规范,如 int useAge = 18;
  • 常量的话,全部大写,每个单词之间以下划线_为分隔,如 final int MAX_VALUE = 100;
  • 基本类型的变量存储的是数据本身
  • 引用类型的变量存储的是是引用,可以理解为内存的地址(实际上不是,但是可以这样理解),地址对应的那块区域才是真实的数据
image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2223504
累计阅读

热门教程文档

QT
33小节
Redis
14小节
Javascript
24小节
爬虫
6小节
Docker
62小节