🐰变量和常量
2021-3-2
| 2023-8-3
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 

变量

变量是java中的一个最基本的单元,是内存中的一块区域,Java中的变量有四个基本属性:变量名,数据类型,存储单元和变量值
  • 变量名:合法的标识符
  • 变量的数据类型:可以是基本类型引用类型(必须包含类型)
    • 变量类型指导程序分配多少空间(不同类型分配不同空间)
  • 存储单元:存储单元大小是由数据类型决定的,如:int为4个字节32位
  • 变量值:在存储单元中放的就是变量值(如果是基本类型放的就是具体值,如果是引用类型放的是内存地址,如果null,表示不指向任何对象)
变量的声明与赋值:
变量必须先声明再赋值,才能访问。变量赋值的时候有要求,字面值的数据类型必须和变量的数据类型一致。
注:成员变量如果不写初始值,系统给它指定了默认值,但局部变量不会;未初始化的局部变量是不可以使用的。最好在定义变量的时候赋一个初始值。
 
变量的一个重要特点是可以重新赋值
第一次定义变量x的时候,需要指定变量类型int。第二次重新赋值时,变量x已经存在了,不能再重复定义,因此不能指定变量类型int
 
int i = 10 和 i = 10的区别
  • int i = 10; 表示在内存中声明一个新的变量,一块新的空间,给这个空间起名i,赋值10
  • i = 10;表示不会在内存中创建一块新的空间,只是将原空间中的数据进行修改。进行重新赋值
  • 在同一个域当中,变量名是不能重名的。
 
 
 
Java语言支持的变量类型有:
  • 局部变量:类的方法中的变量
  • 成员变量:独立于方法之外的变量
    • 类变量(静态变量):有 static 修饰
    • 实例变量:没有 static 修饰
 
而在语句块中定义的变量,它有一个作用域,从定义处开始,到语句块结束。超出了作用域引用这些变量,编译器会报错。
 
 
 
var关键字
java10引入了局部变量折断 var用于声明局部变量
有些时候,类型的名字太长,写起来比较麻烦。例如:
这个时候,如果想省略变量类型,可以使用var关键字:
编译器会根据赋值语句自动推断出变量sb的类型是StringBuilder。对编译器来说,语句:
实际上会自动变成:
因此,使用var定义变量,仅仅是少写了变量类型而已。
 
在处理 var时,编译器先是查看表达式右边部分,也就是所谓的构造器,并将它作为变量的类型,然后将该类型写入字节码当中,只能用于带有构造器的局部变量。
除了局部变量,for循环是唯一可以使用 var的地方:
 
 
 

常量

定义变量的时候,如果加上final修饰符,这个变量就变成了常量:
常量在定义时进行初始化后就不可再次赋值,再次赋值会导致编译错误
根据习惯,常量名通常全部大写。
 
  • Java
  • 标识符与关键字数据类型
    目录