java中关于final关键字的深入理解---内存分析

本文详细介绍了Java中的final关键字,包括它可以修饰的基本数据类型、引用数据类型、方法和类。final修饰的变量一旦赋值不可更改,修饰的方法不可重写,修饰的类不可被继承。文中还探讨了final方法的效率优化,并通过代码示例展示了final在实际编程中的应用。此外,解释了在某些情况下使用final的必要性,如确保方法不被重写,或者防止意外修改对象引用。
摘要由CSDN通过智能技术生成

java中final关键字可以修饰:
1,基本数据类型
2,引用数据类型
3,方法
4,类

一个一个分析—
①基本数据类型—
一旦定义就不能修改
在这里插入图片描述

②引用数据类型–
一旦定义也不能修改–这里是指地址
在这里插入图片描述

当属性被final修饰时,必须被初始化,否则报错

③ 方法,被final修饰的方法不能被重写但可以重载
在这里插入图片描述

在这里插入图片描述

④类,类被声明为final则该类无法被继承,所以抽象类不能被final 修饰

,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。

在这里插入图片描述

package finallyvar;

/**
 * @Auther: GavinLim
 * @Date: 2021/7/2 - 07 - 02 - 14:15
 * @Description: finallyvar
 * @version: 1.0
 */
class Dog {
String name;
}

public class ceshi {
    public static void main(String[] args) {
        final Dog D = new Dog();
        D.name="旺财";

        Dog dog = new Dog();
       // ceshi.shout(D);
        ceshi.shou(dog);
        System.out.println(D);

    }

    public static void shout(Dog d0) {//
       d0 = new Dog();

        System.out.println(d0);

    }

    public static void shou(final Dog d2) {
        System.out.println("wawatwa");
        System.out.println(d2);
    }
}

内存分析
在这里插入图片描述

下面这段话摘自《Java编程思想》第四版第143页:
  “使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。“

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CodeMartain

祝:生活蒸蒸日上!

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

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

打赏作者

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

抵扣说明:

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

余额充值