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

Java学习Day19:基础篇9

final

权限修饰符

空着不写是default!

代码块

1.静态代码块

1.静态代码块优于空参构造方法

2.静态调用只被加载一次;

静态代码块在Java中是一个重要的特性,它主要用于类的初始化操作,并且随着类的加载而执行,且只执行一次。静态代码块的实践应用广泛,以下是几个主要的应用场景:

1. 初始化静态变量

静态代码块经常用于初始化静态变量,这些变量在类的所有实例之间共享。通过静态代码块,可以在类加载时设置这些变量的初始值确保在使用这些变量之前它们已经被正确初始化

2. 加载外部资源

在应用程序中,有时需要在类加载时加载外部资源,如配置文件、数据库驱动等。静态代码块提供了一个很好的时机来完成这些任务,因为它在类被JVM加载时执行,且只执行一次。

3. 初始化静态数据结构

对于需要在类级别上共享的数据结构(如集合、映射等),静态代码块可以用于在类加载时初始化这些数据结构。这有助于减少在对象创建时重复初始化相同数据结构的开销。

4. 执行一次性的任务

如果有一些任务只需要在类加载时执行一次,比如初始化日志系统、注册服务提供者等,那么静态代码块是一个理想的选择。这些任务通常与类的实例无关,但需要在类被使用时已经准备好。

5. 控制静态代码块的执行顺序

在存在继承关系的类中,静态代码块的执行顺序是按照父类到子类的顺序进行的。这一特性可以用于控制初始化操作的顺序,确保在子类使用父类资源之前,父类资源已经被正确初始化。

示例代码

public class StaticInitialization {
// 静态变量
private static String country;
// 静态代码块
static {
country = "中国";
System.out.println("静态代码块执行,初始化国家为:" + country);
// 可以在这里加载外部资源或执行其他初始化任务
}
public static void main(String[] args) {
// 静态代码块在类加载时自动执行,无需显式调用
System.out.println("主方法执行,国家为:" + country);
}
}

在上面的示例中,静态代码块在类StaticInitialization被加载时执行,并且只执行一次。它用于初始化静态变量country,并在控制台打印一条消息。然后,在main方法中,可以直接访问这个已经初始化的静态变量。

注意事项

  • 静态代码块只能访问类的静态成员变量和静态方法,不能访问类的实例成员变量和实例方法。
  • 静态代码块的执行顺序取决于它们在类中的定义顺序,与它们在代码中的位置无关。
  • 如果存在继承关系,父类的静态代码块会在子类的静态代码块之前执行。但是,需要注意的是,这并不会影响静态变量的访问顺序,因为静态变量是按照它们在类中的定义顺序进行初始化的。

2.构造代码块

实例化几次就调用几次

3.静态代码块、构造代码块、构造函数执行顺序

内部类

1.内部类的分类

 

1.成员内部类

public class text {public static void main(String[] args) {A.c c =new A().new c();c.setA(3);System.out.println(c.getA());}
}

2.局部内部类

3.匿名内部类

相关文章:

Java学习Day19:基础篇9

包 final 权限修饰符 空着不写是default! 代码块 1.静态代码块 1.静态代码块优于空参构造方法 2.静态调用只被加载一次; 静态代码块在Java中是一个重要的特性,它主要用于类的初始化操作,并且随着类的加载而执行,且只…...

如何撤销git add ,git commit 的提交记录

