java每日一题:static与final的区别

static和final在Java中都是用于修饰类、方法、变量等的修饰符,但它们各自有不同的作用和含义。以下是关于static与final修饰后的主要区别:

一、static修饰符

含义:

static是静态修饰符,表示所修饰的成员(变量、方法、代码块)属于类级别,而非实例级别。

作用:

静态变量:static修饰的变量是静态变量,也称为类变量。无论创建多少个类的实例,静态变量都只有一份拷贝,它们存储在JVM的方法区中,随着类的加载而加载,随着类的消失而消失。
静态方法:static修饰的方法是静态方法,可以通过类名直接调用,无需创建类的实例。静态方法只能访问静态成员(静态变量和静态方法),不能访问非静态成员(实例变量和实例方法)。
静态代码块:static修饰的代码块是静态代码块,它在类加载时执行一次,常用于初始化静态变量或执行一些只需要执行一次的代码。

访问方式:

静态成员可以通过类名直接访问,也可以通过对象访问,但推荐使用类名访问,以体现其类级别的特性。

二、final修饰符

含义:

final表示不可改变的最终形态,用于修饰类、方法、变量等。

作用:

final修饰类:表示该类不能被继承,即不能有子类。
final修饰方法:表示该方法不能被重写,子类继承该方法时只能使用,不能覆盖(重写)。
final修饰变量:表示该变量的值不可改变。对于基本数据类型,final修饰的变量就是常量,只能赋值一次;对于引用类型,final修饰的变量所引用的对象不能改变,但对象的内容可以改变。

使用注意事项:

final修饰的局部变量必须在使用之前赋值一次才可以使用。
final修饰的成员变量在声明时没有赋值的叫做“空白final变量”,必须在构造方法或静态代码块中初始化。

归纳:

static修饰的成员属于类级别,随着类的加载而加载,可以通过类名直接访问,主要用于实现共享数据和工具方法等。
final修饰的成员表示不可改变,用于确保类、方法、变量的最终性,避免被继承、重写或修改。

static和final在Java中各自扮演着不同的角色,可以根据具体需求选择使用。同时,它们也可以组合使用,如static final修饰的变量表示一旦给值就不可修改,且可以通过类名直接访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac数据如何恢复?3 款最佳 Mac 恢复软件

如果您认为 Mac 上已删除的文件永远丢失了,那您就大错特错了!实际上,即使您清空了 Mac 上的垃圾箱,也有许多解决方案可以帮助您恢复已删除的文件。最好的解决方案之一是 Mac 恢复删除软件。最好的Mac 恢复删除应用程序可以轻松准确…

反射机制详解

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Java从入门到精通 ✨特色专栏&#xff…

第0讲:创建一个Vite工程

打开cmd窗口。 npm create vitelatest然后输入项目名,这里起名为gamelets(很多小游戏的意思) 接下来选择框架为: Vanilla (表示不使用框架,原生JS) 选择语言为:TypeScript 最后提…

SM9加密算法:安全、高效的国产密码技术

随着信息技术的飞速发展,网络安全问题日益凸显。加密算法作为保障信息安全的核心技术,受到了广泛关注。在我国,一种名为SM9的加密算法逐渐崭露头角,凭借其卓越的安全性能和高效计算能力,成为了新一代国产密码技术的代表…

常用的Java日志框架:Log4j、SLF4J和Logback

日志是软件开发中不可或缺的一部分,它有助于记录应用程序的运行状态、调试问题和监控系统。Java中有多个流行的日志框架,如Log4j、SLF4J和Logback。 一、Log4j 1.1 什么是Log4j? Log4j是Apache基金会开发的一个开源日志框架,它…

Milvus跨集群数据迁移

将 Milvus 数据从 A 集群(K8S集群)迁到 B 集群(K8S集群),解决方案很多,这里提供一个使用官方 milvus-backup 工具进行数据迁移的方案。 注意:此方案为非实时同步方案,但借助 MinIO 客…

C++基础std::bind

目录 说明 举例子: 说明 std::bind是一个函数模板,用于创建一个可调用对象,该对象可以在稍后的时候被调用。bind的作用是将函数与参数绑定在一起,在调用时可以自动传入预定的参数值。 std::bind的基本语法如下: templ…

Ubuntu16-18网卡配置

