static 和 final 和实例变量的用法 final、finally、finalize 的区别

static 和 final 的用法

static:修饰属性,方法,代码块

(1)静态属性:也可叫类变量 类名.属性名 来访问
(共有的类变量与对象无关,只和类有关)
注意:类中的实例变量是在创建对象时被初始化的,被 static 修饰的属性,也就是类变
量,是在类加载时被创建并进行初始化,类加载的过程是进行一次。也就是类变量只会被创
建一次

(2)静态方法:类名.方法名 直接访问
注意:static 修饰的方法,不能直接访问本类中的非静态(static)成员(包括方法和属性)
本类的非静态方法可以访问本类的静态成员(包括方法和属性),可以调用静态方法

修饰变量,方法,类

final:修饰变量,类,方法

(1)修饰变量
被 fianl 修饰的成员变量就是常量(常量名大写),一旦赋值不能改变
修饰局部变量:修饰基本数据类型 -> 变量的值不能改变
修饰引用 -> 引用只能指向固定的对象
修饰实例变量:默认值不生效,可以再赋值
(2)修饰方法 :不能被子类覆盖
(3)修饰类:不能被继承
在一个 final 类中的所有方法,默认都是 final 的
注意:final,不能用来修饰构造方法

静态变量和实例变量的区别

静态变量也叫类变量,这种变量前加了 static 修饰符。可以直接用类名调用,也可以用对
象调用,而且所有对象的同一个类变量 都是共享同一块内存空间。
实例变量也叫对象变量,这种变量没有加 static 修饰符。只能通过对象调用,
而且所有对象的同一个实例变量是共享不同的内存空间的。
区别在于:
静态变量是所有对象共有的,某一个对象将它的值改变了,其他对象再去获取
它的值,得到的是改变后的值;
实例变量则是每一个对象私有的,某一个对象将它的值改变了,不影响其他对
象取值的结果,其他对象仍会得到实例变量一开始就被赋予的值。

final、finally、finalize 的区别

  • final:修饰符(关键字)有三种用法:如果一个类被声明为 final,意味着它不能再派生出
    新的子类,即不能被继承,因此它和 abstract 是反义词。将变量声明为 final,可以保证它们
    在使用中不被改变,被声明为 final 的变量必须在声明时给定初值,而在以后的引用中只能
    读取不可修改。被声明为 final 的方法也同样只能使用,不能在子类中被重写。
  • finally:通常放在 try…catch…的后面构造总是执行代码块,这就意味着程序无论正常执行
    还是发生异常,这里的代码只要 JVM 不关闭都能执行,可以将释放外部资源的代码写在
    finally 块中。
  • finalize:Object 类中定义的方法,Java 中允许使用 finalize()方法在垃圾收集器将对象从内存
    中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在销毁对象时调用的,通过重
    写 finalize()方法可以整理系统资源或者执行其他清理工作。

Static 关键字有哪些作用

Static 有两种作用:
第一, 为某特定数据类型或对象分配单一的存储空间,而与创建对象
的个数无关。

第二, 实现某个方法或属性与类而不是对象关联在一起。
Static 主要是有 4 种使用情况:
Static 修饰成员变量
用 static 修饰的变量称之为静态变量或者也叫类变量/
全局变量。静态变量 是随着类的加载而加载到方法区中的静态区,并且在静态区中赋予了
初始值。静态变量是在对 象之前产生,所以可以不通过对象来调用,而是通过类来调用,
所以可以通过类名.静态变量的 方式调用静态变量。由于每个对象在堆内存中存储的是静态
变量在静态区中的地址,所以所有 的对象本质上共用一个静态变量。
Static 修饰成员方法:
用 static 修饰的方法就称之为静态方法,也叫类方法。静态方法在类加载 的时候加载到了
方法区中的静态区,在调用的时候到栈内存中执行。—静态方法是先于对象而 存在的。静
态方法可以通过类名.方法名的方式来调用执行。
静态代码块:
静态代码块在类中是独立于成员变量和成员方法的代码块。它不在任何一个方法 体内,jvm 在加载类时会执行静态代码块,静态代码块是先于构造代码块执行。静态代码块在 类加载的时候执行,只执行一次。
静态内部类:
静态内部类是指被声明为静态内部类,它可以不依赖与外部类实例对象而被实
例 化,而通常的内部类需要在外部类实例化后才能实例化。静态内部类不能与外部类有相
同的名 字,不能访问外部类的普通成员变量,只能访问外部类中的静态成员和静态方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值