一、撤销git commit ,但是没有push到远程的记录 git reset --hard HEAD~1 销最近的一次提交,并且丢弃所有未提交的更改 二、撤销git add ,但是没有提交到本地仓库的记录 git reset 三、原理 Git 工作流程的简要说明: 工作目录(Working …...

Postman环境变量的高级应用:复杂条件逻辑的实现

Postman环境变量的高级应用:复杂条件逻辑的实现 在Postman中,环境变量是管理和定制API请求的强大工具。通过使用环境变量,可以轻松地在不同环境之间切换,如开发、测试和生产环境。然而,环境变量的真正威力在于它们能够…...

AI问答-供应链管理:理解医疗耗材供应链SPD板块

医疗耗材供应链SPD板块是一个专注于医用耗材供应链管理的关键领域,它融合了供应链管理理论、物流信息技术以及环节专业化管理手段,旨在保证院内医用耗材的质量安全、满足临床需求,并提升医院的整体运营效率。以下是对医疗耗材供应链SPD板块的…...

科普文:分布式数据一致性协议Paxos

1 什么是Paxos Paxos协议其实说的就是Paxos算法, Paxos算法是基于消息传递且具有高度容错特性的一致性算 法,是目前公认的解决分布式一致性问题最有效的算法之一。 Paxos由 莱斯利兰伯特(Leslie Lamport)于1998年在《The Part-Time Parliament》论文中首次公 开&…...

Vue3 + js-echarts 实现前端大屏可视化

1、前言 此文章作为本人大屏可视化项目的入门学习笔记,以此作为记录,记录一下我的大屏适配解决方案,本项目是基于vite Vue3 js less 实现的,首先看ui,ui是网上随便找的,代码是自己实现的,后面…...

知乎信息流广告怎么投?一文读懂知乎广告开户及投放!

作为中国领先的问答社区,知乎以其高质量的内容和活跃的用户群体成为了众多品牌青睐的营销阵地。为了帮助企业更高效地利用知乎平台进行品牌推广,云衔科技提供了全方位的知乎广告开户及代运营服务,助力您的品牌在知乎上实现快速增长。 一、知…...

TikTok达人合作:AI与大数据如何提升跨境电商营销效果

在当今数字时代,跨境电商与TikTok达人的合作已成为推动品牌增长和市场拓展的重要力量。随着AI、大数据等先进技术的不断发展和应用,这种合作模式正变得更加高效和精准。本文Nox聚星将和大家探讨在TikTok达人合作中,AI、大数据等技术的具体运用…...

win11管理员账户为啥不能改?win11怎么更改管理员账户名称?

文章目录 亲测有效!!!!...

Spring Security学习笔记(三)Spring Security+JWT认证授权流程代码实例

前言:本系列博客基于Spring Boot 2.6.x依赖的Spring Security5.6.x版本 上两篇文章介绍了Spring Security的整体架构以及认证和鉴权模块原理。本篇文章就是基于Spring Security和JWT的一个demo 一、JWT简介 JWT(JSON Web Token)&#xff0c…...

精装房、旧房改造智能家居,单火线也有“救”了单火模块 零线发生器

精装房、旧房改造智能家居,单火线也有“救”了单火模块 零线发生器 史新华 以前写过关于智能家居没有预留零线,导致无法安装零火开关,也没办法装触控屏,主要原因还是无法通过零火线给设备供电。今年最火的一款思万奇零线发生器救…...

使用URLSearchParams获取url地址后面的参数(window.location.href)

function getUrlParams(url) {const urlStr url.split(?)[1];const urlSearchParams new URLSearchParams(urlStr);return Object.fromEntries(urlSearchParams.entries()); }const info getUrlParams(window.location.href); // info是一个对象,包含url携带参数…...

计算机网络03

文章目录 重传机制超时重传快速重传SACK 方法Duplicate SACK 滑动窗口流量控制操作系统缓冲区与滑动窗口的关系窗口关闭糊涂窗口综合症 拥塞控制慢启动拥塞避免算法拥塞发生快速恢复 如何理解是 TCP 面向字节流协议?如何理解字节流?如何解决粘包&#xf…...

linux每个目录都是干啥的???linux目录说明

很全,没事看看,记住 / 虚拟目录的根目录。通常不会在这里存储文件 /bin 二进制目录,存放许多用户级的GNU工具启动目录,存放启动文件 /etc 系统配置目录 /dev 设备目录,Linux在这里创建设备节点系统配置文件目录 /home 主目录,Linux在…...

DB2-Db2StreamingChangeEventSource

提示:Db2StreamingChangeEventSource 类主要用于从 IBM Db2 数据库中读取变更数据捕获 (CDC, Change Data Capture) 信息。CDC 是一种技术,允许系统跟踪数据库表中数据的更改,这些更改可以是插入、更新或删除操作。在大数据和实时数据处理场景…...

在当前的数字化时代,Cobol 语言如何与新兴技术(如云计算、大数据、人工智能)进行融合和交互?

Cobol语言作为一种古老的编程语言,与新兴技术的融合和交互需要一些额外的工作和技术支持。以下是一些将Cobol与新兴技术结合的方法: 云计算:Cobol程序可以迁移到云平台上运行,通过云提供的弹性和可扩展性,为Cobol应用程…...

使用SDL库以及C++实现的简单的贪吃蛇:AI Fitten生成

简单使用AI代码生成器做了一个贪吃蛇游戏 设计的基本逻辑都是正确的,能流畅运行 免费准确率高,非常不错!支持Visual Studio系列 Fitten:https://codewebchat.fittenlab.cn/ SDL 入门指南:安装配置https://blog.csdn.n…...

【C++标准库】模拟实现string类

模拟实现string类 一.命名空间与类成员变量二.构造函数1.无参(默认)构造2.有参构造3.兼容无参和有参构造4.拷贝构造1.传统写法2.现代写法 三.析构函数四.string类对象的容量操作1.size2.capacity3.clear4.empty5.reserve6.resize 五.string类对象的访问及…...

ArcGIS for js 标记(vue代码)

一、引入依赖 import Graphic from "arcgis/core/Graphic"; import GraphicsLayer from "arcgis/core/layers/GraphicsLayer"; import Color from "arcgis/core/Color"; import TextSymbol from "arcgis/core/symbols/TextSymbol.js"…...

全网最全最新100道C++面试题:40-60

前述:本文初衷是为了总结本人在各大平台看到的C面经,我会在本文持续更新我所遇到的一些C面试问题,如有错误请一定指正我。新建立了一个收集问答的仓库,欢迎各位小伙伴来更新鸭interview_experience: 本仓库初衷是想为大家提供一个…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...