Ubuntu16配置一网卡多ip地址 vi /etc/network/interfaces auto eno1iface eno1 inet staticaddress 100.100.100.100netmask 255.255.255.0gateway 100.100.100.254dns-nameservers 8.8.8.8auto eno1:0 iface eno1:0 inet staticaddress 103.193.172.186netmask 255.255.255.0…

1. zabbix监控服务器部署

zabbix监控服务器部署 一、监控的作用1、监控的方式2、zabbix监控获取数据的方式 二、zabbix server部署1、确保时间同步2、添加epel源3、添加zabbix仓库4、安装zabbix服务端软件5、在数据库创建zabbix需要的表、授权用户6、编辑zabbix server配置文件,指定数据库连…

Clickhouse DBA常用的sql语句

clickhouse系统表官方文档https://clickhouse.com/docs/en/operations/system-tables Clickhouse的语法有点像Mysql Clickhouse没有delete和update语句,使用alter来替代 https://clickhouse.com/docs/zh/sql-reference/statements/alter/delete ALTER TABLE [db.]…

在WordPress中使用AI的实用方法:入门级

随着人工智能(AI)的快速发展,WordPress平台上引入了越来越多的工具和插件,为网站管理员提供了强大的功能。这些工具不仅可以提升网站的用户体验,还能简化网站管理过程。本文将介绍几种在WordPress中使用AI的实用方法&a…

emacs verilog-mode RTL集成

最近用了一下emacs,用于集成一下自己的子系统。只能说真香。记录一下使用规则和收藏几个比较好的网站。 主要参考这个网站即可。 emacs-verilog mode中文网站: https://www.wenhui.space/docs/02-emacs/verilog_mode_useguide/ 技巧 1.常用模板 下面模板基本上Verilog …

广州化工厂可燃气体报警器检定检验:安全生产新举措显成效

随着科技的不断发展,可燃气体报警器的检定检验技术也在不断进步。 广州的一些化工厂开始采用先进的智能检测系统和数据分析技术,对报警器的性能进行更加精准和全面的评估。 这些新技术不仅能够提高检定检验的效率和准确性,还能够为化工厂的…

boost io 上一篇ppppppppppp

111111111111111111111111111111111111111111111111 RPC 既不是协议,也不是框架。只是一个概念,一种通信方式,底层有很多实现方式。 222222222222222222222222222222222222222222222222222222222 class async_listener { public: typedef b…

大数据的力量:推动战略决策和业务转型

在当前全球化的时代背景下,国际间的联系日益紧密,世界变得更加互联互通。面对各种危机,数据驱动决策和分析显得愈发重要。从医学研究到市场趋势分析,大数据技术在各个领域发挥着关键作用,推动着一场深刻的变革浪潮。 大…

打开IE自动跳转EDGE的解决方法

目录 1. 创建快捷方式的解决方案 2. 其他可以尝试但未必靠谱的方法 2.1 通过设置EDGE浏览器实现 2.2 设置internet属性 2.3 BHO拓展管理 找到Windows10中的IE浏览器的方法: WIN Q,打开搜索栏;键入IE,即可看到IE浏览器 1. …

Java Stream流应用

Stream流的核心方法 Stream流的方法主要包含如图的几种 提供部分应用场景做个思考: (1)从员工集合中筛选出salary大于8000的员工,并放置到新的集合里。 (2)统计员工的最高薪资、平均薪资、薪资之和。 (3)将员工按薪资从高到低排序,同样薪资…

深度理解微信小程序技术架构:从前端到后台

在当今移动互联网的时代,微信小程序作为一种轻量级、便捷的应用形式,已经成为许多用户和开发者的首选。本文将深入探讨微信小程序的技术架构,从前端视角到后台支撑,为读者全面解析这一新兴应用形式的奥秘。 #### 一、微信小程序的…

opencv中凸包运算函数convexHull()的使用

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 1.功能描述 该函数cv::convexHull用于寻找一组二维点集的凸包,采用的是Sklansky算法[242],当前实现中具有O(N logN)的时间复杂度。 1…

2024: 有效使用OKR的10个技巧

2023年是许多前所未有的一年。从真正意义上讲,这一年让我们为不可预测的事情做好了准备,也为不确定的事情提供了训练。在我们身边发生了这么多事情,而下一步的行动却依然不甚明朗的情况下,领导者们更应该开始制定战略,…