Java-关键字(static,final)

1.1 static关键字

  • static关键字 :

    • 静态的意思 , 可以修饰变量 , 也可以修饰方法 , 被static修饰的成员 , 我们叫做静态成员

  • static特点 :

    • 静态成员被所类的所有对象共享

    • 随着类的加载而加载 , 优先于对象存在

    • 可以通过对象调用 , 也可以通过类名调用 , 建议使用类名

1. 静态变量(Static Variables):

静态变量也称为类变量,它们属于类而不是类的特定实例。所有该类的实例共享相同的静态变量的值。静态变量在内存中只有一个副本,无论类实例化多少次,它们都指向相同的内存空间。

class Example {static int count = 0; // 静态变量Example() {count++; // 每创建一个实例,count 加一}
}

2. 静态方法(Static Methods):

静态方法属于类,不依赖于类的实例而直接通过类名调用。静态方法不能直接访问类的非静态成员,因为它们在类加载时就已经存在,而非静态成员需要在对象实例化后才能访问。

class Example {static void staticMethod() {System.out.println("This is a static method.");}
}

3. 静态代码块(Static Initialization Block):

静态代码块用于初始化类的静态变量,只在类加载时执行一次,比如静态变量的初始化或者静态方法的调用。

class Example {static {// 静态代码块System.out.println("Static block initialized.");}
}

4. 静态内部类(Static Inner Class):

静态内部类是声明为静态的内部类,不依赖于外部类的实例而可以直接通过类名访问。静态内部类不能访问外部类的非静态成员,只能访问静态成员。

class Outer {static class Inner {void display() {System.out.println("Static inner class.");}}
}

2-final关键字

  • final关键字 : 翻译中文代表最终的意思 , 是java的一个关键字 也是一个修饰符 , 可以修饰类 , 可以修饰方法 , 也可以修饰变量

  • final关键字修饰的特点

    • final修饰的类 : 不能被继承 , 没有子类(太监类)

    • fina修饰的方法 : 不能被重写

    • final修饰的变量

      • 基本数据类型 : 值不能改变

      • 引用数据类型 : 地址不可发生改变 , 对象的属性可改变

      • 注意 :

        • 被final修饰的变量 , 我们叫做自定义常量 , 命名规范 : 每个字母需要大写 , 多个单词之间用下划线分割

        • final修饰成员变量需要注意初始化时机的问题 , 1) 直接赋值 , 2) 在构造方法执行完毕前赋值

1. final 变量:

当应用于变量时,final 表示该变量只能被赋值一次。一旦赋值后,其值就不能再改变。final 变量必须在声明时或者在构造方法中进行初始化。

class Example {final int constantValue = 10; // 声明时初始化final double PI;Example() {PI = 3.14; // 在构造方法中初始化}void method() {final int localVar = 5; // 局部变量也可以声明为final// localVar = 10; // 编译错误,final变量无法重新赋值}
}

2. final 方法:

当应用于方法时,final 表示方法不能被子类重写(override)。这种约束有助于确保方法的行为在继承层次结构中保持一致性和完整性。

