当前位置: 首页 > news >正文

Java SE入门及基础(33)

final 修饰符

1. 应用范围

        final 修饰符应该使用在类、变量以及方法上

2. final 修饰类

Note that you can also declare an entire class final. A class that is declared final cannot be subclassed. This is particularly useful, for example, when creating an immutable class like the String class.
注意,你也可以声明整个类的 final 。 声明为 final 的类不能被子类化。 例如,当创建不可变类(如String类)时,这特别有用。
        如果一个类被final 修饰,表示这个类是最终的类,因此这个类不能够在被继承,因为继承就是对类进行扩展。
示例
package com . we . inheritance . _final ;
//final 修饰的类不能够被继承
public final class FinalClass {
        public void show (){
                System . out . println ( " 这是最终类里面的方法 " );
        }
}
package com .we . inheritance . _final ;
// 这里会报编译错误,因此 FinalClass 不能够被继承
public class ChildClass extends FinalClass { }

3. final 修饰方法

You can declare some or all of a class's methods final. You use the final keyword in a method declaration to indicate that the method cannot be overridden by subclasses. The Object class does this—a number of its methods are final.
你可以将类的某些或所有方法声明为 final 。 在方法声明中使用 final 关键字表示该方法不能被子类覆盖。 Object 类就是这样做的 - 它的许多方法都是最终的。
示例
package com . we . inheritance . _final ;
public class FinalMethod {
        public final void show (){
                System . out . println ( " 这是一个最终方法,不能被重写 " );
        }
}
package com .we . inheritance . _final ;
public class ChildMethod extends FinalMethod {
        //这里也会报编译错误,因为父类中的 show() 方法时最终的,不可被重写
        public void show (){
        }
}

4. final 修饰变量

        final 修饰变量的时候,变量必须在对象构建时完成初始化。 final 修饰的变量称为常量。
示例
package com .we . inheritance . _final ;
public class FinalVariable {
        //final修饰的变量一定要在对象创建时完成赋值操作, final 修饰的变量称之为常量,不可被更改
        private final int number ;
        //static final修饰的变量就是静态常量
        public static final String COUNTRY = " 中国 " ;
        public FinalVariable (){
                this . number = 10 ;
        }
        public void change (){
        // this.number = 11; //因为 number 是一个常量,不能再被更改,因此会报编译错误
        }
}
思考如下代码的执行过程:
package com .we . inheritance . test ;
public class Father {
        static {
                System . out . println ( " 父类静态代码块执行 " );
        }
        public Father (){
                super ();
                System . out . println ( " 父类构造方法执行 " );
        }
}
package com .we . inheritance . test ;
public class Child extends Father {
        static {
                System . out . println ( " 子类静态代码块执行 " );
        }
        public Child (){
                super ();
                System . out . println ( " 子类构造方法执行 " );
        }
}
package com .we . inheritance . test ;
public class Test {
        public static void main ( String [] args ) {
                new Child ();
                //构建Child 对象时,发现 Child Father 的子类,而 Father 又是 Object 的子类。因此 JVM会首先加载 Object
                //然后再加载Father 类,最后再加载 Child 类。而静态代码块是在类第一次加载时执行,而且只会执行一次。因此
                //Father类中的静态代码块先执行,然后再执行Child 类中的静态代码块。然后才执行 newChild();代码。
                //父类静态代码块执行
                //子类静态代码块执行
                //父类构造方法执行
                //子类构造方法执行
        }
}

Java SE文章参考:Java SE入门及基础知识合集-CSDN博客

相关文章:

Java SE入门及基础(33)

final 修饰符 1. 应用范围 final 修饰符应该使用在类、变量以及方法上 2. final 修饰类 Note that you can also declare an entire class final. A class that is declared final cannot be subclassed. This is particularly useful, for example, when creating an imm…...

ChatGPT逐步进入留学圈但并不能解决留学规划的问题

2022 年底,一个能像人类一样对话的AI软件ChatGPT,在5天内突破一百万用户,风靡全球,如今用户已达1.8亿。 四个月后,ChatGPT进化为GPT4版本。该版本逻辑、数学推理能力卓越。拿留美标准化考试举例,GPT4能够在…...

WebGL之灯光使用解析

在使用灯光之前,首先我们需要了解,与定义更广泛的 OpenGL 不同,WebGL 并没有继承 OpenGL 中灯光的支持。所以你只能由自己完全得控制灯光。幸运得是,这也并不是很难,本文接下来就会介绍完成灯光的基础。 在 3D 空间中…...

【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…...

PostgreSQL索引篇 | TSearch2 全文搜索

