Java final、常量池、宏变量

final

final修饰变量(成员变量或局部变量):

全局变量。必须初始化,且一旦赋值不能更改。

局部变量。可以只声明不赋值,但是使用之前必须赋值,且一旦赋值不能更改。

final修饰方法:

方法不能被重写。

final修饰类:

该类不能被继承。

final修饰基本数据类型和引用的区别:

引用数据类型还是可以改变的!final修饰基本数据类型时,不能重新赋值,因此基本类型不能被改变。但是引用类型而言,它仅仅是一个引用,final只能保证这个引用变量所引用的地址不会改变,即一直指向这个对象,但是这个对象的内容完全可以改变。

public class Test {
    static final Dog dog=new Dog("大黄");
    public static void main(String[] args) {
        System.out.println(a);
        System.out.println(b);
        dog.bark();
        dog.name="小黑";
        dog.bark();
    }
}

大黄在汪汪汪~ 小黑在汪汪汪~

常量池

尤其注意:

String s1="Hello";

String s7="H";

String s8="ello";

String s9=s7+s8;

System.out.println(s1==s9);

false

宏变量

对于一个final变量来说,不管它是类变量、实例变量,还是局部变量。只要该变量满足三个条件,这个final变量就不再是一个变量,而是相当于一个直接量。

1.使用final修饰符

2.在定义该final变量时指定了初始值

3.该初始值可以在编译时被确定下来

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大晴的上分之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值