class Parent {final void finalMethod() {// 这个方法不能被子类重写}
}class Child extends Parent {// 编译错误,无法重写final方法// void finalMethod() { }
}

3. final 类:

当应用于类时,final 表示该类不能被继承。这种设计主要用于确保类的完整性和安全性,防止子类对其进行修改或扩展。

final class FinalClass {// 这个类不能被继承
}// 编译错误,无法从final类派生子类
// class ChildClass extends FinalClass { }

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

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

相关文章

Keepalived+HAProxy 集群及虚IP切换实践

1、软件介绍 ①Keepalived keepalive是一个用c语言编写的路由软件,这个项目的主要目标是为Linux系统和基于Linux的基础设施提供简单而健壮的负载平衡和高可用性设施。负载均衡框架依赖于众所周知且广泛使用的Linux Virtual Server (IPVS)内核模块提供第4层负载均衡…

srs直播内网拉流带宽飙升问题记录

问题背景 srs部署在云服务器上,32核cpu,64G内存,带宽300M. 客户端从srs拉流,发现外网客户端拉流,cpu和带宽都正常。然而内网客户端拉流,拉流人数超过5人以上,带宽就会迅速飙升。 排查 用srs…

数学建模论文写作文档word

目录 1. 摘要写法1.1 确定题目与方法1.2 编写开头段落1.3 填写问题一1.4 重复步骤3填写其他问题1.5 编写结尾段落1.6 编写关键词 2. 问题重述2.1 问题背景2.2 问题提出 3. 问题分析4. 问题X模型的建立与求解5. 模型的分析5.1 灵敏度分析5.2 误差分析(主要用于预测类…

Milvus lite start 及存储策略

背景 今天开始写下Milvus,为了方便,我直接使用的是 milvus-lite 版本,default 情况下,你可能不知道他到底将 db 存储到什么位置了。启动 default-server,看下Milvus 的start及存储逻辑 主逻辑 def start(self):sel…

adb参数详解

文章目录 1. -d2. -e3. -s4. -t5. -H6. -P7. -L8. --one-device9. --exit-on-write-error10. connect / disconnect11. pair12. forward13. forward --list14. reverse15. mdns check16. mdns services17. push18. pull19. sync20.shell21. install22. uninstall23. bugreport2…

最小二乘支持向量机(Least Squares Support Vector Machine,LSSVM)及其Python和MATLAB实现

LSSVM(Least Squares Support Vector Machine)又称最小二乘支持向量机,是支持向量机(SVM)的一种变体,它通过将SVM的优化问题转化为带约束的二次规划问题,利用最小二乘法进行优化求解&#xff0c…

redis集群部署 (通过redis工具快速部署,手动部署)

目录 一、快速部署集群 1、 进入集群目录,创建集群 2、 查看正常启动 二、部署集群 1、分配集群节点 2、验证集群可用性 3、停止redis进程 三、手动部署集群 1、配置redis.conf配置文件 2、启动redis集群 3、手动创建redis集群 4、验证 四、集群…

mysql异常数据损坏处理,报错:Operating system error number 2 in a file operation

一、问题描述 某次一线反应,某主库表全部丢失,查看为空,登陆主机查看mysqld.log后报错:Operating system error number 2 in a file operation数据目录OS重装后修改过,但只是指向方式不同,目录还是同一目录…

【绿色版】Mysql下载、安装、配置与使用(保姆级教程)

大家都知道,Mysql安装版的卸载过程非常繁琐,而且卸载不干净会出现许多问题,很容易让大家陷入重装系统的窘境。基于此,博主今天给大家分享绿色版Mysql的安装、配置与使用。 目录 一、Mysql安装、配置与使用 1、下载解压 2、创建…

vue对axios进行请求响应封装

一、原因 像是在一些业务逻辑上,比如需要在请求之前展示loading效果,或者在登录的时候判断身份信息(token)等信息有没有过期,再者根据服务器响应回来的code码进行相应的提示信息。等等在请求之前,之后做的一…

ABAP注释快捷键修改(留着备用)

ABAP注释快捷键修改(留着备用) 在使用ABAP编辑器的时候,原有的添加代码注释和取消代码注释的快捷键未生效,这时我们可以考虑对注释快捷键进行修改 在事务码SE38(ABAP编辑器)屏幕右下角,点击【Options选项】图标 在【键盘】|【命令】输入栏中…

DWM 相关实现代码 [自用]

1. DWM 缩略图和模糊隐藏实现半透明 #include <windows.h> #include <dwmapi.h> #include <string> #pragma comment(lib, "dwmapi.lib")// 检查 UWP 窗口是否可见 bool IsUWPWindowVisible(HWND hwnd) {DWORD cloaked 0;DwmGetWindowAttribute(…

【c语言】玩转文件操作

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C语言 目录 引言 一、文件的打开和关闭 1.流 2.标准流 3.文本文件和二进制文件 4.控制文件打开与关闭的函数 二、文件的顺序读写 三、文件的随机读写 1…

深入理解OAuth 2.0:原理、流程与实践

一、什么是OAuth 2.0 1. 什么是OAuth 2.0 OAuth 2.0 是一套关于授权的行业标准协议。 OAuth 2.0 允许用户授权第三方应用访问他们在另一个服务提供方上的数据&#xff0c;而无需分享他们的凭据&#xff08;如用户名、密码&#xff09;。 2. OAuth 2.0 应用场景 OAuth 2.0的…

非参数检测6——优缺点

优点&#xff1a; 参量检测的特点在于以似然比处理器为基础&#xff0c;并建立在假定干扰或噪声的统计特性已知的基础上。但实际上&#xff0c;干扰环境往往十分复杂&#xff0c;包括自然和人为因素&#xff0c;且常常随时改变。这使我们很难确定噪声的统计特性。因此人们提出…

服务器U盘安装Centos 7时提示Warning:/dev/root does not exist

这是没有找到正确的镜像路径导致的&#xff0c;我们可以在命令行输入ls /dev看一下有哪些盘符 像图中红色圈起来的就是我插入U盘的盘符&#xff0c;大家的输几盘可能做了多个逻辑盘&#xff0c;这种情况下就可以先将U盘拔掉再ls /dev看一下和刚才相比少了那两个盘符&#xff0c…

在Spring Boot中实现多线程任务调度

在Spring Boot中实现多线程任务调度 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. Spring Boot中的任务调度 Spring Boot通过集成Spring框架的Task Execution和Scheduling支持&#xff0c;提供…

Double 4 VR仿真情景实训教学系统在法律专业课堂上的应用

随着科技的飞速发展&#xff0c;VR技术逐渐渗透到各个领域&#xff0c;为教育行业带来了革命性的变化。 VR技术以其独特的沉浸式体验&#xff0c;为法律课堂带来了前所未有的学习体验。通过Double 4 VR仿真情景实训教学系统&#xff0c;学生可以身临其境地进入虚拟的仿真情景中…

vue前端面试

一 .v-if和v-show的区别 v-if 和 v-show 是 Vue.js 中两个常用的条件渲染指令&#xff0c;它们都可以根据条件决定是否渲染某个元素。但是它们之间存在一些区别。 语法&#xff1a;v-if 和 v-show 的语法相同&#xff0c;都接收一个布尔值作为参数。 <div v-if"show…

权力之望怎么下载客户端 权力之望一键下载

《权力之望》是一款由NX3 Games开发、Smilegate发行的多人在线动作MMORPG游戏。这款游戏最大的特点是高度的自由度和丰富的角色定制选项。我们在游戏中不仅可以自由更换武器&#xff0c;而且游戏还提供了54种能力和60多种职业选择&#xff0c;让我们可以根据自己的游戏风格和喜…