final关键字的知识点

1.final是java语言中的一个关键字,关键字都是小写的。
2.final表示最终的,不可变的。
3.final可以修饰变量以及方法,还有类等。
4.final修饰的局部变量?

final修饰的变量,只能赋值一次。(万变不离其宗)
局部变量是没有初始值的,必须手动赋值。

> int a = 0;
> a = 1;
> /*final修饰的变量,只能赋值一次
> final int a = 0;
> a = 1;(×)
> */
5.final修饰实例变量?

实例变量如果没有手动赋值,系统会默认赋值。

但是final修饰实例变量,必须手动赋初值。

在创建对象时,调用构造方法,实现实例变量的初始化。

构造方法执行的过程中赋值,也可在构造方法里提前赋值。(new的时候赋值)

int a;//实例变量默认赋值,a = 0;
final int a = 0//final修饰的实例变量必须手动赋值
public class FinalTest01 {
    public static void main(String[] args) {
        Final f = new Final();
        System.out.println(f.a);
    }
}
class Final{
    public Final() {
        a = 47; //在构造方法中手动赋值也行
    }
      final int a;
}
6.final修饰的方法?

final修饰的方法,子类无法对父类的方法进行重写(override)

7.final修饰的类?

final修饰的类无法继承(inherit)(没有子孙,例如String类)

8.final控制不了能不能调用的问题,final管的是什么?

final修饰的表示最后的,不能变的,不能改的。
fina修饰的方法还是可以被调用,只是不能被重写。

9.final修饰的变量,如果这个变量是一个“引用”会怎样????

引用也是一个变量(引用数据类型),它是不过是个特殊的名字,引用里面存放的是一个地址。
这个地址指向堆内存中对象的地址,里面的地址不能改变。但是对象里面的数据可以被修改(实例变量)
该引用只能指向 1 个对象,并且它只能永远指向该对象,无法指向其他对象。
在这里插入图片描述

10.常量

static final 联合修饰的变量称为“常量 ”,建议常量全大写,用下划线连接单词。

解释:实例变量存储在堆内存中,一个对象一份,100个对象100份。既然都一样,这样就显得很浪费空间。说明final修饰的实例变量的值,不会随着对象的变化而变化,所以就没必要浪费空间,加上static关键字,变为静态的,存储在方法区里面。

实际上常量和静态变量一样,区别在于:
常量的值不能变。
常量(final static)和静态变量(static),都是存储在方法区,并且都是类加载时初始化。
在这里插入图片描述
java中static、final、static final的区别(转)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值