java常量能改变值吗_java中的常量和变量

变量

含义:在程序过程中变量的值会发生变化,直白来说就是用来存储可变化的数据

变量的好处:使内存空间的得到重复利用

举个例子:

1 System.out.println(10);2 System.out.println(10);3 System.out.println(10);

这三个10都是字面量,每一个字面量占用的都是不同的内存空间,就算这几个字面量相同,占用的也是不同的空间,字面量的内存是无法重复利用的,这样就浪费了空间,但是使用变量之后,内存空间就得到了重复利用。

变量的三要素:

1. 变量的数据类型(数据类型决定了内存空间的大小)

2. 变量的名字(方便程序访问这个数据)

3. 变量保存的值(保存的数据)

注解:变量必须先声明,再赋值才能访问(没有赋值不能访问, 不然会报错),直白来说变量就是一个存储数据的一个盒子

注意:在同一个域中,变量名不能重名

1 int a = 10;2 double a = 10.01

3 //重名了 不能编译成功

变量的分类

变量分为局部变量、成员变量。成员变量又分为实例变量(属性)和静态变量

在方法体内声明的变量为:局部变量(在方法结束后,局部变量的内存空间就释放了)

在类中,方法外声明的变量为成员变量,对于实例变量来说,声明了没有手动赋值,调用的时候系统默认赋值

类型默认值

byte、short、int

0

long

0L

float

0.0F

double

0.0

boolean

false

char

' '

引用数据类型

null

注解:实例变量不能通过"类名."来访问

实例变量前加上修饰列表符static就成为了静态变量,static是不允许用来修饰局部变量的。

原因:被static关键字修饰变量随着类的加载而加载,被static修饰的变量成为了类变量 ,可以用类直接调用, 即作用域为全局,而局部变量在方法内,它的作用域在方法内,作用域变了,所以不允许用来修饰局部变量。

静态变量: 在类加载时初始化,分配空间

局部变量:在方法执行过程中分配空间

实例变量:构造方法执行、对象创建时分配空间

常量

定义:常量就是在程序中固定不变的值,是不能改变的数据

注解:Java中的常量,其实就是特殊的变量,也是固定不变的量,有且只能进行一次赋值。Java中定义常量的语法只需要在"定义变量的语法基础"上加上一个final关键字修饰即可

常量有三种类型:静态常量、成员常量、局部常量、字面值常量

字面值常量:

整数型常量

1 System.out.println(222);2 System.out.println(-111);

浮点型常量

1 System.out.println(3.14);2 System.out.println(3.1f);

字符常量

System.out.println('a');

System.out.println('f');

字符串型常量

1 System.out.println("zhangsan");2 System.out.println("123456");

布尔类型常量

1 System.out.println(false);2 System.out.println(true);

空常量(null)

定义常量时需注意:

在定义常量时就需要对该常量进行初始化,常量的值是不可改变的量、一次赋值,永不改变,也可以不用在声明时就初始化,但是初始化后必须在使用这个常量之前初始化。

final修饰的实例变量必须手动初始化,不能采用系统默认值

为了与变量区别,常量取名一般都用大写字符

静态常量:被static和final修饰的成员变量

注解:在定义静态常量时,就必须初始化,不然会报错

例如下面的代码:

1 public classTest {2 final static int i = 100;3 public static voidmain(String[] args) {4 System.out.println(i);5 }6 }

成员常量:被final修饰的成员变量

注解:当常量是成员常量时,在定义的时候必须初始化,不然编译会报错

例如下面的代码:

1 public classTest {2 final int i = 100;3 public static voidmain(String[] args) {4 Test test = newTest();5 System.out.println(test.i);6 }7 }

局部常量:被final修饰的局部变量

例如下面的代码:

1 public classTest {2 public static voidmain(String[] args) {3 final int i = 100;4 System.out.println(i);5 }6 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值