static和 final的区别(快速了解)

导读:本篇文章讲解 static和 final的区别(快速了解),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

-> static

用于修饰变量:随着类加载时完成初始化,内存中只会存在一个(JVM只会为其分配一次内存,所有类都将共享该静态变量)。

用于修饰方法:在类加载时就存在,static修饰的方法,直接用类名调用,不依赖任何实例(static的方法不能用abstract修饰,但是可以用final修饰[1])。

用于修饰代码块:在类加载完就会马上执行代码块中的内容(使用场景之一某些工厂模式下用到)。

-> final

用于修饰变量:
编译时常量:类加载时完成初始化,编译后代入到任何计算式中(只能基本类型)。
运行时常量:基本数据类型或引用数据类型(引用不可变,引用对象内容可变)。
用于修饰方法:不能被继承。
用于修饰类:不能被继承。
用于修饰形参:final形参不可变

-> 补充:使用final的好处
  1. final 关键字提高了性能。JVM 和 Java 应用都会缓存 final 变量。
  2. final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
  3. 使用final 关键字,JVM 会对方法、变量及类进行优化。

注:
【1】
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117895.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!