PostgreSQL版本为8.4.1 (本文为《PostgreSQL数据库内核分析》一书的总结笔记,需要电子版的可私信我) 索引篇: PostgreSQL索引篇 | BTreePostgreSQL索引篇 | GiST索引PostgreSQL索引篇 | Hash索引PostgreSQL索引篇 | GIN索引 (倒排…...

SpringMVC 中的常用注解和用法

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 注解 1. MVC定义2. 注解2.1 RequestMappin…...

智慧城市中的数据力量:大数据与AI的应用

目录 一、引言 二、大数据与AI技术的融合 三、大数据与AI在智慧城市中的应用 1、智慧交通 2、智慧环保 3、智慧公共安全 4、智慧公共服务 四、大数据与AI在智慧城市中的价值 1、提高城市管理的效率和水平 2、优化城市资源的配置和利用 3、提升市民的生活质量和幸福感…...

德人合科技|天锐绿盾加密软件——数据防泄漏系统

德人合科技是一家专注于提供企业级信息安全解决方案的服务商,提供的天锐绿盾加密软件是一款专为企业设计的数据安全防护产品,主要用于解决企事业单位内部敏感数据的防泄密问题。 www.drhchina.com PC端: https://isite.baidu.com/site/wjz012…...

C语言---单身狗问题

1.单身狗初阶 这个题目就是数组里面有一串数字,都是成对存在的,只有一个数字只出现了一次,请你找出来 (1)异或是满足交换律的,两个相同的数字异或之后是0; (2)让0和每个…...

一次gitlab 502故障解决过程

通过top,发现prometheus进程占用CPU接近100%,这肯定有点异常。gitlab-ctl tail prometheus 发现有报错的情况,提示空间不足。暂时不管空间的问题。 2024-03-07_05:48:09.01515 ts2024-03-07T05:48:09.014Z callermain.go:1116 levelerror err"open…...

Xilinx 7系列 FPGA硬件知识系列(一)——FPGA选型参考

目录 1.1 Xilinx-7系列产品的工艺级别 ​编辑1.2 Xilinx-7系列产品的特点 1.2.1 Spartan-7系列 1.2.2 Artix-7系列 1.2.3 Kintex-7系列 1.2.4 Virtex-7系列 1.3 Xilinx-7系列FPGA对比 1.3.1 DSP资源柱状图 ​1.3.2 Block RAM资源柱状图 ​1.3.3 高速串行收…...

【C++从练气到飞升】02---初识类与对象

🎈个人主页:库库的里昂 ✨收录专栏:C从练气到飞升 🎉鸟欲高飞先振翅,人求上进先读书。 目录 ⛳️推荐 一、面向过程和面向对象初步认识 二、类的引用 1. C语言版 2. C版 三、类的定义 类的两种定义方式&#xff…...

探秘分布式神器RMI:原理、应用与前景分析(一)

本系列文章简介: 本系列文章将深入探究RMI远程调用的原理、应用及未来的发展趋势。首先,我们会详细介绍RMI的工作原理和基本流程,解析其在分布式系统中的核心技术。随后,我们将探讨RMI在各个领域的应用,包括分布式计算…...

JVM(Java虚拟机)概述

1. JVM的定义和作用 JVM(Java Virtual Machine)是一个能够运行Java字节码的虚拟计算机。它是Java平台的核心组成部分,负责执行编译后的Java程序,提供跨平台运行的能力。JVM使得Java程序可以在任何安装了JVM的操作系统上运行&#…...

C#,数值计算,用割线法(Secant Method)求方程根的算法与源代码

1 割线法 割线法用于求方程 f(x) 0 的根。它是从根的两个不同估计 x1 和 x2 开始的。这是一个迭代过程,包括对根的线性插值。如果两个中间值之间的差值小于收敛因子,则迭代停止。 亦称弦截法,又称线性插值法.一种迭代法.指用割线近似曲线求…...

HTML静态网页成品作业(HTML+CSS)——花主题介绍网页设计制作(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…...

Keepalive 解决nginx 的高可用问题

一 说明 keepalived利用 VRRP Script 技术,可以调用外部的辅助脚本进行资源监控,并根据监控的结果实现优先动态调整,从而实现其它应用的高可用性功能 参考配置文件: /usr/share/doc/keepalived/keepalived.conf.vrrp.localche…...

DPN网络

DPN DPN(Dual Path Networks)是一种网络结构,它结合了DensNet和ResNetXt两种思想的优点。这种结构的目的是通过不同的路径来利用神经网络的不同特性,从而提高模型的效率和性能。 DenseNet 的特点是其稠密连接路径,使…...

循序渐进丨MogDB 数据库新特性之SQL PATCH绑定执行计划

1 SQL PATCH 熟悉 Oracle 的DBA都知道,生产系统出现性能问题时,往往是SQL走错了执行计划,紧急情况下,无法及时修改应用代码,DBA可以采用多种方式针对于某类SQL进行执行计划绑定,比如SQL Profile、SPM、SQL …...

【论文阅读随笔】RoPE/旋转编码:ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING

文章目录 1.目的:通过绝对位置编码的方式实现相对位置编码2.理解RoPE,在我看来有几个需要注意的点:3.本文相关复数概念:3.1.复数乘法的几何意义3.2.复数内积 VS. 复数乘法 4.REF: 1.目的:通过绝对位置编码的…...

深入解析M.2 B Key接口在5G模块与(U)SIM卡电路设计中的关键应用

1. M.2 B Key接口与5G模块的完美结合 第一次接触M.2 B Key接口时,我完全被它的小巧和多功能性震惊了。这个看起来像迷你版SSD插槽的接口,竟然能承载5G模块这么复杂的通信功能。在实际项目中,我发现M.2 B Key接口特别适合嵌入式设备使用&#…...

大模型多租户配额管理(细粒度配额语义建模+RBAC+Quota Budgeting三位一体架构首次公开)

第一章:大模型工程化限流与配额管理 2026奇点智能技术大会(https://ml-summit.org) 在大规模语言模型服务化部署中,限流与配额管理是保障系统稳定性、公平性与成本可控性的核心机制。未加约束的并发请求易引发GPU显存溢出、推理延迟激增甚至服务雪崩&am…...

PCIe信号完整性避坑指南:Gen3物理层均衡训练与时钟补偿全流程

PCIe Gen3信号完整性实战:从均衡训练到时钟补偿的深度解析 当PCIe Gen3以8GT/s的速率在电路板上传输数据时,信号完整性问题从理论挑战变成了实际工程中的"拦路虎"。与Gen1/Gen2时代不同,Gen3的信号完整性管理不再是简单的参数调整&…...

别再只写Hello World了!用鸿蒙Next Beta2和DevEco Studio做个能存数据的通讯录

鸿蒙Next实战:从零构建具备数据持久化的智能通讯录应用 如果你已经厌倦了反复编写"Hello World"和各种静态界面演示,渴望在鸿蒙应用开发中实现真正的功能突破,那么构建一个完整的通讯录应用将是绝佳的进阶选择。本文将带你从零开始…...

华三SR-MPLS TE静态配置避坑指南:从OSPF 10类LSA抓包到隧道接口配置的完整排错流程

华三SR-MPLS TE静态配置实战排错手册:从LSA解析到隧道建立的深度诊断 当你在HCL模拟器中完成华三设备SR-MPLS TE的基础配置后,发现隧道状态始终显示为Down,或者流量没有按照预定路径转发——这种场景下,传统的配置检查清单往往难以…...

3大创新技术:重构Android设备标识获取的新范式

3大创新技术:重构Android设备标识获取的新范式 【免费下载链接】Android_CN_OAID 安卓设备唯一标识解决方案,可替代移动安全联盟(MSA)统一 SDK 闭源方案。包括国内手机厂商的开放匿名标识(OAID)、海外手机平…...

React/Vue项目部署后,刷新页面就404?一个Nginx配置帮你搞定

React/Vue项目部署后刷新页面404?Nginx配置终极解决方案 刚部署完React/Vue项目时,很多开发者都会遇到一个诡异现象:首页访问正常,但点击内部路由后再刷新页面,浏览器突然弹出404错误。这就像魔术师的手帕突然消失一样…...

【华为电脑管家】多屏协同下微软拼音输入法兼容性自动修复的终极指南

1. 多屏协同与输入法兼容性问题解析 华为电脑管家的多屏协同功能确实让跨设备办公变得无比便捷,但很多用户都遇到过这个烦人的问题:每次连接多屏协同时,微软拼音输入法的兼容性设置就会被自动修改。我自己也深受其扰,经常在重要会…...

深度拆解全连接神经网络:从结构到计算的核心原理

🔍 深度拆解全连接神经网络:从结构到计算的核心原理一、全连接神经网络:结构美学与连接规则 ✨1. 网络三层核心结构2. 神经元连接黄金规则3. 网络结构可视化(Mermaid)二、数据输入规范:只认二维矩阵的「严格…...

DVWA1.9文件上传High级绕过实战:3种隐藏木马技巧与防御思路

DVWA1.9文件上传High级绕过实战:3种隐藏木马技巧与防御思路 在Web安全领域,文件上传漏洞始终是攻击者最青睐的攻击向量之一。DVWA(Damn Vulnerable Web Application)作为经典的漏洞演练平台,其High级别的文件上传防护机…...