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

Java学习手册:Java集合框架详解

Java集合框架详解

Java集合框架(Java Collections Framework)是Java语言中用于存储和操作数据集合的一组接口和类的集合。它提供了丰富的数据结构和算法,帮助开发者高效地管理和操作数据。掌握集合框架的使用是Java开发者的必备技能。

本文将深入探讨Java集合框架的核心概念、主要接口和类,以及它们的使用场景和最佳实践。

集合框架的核心接口

Java集合框架的核心接口包括:

  • Collection:集合的顶层接口,表示一组对象的集合。
  • List:有序集合,允许重复元素。
  • Set:无序集合,不允许重复元素。
  • Map:键值对集合,用于存储映射关系。

这些接口提供了统一的操作方式,使得开发者可以灵活地选择合适的实现类。

List接口及其实现类

List接口表示一个有序集合,允许重复元素,并且可以通过索引访问元素。主要的实现类包括:

  • ArrayList:基于动态数组实现,适合频繁的随机访问。
  • LinkedList:基于双向链表实现,适合频繁的插入和删除操作。
  • Vector:线程安全的动态数组,类似于ArrayList,但性能较低。

示例代码

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;public class ListExample {public static void main(String[] args) {// 使用ArrayListList<String> arrayList = new ArrayList<>();arrayList.add("Apple");arrayList.add("Banana");arrayList.add("Orange");System.out.println("ArrayList: " + arrayList);// 使用LinkedListList<String> linkedList = new LinkedList<>();linkedList.add("Apple");linkedList.add("Banana");linkedList.add("Orange");System.out.println("LinkedList: " + linkedList);// 在中间插入元素linkedList.add(1, "Grape");System.out.println("After insertion: " + linkedList);}
}

Set接口及其实现类

Set接口表示一个无序集合,不允许重复元素。主要的实现类包括:

  • HashSet:基于哈希表实现,提供快速的插入和查找操作。
  • TreeSet:基于红黑树实现,提供有序的集合。
  • LinkedHashSet:基于哈希表和链表实现,保持插入顺序。

示例代码

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;public class SetExample {public static void main(String[] args) {// 使用HashSetSet<String> hashSet = new HashSet<>();hashSet.add("Apple");hashSet.add("Banana");hashSet.add("Orange");System.out.println("HashSet: " + hashSet);// 使用TreeSetSet<String> treeSet = new TreeSet<>();treeSet.add("Apple");treeSet.add("Banana");treeSet.add("Orange");System.out.println("TreeSet: " + treeSet);}
}

Map接口及其实现类

Map接口表示一个键值对集合,用于存储映射关系。主要的实现类包括:

  • HashMap:基于哈希表实现,提供快速的插入和查找操作。
  • TreeMap:基于红黑树实现,提供按键排序的映射。
  • Hashtable:线程安全的哈希表实现,类似于HashMap,但性能较低。
  • LinkedHashMap:基于哈希表和链表实现,保持插入顺序。

示例代码

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;public class MapExample {public static void main(String[] args) {// 使用HashMapMap<String, Integer> hashMap = new HashMap<>();hashMap.put("Apple", 1);hashMap.put("Banana", 2);hashMap.put("Orange", 3);System.out.println("HashMap: " + hashMap);// 使用TreeMapMap<String, Integer> treeMap = new TreeMap<>();treeMap.put("Apple", 1);treeMap.put("Banana", 2);treeMap.put("Orange", 3);System.out.println("TreeMap: " + treeMap);}
}

集合框架的遍历

Java集合框架提供了多种遍历集合的方式,包括传统的for循环、增强型for循环(foreach)和Stream API。

示例代码

import java.util.ArrayList;
import java.util.List;public class CollectionIterationExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Orange");// 传统for循环for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}// 增强型for循环for (String item : list) {System.out.println(item);}// 使用Stream APIlist.stream().forEach(item -> System.out.println(item));}
}

集合框架的线程安全

在多线程环境中,集合框架的线程安全是一个重要问题。Java提供了以下线程安全的集合类:

  • VectorHashtable:早期的线程安全实现,但性能较低。
  • Collections.synchronized:通过包装器类提供线程安全。
  • ConcurrentHashMap:高效的线程安全哈希表实现。

示例代码

import java.util.Collections;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;public class ThreadSafeCollectionsExample {public static void main(String[] args) {// 使用ConcurrentHashMapConcurrentHashMap<String, Integer> concurrentMap = new ConcurrentHashMap<>();concurrentMap.put("Apple", 1);concurrentMap.put("Banana", 2);System.out.println("ConcurrentHashMap: " + concurrentMap);// 使用Collections.synchronizedListList<String> synchronizedList = Collections.synchronizedList(new ArrayList<>());synchronizedList.add("Apple");synchronizedList.add("Banana");System.out.println("Synchronized List: " + synchronizedList);}
}

集合框架的最佳实践

  1. 选择合适的集合类:根据实际需求选择合适的集合类,例如:

    • 需要频繁随机访问时使用ArrayList
    • 需要频繁插入和删除时使用LinkedList
    • 需要保证元素唯一性时使用Set
    • 需要键值对映射时使用Map
  2. 优先使用接口而非实现类:在声明变量时,尽量使用接口类型,而不是具体实现类,以提高代码的灵活性。

  3. 处理线程安全问题:在多线程环境中,优先使用ConcurrentHashMap等高效线程安全的集合类,而不是传统的VectorHashtable

  4. 避免使用过时的类:尽量避免使用VectorHashtable等过时的类,改用更现代的替代品。

  5. 合理使用Stream API:在Java 8及以上版本中,Stream API提供了更简洁、更高效的集合操作方式。

总结

Java集合框架是Java语言的重要组成部分,提供了丰富的接口和类来存储和操作数据集合。通过掌握ListSetMap等核心接口及其实现类,开发者可以灵活地选择合适的集合类来满足不同的需求。

希望本文能帮助读者深入理解Java集合框架的使用方法和最佳实践,从而在实际开发中更加高效地管理和操作数据。

相关文章:

Java学习手册:Java集合框架详解

Java集合框架&#xff08;Java Collections Framework&#xff09;是Java语言中用于存储和操作数据集合的一组接口和类的集合。它提供了丰富的数据结构和算法&#xff0c;帮助开发者高效地管理和操作数据。掌握集合框架的使用是Java开发者的必备技能。 本文将深入探讨Java集合…...

20250412 机器学习ML -(3)数据降维(scikitlearn)

1. 背景 数学小白一枚&#xff0c;看推理过程需要很多时间。好在有大神们源码和DS帮忙&#xff0c;教程里的推理过程才能勉强拼凑一二。 * 留意&#xff1a; 推导过程中X都是向量组表达: shape(feature, sample_n); 和numpy中的默认矩阵正好相反。 2. PCA / KPCA PCAKPCA(Li…...

深入解析系统频率响应:通过MATLAB模拟积分器对信号的稳态响应

稳态响应分析与MATLAB可视化 在控制系统中&#xff0c;线性时不变系统的稳态响应是描述输入与输出之间关系的关键。对于一个频率为 ω i \omega_i ωi​ 的正弦输入 u ( t ) M i sin ⁡ ( ω i t φ i ) u(t) M_i \sin(\omega_i t \varphi_i) u(t)Mi​sin(ωi​tφi​)&…...

[16届蓝桥杯 2025 c++省 B] 画展布置

​​​​​​​​​​​​​​ 解题思路 理解 ( L ) 的本质 当 ( B ) 按平方值从小到大排序后&#xff0c;相邻项的差非负&#xff0c;此时 ( L ) 等于区间内最大平方值与最小平方值的差&#xff08;数学公式推导&#xff09; 滑动窗口找最小差值 遍历所有长度为 ( M ) 的连续…...

从代码学习深度学习 - Bahdanau注意力 PyTorch版

文章目录 1. 前言为什么选择Bahdanau注意力本文目标与预备知识2. Bahdanau注意力机制概述注意力机制简述加性注意力与乘性注意力对比Bahdanau注意力的数学原理与流程图数学原理流程图可视化与直观理解3. 数据准备与预处理数据集简介数据加载与预处理1. 读取数据集2. 预处理文本…...

具身智能零碎知识点(三):深入解析 “1D UNet”:结构、原理与实战

深入解析 “1D UNet”&#xff1a;结构、原理与实战 【深度学习入门】1D UNet详解&#xff1a;结构、原理与实战指南一、1D UNet是什么&#xff1f;二、核心结构与功能1. 整体架构2. 编码器&#xff08;Encoder&#xff09;3. 解码器&#xff08;Decoder&#xff09;4. 跳跃连…...

基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(二)

上一篇 文章介绍了arXiv采集处理的任务背景、整体需求&#xff0c;并对数据进行了调研。 本文介绍整体方案设计。 4.整体方案设计 4.1.总体流程 基于上述调研了解的情况&#xff0c;针对工作需求设计处理流程如下&#xff1a; 下载kaggle数据集作为流程输入&#xff0c;出…...

Halo 设置 GitHub - OAuth2 认证指南

在当今数字化时代&#xff0c;用户认证的便捷性和安全性愈发重要。对于使用 Halo 搭建个人博客或网站的开发者而言&#xff0c;引入 GitHub - OAuth2 认证能够极大地提升用户登录体验。今天&#xff0c;我们就来详细探讨一下如何在 Halo 中设置 GitHub - OAuth2 认证。 一、为…...

脑影像分析软件推荐 | AIDA介绍

目录 1.软件界面 2.工具包功能简介 3.软件安装注意事项 1.软件界面 2.工具包功能简介 AIDAmri是一种新型的基于图谱的成像数据分析流程&#xff0c;用于处理小鼠大脑的结构和功能数据&#xff0c;包括解剖MRI、基于扩散张量成像&#xff08;DTI&#xff09;的纤维追踪以及基…...

SQL:Relationship(关系)

目录 &#x1f517; 什么是 Relationship&#xff1f; 三种基本关系类型&#xff08;基于实体间的关系&#xff09;&#xff1a; 1. 一对一&#xff08;One-to-One&#xff09; 2. 一对多&#xff08;One-to-Many&#xff09; 3. 多对多&#xff08;Many-to-Many&#xf…...

【今日三题】压缩字符串(模拟) / chika和蜜柑(topK) / 01背包

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;每日两三题 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 压缩字符串 (模拟)chika和蜜柑 (topK)01背包 压缩字符串 (模拟) 压缩字符串 class Solution { public:string compressStri…...

PHP多维数组

在 PHP 中&#xff0c;多维数组是数组的数组&#xff0c;允许你存储和处理更复杂的数据结构。多维数组可以有任意数量的维度&#xff0c;但通常我们最常用的是二维数组&#xff08;数组中的数组&#xff09;。 首先来介绍一下一维数组&#xff0c; <?php//一维数组 $strAr…...

智能手机功耗测试

随着智能手机发展,用户体验对手机的续航功耗要求越来越高。需要对手机进行功耗测试及分解优化,将手机的性能与功耗平衡。低功耗技术推动了手机的用户体验。手机功耗测试可以采用powermonitor或者NI仪表在功耗版上进行测试与优化。作为一个多功能的智能终端,手机的功耗组成极…...

0x02.Redis 集群的实现原理是什么?

回答重点 Redis 集群&#xff08;Redis cluster&#xff09;是通过多个 Redis 实例组成的&#xff0c;每个主节点实例负责存储部分的数据&#xff0c;并且可以有一个或多个从节点作为备份。 具体是采用哈希槽&#xff08;Hash Slot&#xff09;机制来分配数据&#xff0c;将整…...

游戏引擎学习第219天

游戏运行时的当前状态 目前的工作基本上就是编程&#xff0c;带着一种预期&#xff0c;那就是一切都会很糟糕&#xff0c;而我们需要一个系统来防止它变得更糟。接下来&#xff0c;我们来看看目前的进展。 简要说明昨天提到的无限调试信息存储系统 昨天我们完成了内存管理的…...

二叉树深度解析:从基础概念到算法实现与应用

一、二叉树的本质定义与核心特性 &#xff08;一&#xff09;递归定义与逻辑结构 二叉树是一种 严格有序的树结构&#xff0c;其递归定义为&#xff1a; 空树&#xff1a;不含任何结点的集合&#xff0c;是二叉树的特殊形态。非空二叉树&#xff1a;由以下三部分组成&#x…...

Model Context Protocol(MCP)模型上下文协议

Model Context Protocol&#xff08;MCP&#xff09;模型上下文协议 前言一、什么是MCP二、MCP的作用三、MCP与Function call对比四、构建一个简单的MCP DEMO环境准备实现MCP Server运行 ServerMCP Client端配置验证 总结 前言 在Agent时代&#xff0c;将Agent确立为大模型未来…...

代码随想录算法训练营第十六天

LeetCode题目: 530. 二叉搜索树的最小绝对差501. 二叉搜索树中的众数236. 二叉树的最近公共祖先3272. 统计好整数的数目(每日一题) 其他: 今日总结 往期打卡 530. 二叉搜索树的最小绝对差 跳转: 530. 二叉搜索树的最小绝对差 学习: 代码随想录公开讲解 问题: 给你一个二叉搜…...

类似东郊到家的上门按摩预约服务系统小程序APP源码全开源

&#x1f525; 为什么上门按摩正在席卷全国&#xff1f; 万亿蓝海市场爆发 2024年中国按摩市场规模突破8000亿&#xff0c;上门服务增速达65% 90后成消费主力&#xff0c;**72%**白领每月至少使用1次上门按摩&#xff08;数据来源&#xff1a;艾媒咨询&#xff09; 传统痛点…...

MySQL 5.7.30 Linux 二进制安装包详解及安装指南

MySQL 5.7.30 Linux 安装包详解 mysql-5.7.30-linux-glibc2.12-x86_64.tar 是 MySQL 服务器 5.7.30 版本的 Linux 二进制发行包。 mysql-5.7.30-linux-glibc2.12-x86_64.tar 安装包下载 链接&#xff1a;https://pan.quark.cn/s/2943cd209ca5 包信息 版本: MySQL 5.7.30 平…...

C语言超详细指针知识(二)

在上一篇有关指针的博客中&#xff0c;我们介绍了指针的基础知识&#xff0c;如&#xff1a;内存与地址&#xff0c;解引用操作符&#xff0c;野指针等&#xff0c;今天我们将更加深入的学习指针的其他知识。 1.指针的使用和传址调用 1.1strlen的模拟实现 库函数strlen的功能是…...

Java集合框架详解:核心类、使用场景与最佳实践

文章目录 一、Java集合框架概览二、核心集合类详解1. List接口&#xff08;有序、可重复&#xff09;**ArrayList****LinkedList****List对比表** 2. Set接口&#xff08;无序、唯一&#xff09;**HashSet****TreeSet****Set对比表** 3. Queue接口&#xff08;队列&#xff09;…...

模板引擎语法-标签

模板引擎语法-标签 文章目录 模板引擎语法-标签[toc]一、用于进行判断的{% if-elif-else-endif %}标签二、关于循环对象的{% for-endfor %}标签三、关于自动转义的{% autoescape-endautoescape %}标签四、关于循环对象的{% cycle %}标签五、关于检查值是否变化的{% ifchange %}…...

刘火良FreeRTOS内核实现与应用学习之7——任务延时列表

在《刘火良FreeRTOS内核实现与应用学习之6——多优先级》的基础上&#xff1a;关键是添加了全局变量&#xff1a;xNextTaskUnblockTime &#xff0c;与延时列表&#xff08;xDelayedTaskList1、xDelayedTaskList2&#xff09;来高效率的实现延时。 以前需要在扫描就绪列表中所…...

基于红外的语音传输及通信系统设计

标题:基于红外的语音传输及通信系统设计 内容:1.摘要 本设计聚焦于基于红外的语音传输及通信系统&#xff0c;以解决传统通信方式在特定场景下的局限性为背景&#xff0c;旨在开发一种高效、稳定且具有一定抗干扰能力的语音传输系统。方法上&#xff0c;采用红外技术作为语音信…...

解锁AI未来,开启创新之旅——《GPTs开发详解》与《ChatGPT 4应用详解》两本书的深度解析

前言 在这个数字化时代&#xff0c;AI技术正在以前所未有的速度改变我们的生活和工作方式。作为一名AI爱好者和从业者&#xff0c;我深知了解并掌握先进技术的重要性。今天&#xff0c;我想向大家推荐两本极具价值的书籍&#xff1a;《GPTs开发详解》和《ChatGPT 4应用详解》。…...

Linux进程通信入门:匿名管道的原理、实现与应用场景

Linux系列 文章目录 Linux系列前言一、进程通信的目的二、进程通信的原理2.1 进程通信是什么2.2 匿名管道通讯的原理 三、进程通讯的使用总结 前言 Linux进程间同通讯&#xff08;IPC&#xff09;是多个进程之间交换数据和协调行为的重要机制&#xff0c;是我们学习Linux操作系…...

[SpringMVC]上手案例

创建工程 新建项目&#xff0c;选择maven工程&#xff0c;原型&#xff08;Archetype&#xff09;选择maven的webapp&#xff0c;注意名称头尾。会使用到tomcat&#xff08;因为是javaWeb&#xff09;。 新建的项目结构目录如下&#xff0c;如果没有java目录&#xff0c;需要自…...

kubernetes 入门篇之架构介绍

经过前段时间的学习和实践&#xff0c;对k8s的架构有了一个大致的理解。 1. k8s 分层架构 架构层级核心组件控制平面层etcd、API Server、Scheduler、Controller Manager工作节点层Kubelet、Kube-proxy、CRI&#xff08;容器运行时接口&#xff09;、CNI&#xff08;网络插件&…...

说一说 Spring 中的事务

什么是事务&#xff1f; 事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行&#xff0c;要么完全地都不执行&#xff0c; 它是一个不可分割的工作执行单元。 Spring 中的事务是怎么实现的&#xff1f; Spring事务底层是基于数据库事务和AOP机制的首先对于…...

docker容器安装的可道云挂接宿主机的硬盘目录:解决群晖 威联通 飞牛云等nas的硬盘挂接问题

基于Docker部署可道云&#xff08;KodCloud&#xff09;时&#xff0c;通过挂载宿主机其他磁盘目录可实现高效、安全的数据管理。具体而言&#xff0c;使用绑定挂载&#xff08;Bind Mounts&#xff09;将宿主机目录&#xff08;如/data/disk2&#xff09;映射到容器内的可道云…...

Oracle 23ai Vector Search 系列之5 向量索引(Vector Indexes)

文章目录 Oracle 23ai Vector Search 系列之5 向量索引Oracle 23ai支持的向量索引类型内存中的邻居图向量索引 (In-Memory Neighbor Graph Vector Index)磁盘上的邻居分区矢量索引 (Neighbor Partition Vector Index) 创建向量索引HNSW索引IVF索引 向量索引示例参考 Windows 环…...

GPT模型架构与文本生成技术深度解析

核心发现概述 本文通过系统分析OpenAI的GPT系列模型架构&#xff0c;揭示其基于Transformer解码器的核心设计原理与文本生成机制。研究显示&#xff0c;GPT模型通过自回归机制实现上下文感知的序列生成&#xff0c;其堆叠式解码器结构配合创新的位置编码方案&#xff0c;可有效…...

【读者求助】如何跨行业进入招聘岗位?

文章目录 读者留言回信岗位细分1. 中介公司的招聘岗位2. 猎头专员3. 公司的招聘专员选择建议 面试建议1. 请简单介绍你过去 3 年的招聘工作经历&#xff0c;重点说下你负责的岗位类型和规模2. 你在招聘流程中最常用的渠道有哪些&#xff1f;如何评估渠道效果&#xff1f;3. 当你…...

2025蓝桥杯省赛C++B组解题思路

由于题面还没出来&#xff0c;现在先口胡一下思路 填空题直接打表找规律或者乱搞一下就能出&#xff0c;从大题开始说。 1&#xff0c;题意&#xff1a; 给你一个数组&#xff0c;这个数组里有几个数可以被一个连续递增的数字区间求和得出 思路&#xff1a;诈骗题&#xff0c;显…...

springcloud整理

问题1.服务拆分后如何进行服务之间的调用 我们该如何跨服务调用&#xff0c;准确的说&#xff0c;如何在cart-service中获取item-service服务中的提供的商品数据呢&#xff1f; 解决办法&#xff1a;Spring给我们提供了一个RestTemplate的API&#xff0c;可以方便的实现Http请…...

游戏引擎学习第220天

介绍 今天的工作主要是进行一些代码整理和清理&#xff0c;目的是将我们之前写过的代码重新整合在一起&#xff0c;使它们能够更好地协同工作。现在的阶段&#xff0c;我们的任务并不是进行大规模的功能开发&#xff0c;而是集中精力对现有的代码进行整合和思考&#xff0c;确…...

OceanBase企业版单机部署:obd命令行方式

OceanBase企业版单机部署&#xff1a;obd命令行方式 安装包准备服务器准备最低资源配置是否部署ODP组件&#xff1f;仲裁服务器 服务器配置操作系统内核参数BIOS设置磁盘挂载网卡设置 obd部署前配置obd部署单机版安装obd配置obd部署OB集群部署后检查 环境清理与集群销毁 本文介…...

KWDB创作者计划—KWDB认知引擎:数据流动架构与时空感知计算的范式突破

引言&#xff1a;数据智能的第三范式 在数字化转型进入深水区的2025年&#xff0c;企业数据系统正面临三重悖论&#xff1a;数据规模指数级增长与实时决策需求之间的矛盾、多模态数据孤岛与业务连续性要求之间的冲突、静态存储范式与动态场景适配之间的鸿沟。KWDB&#xff08;K…...

车载通信系统中基于ISO26262的功能安全与抗辐照协同设计研究

摘要&#xff1a;随着智能网联汽车的快速发展&#xff0c;车载通信系统正面临着功能安全与抗辐照设计的双重挑战。在高可靠性要求的车载应用场景下&#xff0c;如何实现功能安全标准与抗辐照技术的协同优化&#xff0c;构建满足ISO26262安全完整性等级要求的可靠通信架构&#…...

Oracle OCP认证考试考点详解083系列03

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 11. 第11题&#xff1a; 题目 解析及答案&#xff1a; 关于 RMAN&#xff08;恢复管理器&#xff09;多路复用备份集&#xff0c;以下哪…...

Spring

一.Ioc&DI 1.类的五种控制反转注解 这五个注解作用都一样&#xff0c;只是意义不一样&#xff0c;用来提高代码的可读性。 Controller&#xff1a;控制层&#xff0c;接收请求&#xff0c;对请求进⾏处理&#xff0c;并进⾏响应。 Servie&#xff1a;业务逻辑层&#xff0…...

基于开源链动2+1模式、AI智能名片与S2B2C商城小程序源码的体验式关系深化与商业转化研究

摘要&#xff1a;本文探讨了通过体验过程中的共同经历强化关系&#xff0c;促使KOC&#xff08;关键意见消费者&#xff09;为品牌背书的机制&#xff0c;并深入分析了开源链动21模式、AI智能名片以及S2B2C商城小程序源码在其中的创新应用。研究发现&#xff0c;这些新模式和技…...

【区块链安全 | 第三十九篇】合约审计之delegatecall(一)

文章目录 外部调用函数calldelegatecall call 与 delegatecall 的区别示例部署后初始状态调用B.testCall()函数调用B.testDelegatecall()函数区别总结 漏洞代码代码审计攻击代码攻击原理解析攻击流程修复建议审计思路 外部调用函数 在 Solidity 中&#xff0c;常见的两种底层外…...

Kingbase 常用运维命令总结

一、数据库连接与基础操作 连接指定服务器数据库 ksql -h 主机IP -p 端口号 -U 用户名 -d 数据库名 -W # 示例&#xff1a;连接 IP 为 192.168.1.100 的数据库 ksql -h 192.168.1.100 -p 54321 -U system -d test -W 断开数据库连接 \q 或 exit 查看数据库列表及详细信息…...

从零开始的C++编程 2(类和对象下)

目录 1.构造函数初始化列表 2.类型转换 3.static成员 4.友元 5.内部类 6.匿名对象 1.构造函数初始化列表 ①之前我们实现构造函数时&#xff0c;初始化成员变量主要使⽤函数体内赋值&#xff0c;构造函数初始化还有⼀种⽅式&#xff0c;就是初始化列表&#xff0c;初始化…...

Java---抽象类与接口

抽象类与接口 前言一、抽象类1.抽象类的概念2.抽象类的语法3.抽象类的特点4.抽象类的操作5.抽象类的作用 二、接口1.接口的概念2.接口语法3.接口的使用与特性4.实现多个接口5.接口之间的继承6.接口的实例(1).对象大小的比较(1).Comparable接口(2).Comparator接口 (2).实现类的克…...

玩转Docker | 使用Docker部署linkding书签管理工具

玩转Docker | 使用Docker部署linkding书签管理工具 前言一、linkding介绍简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署linkding服务下载镜像创建容器检查容器状态检查服务端口设置登录账号与密码安全设置四、访问linkding服务访问linkding…...

K8s 集群网络疑难杂症:解决 CNI 网络接口宕机告警的完整指南

引言 在 Kubernetes 集群运维过程中,网络问题往往是最棘手的故障之一。当你收到一条 [CRITICAL] 网络接口宕机 (172.18.109.55:9100) 的告警,并且告警内容显示 172.18.109.55:9100 的网络接口 cni0 已宕机5分钟 时,这通常意味着你的 Kubernetes 集群中有一个节点的容器网络…...

程序员/运维绘图工具---Mermaid

效果 介绍 Mermaid 是一种基于文本的图表生成工具&#xff0c;通过类似 Markdown 的简洁语法快速创建流程图、甘特图、类图等各类专业图表 应用场景 程序员绘图 系统架构图&代码逻辑可视化 项目管理图 数据可视化 AI辅助生成&#xff1a;LLM生成mermaid代码然后去渲染成…...