Java,集合框架,关于Collection接口(子接口List和Set)
目录
数组储存多个数据方面的特点:
Java集合框架体系:(Java.util包下)
Collection接口中的方法测试:
迭代器(Iterator)的作用:用来遍历集合元素。
增强for循环(即foreach循环)的使用:
List接口中常用方法的测试:
List接口的实现类特点:
Set及其实现类的特点:
TreeSet:底层的数据结构:红黑树结构
数组储存多个数据方面的特点:
·数组一旦初始化,其长度就是确定的。
·数组中的多个元素是依次紧密排列的,有序的,可重复的。
·数组一旦初始化完成,其元素的类型就是确定的。不是此类型的元素,就不能添加到此数组中。
数组储存多个数据方面的弊端:
·数组一旦初始化,其长度就是确定的。
·数组中储存数据特点的单一性。对于无序的不可重复的场景就不适用了。
·数组中可用的方法、属性都极少。具体的需求,要自己编写相关代码。
·元素的类型既可以是基本数据类型,也可以是引用数据类型。
·针对于数组中元素的删除,插入操作,性能比较差。
Java集合框架体系:(Java.util包下)
两个接口:
java.util.Collection:存储一个一个的数据。
——子接口:
①List:存储有序的,可重复的数据。(“动态”数组,即变长数组)
·实现类:ArrayList(主要的实现类)、LinkedList、Vector
②Set:存储无序的,不可重复的数据。(类似于集合)
·实现类:HashSet(主要实现类)、LinkedHashSet、TreeSet
java.util.Map:存储一对一对的数据。(key-value键值对,类似于数学的函数)
实现类:HashMap(主要实现类)、LinkedHashMap、TreeMap、Hashtable、Properties
Collection接口中的方法测试:
与添加相关:
(1) add(Object obj):添加元素对象到当前集合中。
(2)addAll(Collection other):添加other集合中的所有元素对象到当前集合中。
与判断相关:
(3)int size( ):获取当前集合中实际存储的元素个数。
(4)boolean isEmpty( ):判断当前集合是否为空集合。(其实是判断size的大小是否为零)
(5)boolean contains(Object obj):判断当前集合中是否存在一个与obj对象equals返回true的元素。(如果包含自定义类,建议重写equals方法)
(6) boolean containsAll(Collection coll):判断coll集合中的元素是否在当前集合中都存在。即coll集合是否是当前集合的“子集”。
(7)boolean equals(Object obj):判断当前集合与obj是否相等。
与删除相关:
(8)void clear( ):清空集合元素
(9) boolean remove(object obj):从当前集合中删除第一个找到的与obj对象equals返回true的元素。
(10)boolean removeAl(Collection coll):从当前集合中删除所有与coll集合中相同的元素。
(11) boolean retainAll(Collection coll):从当前集合中删除两个集合中不同的元素,使得当前集合仅保留与col(集合中的元素相同的元素,即当前集合中仅保留两个集合的交集。
其他:
(12) Object[ ] toArray( ):返回包含当前集合中所有元素的数组。
(13)hashCode( ):获取集合对象的哈希值。
(14)iterator( ):返回迭代器对象,用于集合遍历。
集合与数组的相互转换:
集合转换为数组:调用方法toArray( )。
数组转化为集合:调用Arrays的静态方法asList(Object ... objs)。
向Collection中添加元素的要求:
要求元素所属的类一定要重写equals( )。因为Collection中的相关方法在使用时,要调用元素所在类的equals( )。
迭代器(Iterator)的作用:用来遍历集合元素。
获取迭代器的方式:
Tterator ii = 集合对象.iterator;
迭代的方式:
用iterator.hasNext( )方法作为循环的判断条件,再循环遍历集合元素。
Person pp = new Person(19,"Lily");
Collection cc = new ArrayList();
cc.add("aaa");
cc.add(111223);//自动装箱为Integer类型再作为参数
cc.add(pp);Iterator iterator = cc.iterator();
while(iterator.hasNext())
{System.out.println(iterator.next());
}
next的作用:①将指针指向的集合元素向下移②将下移后指针位置上的元素返回。
增强for循环(即foreach循环)的使用:
作用:用来遍历数组、集合。
格式:
for(要遍历的集合或数组的元素的类型 临时变量 : 要遍历的集合或数组变量)
{
//操作临时变量
}
说明:
针对于集合来讲,增强for循环的底层使用的是迭代器。
增强for循环的执行过程中,是将集合或数组中的元素依次赋值给临时变量。
List接口中常用方法的测试:
List接口中存储数据的特点:
用于存储有序的、可以重复的数据。(有时使用List来替代数组,变长数组)
List中的常用方法:
第一批:Collection中声明的方法
第二批:因为List是有序的,所以有一些针对索引操作的方法。
插入元素
void add(int index,Object ele):在index位置插入ele元素
boolean addAll(int index,Collection eles):从index位置开始将eles中的所有元素添加进来
获取元素
Object get(int index):获取指定index位置的元素
List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
获取元素索引
int indexOf(Object obj):返回obj在集合中首次出现的位置
int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
删除和替换元素
Object remove(int index):移除指定index位置的元素,并返回此元素。
(假设要删除索引为2的元素,参数输入2即可。但是要删除值为2的元素,就要将2包装为Intrger类型(因为参数要Object,参数输入2时,会优先将2识别为int 类型的index。)后再传入参数。
Object set(int index, Object ele):设置指定index位置的元素为ele。
List接口的实现类特点:
·ArrayList:List接口的主要实现类。线程不安全的,效率高。底层使用Object[ ]数组存储。在添加数据、查找数据时效率较高,在插入数据,删除数据时效率较低。
·LinkedList:底层使用双向链表的方式进行存储。在插入数据,删除数据时效率较高,在添加数据、查找数据时效率较低。(在对集合中的数据进行频繁地删除、插入的操作时,建议使用此类。)
·Vector:List接口的古老实现类。线程安全的,效率低。底层使用Object[ ]数组存储。
Set及其实现类的特点:
Set:存储无序的,不可重复的数据。
实现类:HashSet(主要实现类)、LinkedHashSet、TreeSet
Set中的常用方法,即为Collection中的声明的抽象方法(见《Java,集合框架,关于Collection接口》)
相较于List、Map来说,Set的使用频率较少。主要用来过滤重复数据
Set接口中不同实现类的区别:
HashSet:底层使用的是HashMap,即使用数组+单向链表+红黑树结构进行存储。(jdk8新引入红黑树结构)
LinkedHashSet:继承于HashSet类,是HashSet的子类。底层在数组+单向链表+红黑树结构的基础上,又添加了一组双向链表,用于记录添加元素的先后顺序。(即可以按照添加元素的顺序实现遍历。便于频繁的查询操作。)
TreeSet:底层使用红黑数存储。可以按照添加的元素的指定的属性的大小顺序进行遍历。
Set中的无序性、不可重复性:(以下原则只适用于HashSet和LinkHashSet)
无序性:元素不是依次紧密排列的(一来因为是按照哈希值来存放元素,并不是按顺序依次存放。二来可能因为哈希冲突,一个元素的位置处形成链表)。
不可重复性:添加到Set中的元素是不能相同的(定义不相同的规则取决于对象的类中的equals方法和hashCode方法,哈希值相同,equals方法返回true,则认为元素是相同的。)
添加到HashSet和LinkHashSet中的元素的要求:
要求元素所在的类中重写两个方法:equals方法和hashCode方法。同时,要求equals和hashCode保持一致(即都以同一批属性为标准)。
添加的元素需要排序:①自然排序②定制排序
TreeSet:底层的数据结构:红黑树结构
添加数据后的特点:可以按照添加大的元素的指定的属性的大小顺序进行遍历。
添加元素的要求:添加到TreeSet中的元素必须是同一个元素类型的对象。否则会报类转换异常。
判断数据是否相同的标准:不是考虑HashSet和equals方法,比较元素的大小和比较元素是否相等的标准是取决于compareTo( )或compare( )的返回值。如果返回值为0,即相等。TreeSet中也不能存放相同的元素,所以按照compareTo( )或compare( )的返回值判断后相等后的元素不会添加进TreeSet中。
自然排序指定判断TreeSet中数据是否相同的标准:让元素对象的类实现Comparable接口,并实现compareTo方法即可。
定制排序指定判断TreeSet中数据是否相同的标准:先创建一个Comparator的实现类的对象,在其中实现compare方法。再将此实现类的对象作为TreeSet的构造器的参数传入构造器中。具体代码如下:
Comparator comparator = new Comparator()
{@Overridepublic int compare(Object o1, Object o2){if(o1 == o2){return -1;}if(!(o1 instanceof User && o2 instanceof User)){throw new RuntimeException("类型异常");}User uu1 = (User) o1;User uu2 = (User) o2;if(uu1.getAge() == uu2.getAge()){return uu1.getName().compareTo(uu2.getName());}else if (uu1.getAge() < uu2.getAge()){return -1;}else{return 1;}}
};
相关文章:
Java,集合框架,关于Collection接口(子接口List和Set)
目录 数组储存多个数据方面的特点: Java集合框架体系:(Java.util包下) Collection接口中的方法测试: 迭代器(Iterator)的作用:用来遍历集合元素。 增强for循环(即for…...
已安装的nginx追加ssl模块
Nginx开启SSL模块1 切换到源码包: cd /usr/local/src/nginx-1.11.3 2 查看nginx原有的模块 /usr/local/nginx/sbin/nginx -V 在configure arguments:后面显示的原有的configure参数如下: –prefix/usr/local/nginx --with-http_stub_status_module …...
大语言模型|人工智能领域中备受关注的技术
个人主页:【😊个人主页】 系列专栏:【❤️其他领域】 文章目录 前言关于大语言模型大语言模型是什么?大语言模型有什么用?文案写作知识库回答文本分类代码生成 AWS 如何通过 LLM 提供帮助?Amazon BedrockAmazon SageM…...
Docker之DockerFile解析
DockerFile解析 是什么 Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 概述 官网 https://docs.docker.com/engine/reference/builder/ 构建三步骤 编写Dockerfile文件 docker build命令构建镜像 docker run依镜像运…...
NSSCTF第13页(2)
[HNCTF 2022 Week1]Challenge__rce 提示?hint 访问看到了源码 <?php error_reporting(0); if (isset($_GET[hint])) { highlight_file(__FILE__); } if (isset($_POST[rce])) { $rce $_POST[rce]; if (strlen($rce) < 120) { if (is_string($rce…...
基于吉萨金字塔建造算法优化概率神经网络PNN的分类预测 - 附代码
基于吉萨金字塔建造算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于吉萨金字塔建造算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于吉萨金字塔建造优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&a…...
Git详解及 github使用
1.1 关于版本控制 开始之前先看一个没有版本控制的例子 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的 好处就是简单,但是特别容易犯错。有时候会混淆所在…...
iOS源码-工程目录讲解
1、 工程目录 1.1、xib 主要的界面渲染控制,ios开发常用的界面,可以在这里快速开发出来 1.2、base 基本的类,子类继承base类,就具备父类的方法,无需在重写 1.3、util 基础的类一些,处理时间等 1.4、…...
ESP32 Arduino实战协议篇-搭建独立的 Web 服务器
在此项目中,您将创建一个带有 ESP32 的独立 Web 服务器,该服务器使用 Arduino IDE 编程环境控制输出(两个 LED)。Web 服务器是移动响应的,可以使用本地网络上的任何浏览器设备进行访问。我们将向您展示如何创建 Web 服务器以及代码如何逐步工作。 项目概况 在直接进入项目…...
多维时序 | MATLAB实现PSO-BiLSTM-Attention粒子群优化双向长短期记忆神经网络融合注意力机制的多变量时间序列预测
多维时序 | MATLAB实现PSO-BiLSTM-Attention粒子群优化双向长短期记忆神经网络融合注意力机制的多变量时间序列预测 目录 多维时序 | MATLAB实现PSO-BiLSTM-Attention粒子群优化双向长短期记忆神经网络融合注意力机制的多变量时间序列预测预测效果基本介绍模型描述程序设计参考…...
【开源】基于Vue.js的在线课程教学系统的设计和实现
项目编号: S 014 ,文末获取源码。 \color{red}{项目编号:S014,文末获取源码。} 项目编号:S014,文末获取源码。 目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2…...
CentOS 安装etcd集群 —— 筑梦之路
环境说明 192.168.1.11 192.168.1.12 192.168.1.13 yum在线安装 yum install etcd -y #etcd01 cat > /etc/etcd/etcd.conf <<EOF ETCD_NAMEetcd01 ETCD_LISTEN_PEER_URLS"http://0.0.0.0:2380" ETCD_LISTEN_CLIENT_URLS"http://0.0.0.0:2379&quo…...
mysql 实现去重
个人网站 首发于公众号小肖学数据分析 1、试题描述 数据表user_test如下,请你查询所有投递用户user_id并且进行去重展示,查询结果和返回顺序如下 查询结果和返回顺序如下所示 解题思路: (1) 对user_id列直接去重: ÿ…...
类模板成员函数类外实现
#include<iostream> #include<string> using namespace std;//类模板成员函数类外实现 template<class T1,class T2> class Person { public:Person(T1 name,T2 age); // { // this->m_namename; // this->m_ageage; // }void showPerson(); // { /…...
多svn仓库一键更新脚本分享
之前分享过多git仓库一键更新脚本,本期就分享下svn仓库的一键更新脚本 1、首先需要设置svn为可执行命令行 打开SVN安装程序,选择modify,然后点击 command client tools,安装命令行工具 2、update脚本 echo 开始更新SVN目录&…...
C语言程序设计(入门)
考虑到期末临近,大一的学生该考c语言程序设计了吧,整一小篇给爱摆烂的小萌新复习一下降低挂科的风险 1. 1.1 main 函数 int main() {// 程序的入口,执行从这里开始return 0; // 表示程序正常结束 }1.2 语句和分号 C语言中的语句以分号结束…...
短视频账号矩阵系统源码
短视频账号矩阵系统源码搭建步骤包括以下几个方面: 1. 确定账号类型和目标受众:确定要运营的短视频账号类型,如搞笑、美食、美妆等,并明确目标受众和定位。 2. 准备账号资料:准备相关资质和资料,如营业执照…...
基于SSM的在线投稿系统设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...
PWM实验
PWM相关概念 PWM:脉冲宽度调制定时器 脉冲:方波信号,高低电平变化产生方波 周期:高低电平变化所需要时间 频率:1s钟可以产生方波个数 占空比:在一个方波内,高电平占用的百分比 宽度调制:占…...
Python武器库开发-flask篇之session与cookie(二十六)
flask篇之session与cookie(二十六) 在 Flask 中,可以使用 session 来在不同请求之间存储和传递数据。Session 在客户端和服务器端之间交换,但是数据存储在服务器端。 Session 与 Cookie 的区别 session 和 cookie 都可以用来在不同请求之间存储和传递…...
深度学习YOLO安检管制物品识别与检测 - python opencv 计算机竞赛
文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络4 Yolov55 模型训练6 实现效果7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习YOLO安检管制误判识别与检测 ** 该项目较为新颖,适合作为竞赛课题方向&…...
vite+react+typescript 遇到的问题
1.找不到模块“vite”。你的意思是要将 “moduleResolution” 选项设置为 “node”,还是要将别名添加到 “paths” 选项中 tsconfig.json 中 compilerOptions:{“moduleResolution”: node} 2.未知的编译器选项“allowImportingTsExtensions” 该选项用于控制是否…...
数据结构及八种常用数据结构简介
data-structure 数据结构是一种存在某种关系的元素的集合。“数据” 是指元素;“结构” 是指元素之间存在的关系,分为 “逻辑结构” 和 “物理结构(又称存储结构)”。 常用的数据结构有 数组(array)、栈&…...
阿里云配置ssl(Apache)
阿里云申请证书,有个专门的免费的申请方式与普通证书是平级的功能; 访问服务器,判断apache是不是开启ssl功能,如果没有安装就安装它 [rootcentos ~]# rpm -qa | grep mod_ssl //什么没显示说明没装 yum install mod_ssl openssl …...
阿里云linux升级新版本npm、nodejs
在阿里云服务器上编译部署NextJS工程发现 alibaba linux默认yum install npm安装的版本太低, 使用以下方式升级node、npm新版本。 1、卸载现有版本 yum remove nodejs npm -y2、安装新版本 sudo yum install https://rpm.nodesource.com/pub_21.x/nodistro/repo/nodesource-…...
如何在el-tree懒加载并且包含下级的情况下进行数据回显-02
上一篇文章如何在el-tree懒加载并且包含下级的情况下进行数据回显-01对于el-tree懒加载,包含下级的情况下,对于回显提出两种方案,第一种方案有一些难题无法解决,我们重点来说说第二种方案。 第二种方案是使用这个变量对其是否全选…...
Pytorch 网络冻结的三种方法区别:detach、requires_grad、with_no_grad
1、requires_grad requires_gradTrue # 要求计算梯度; requires_gradFalse # 不要求计算梯度;在pytorch中,tensor有一个 requires_grad参数,如果设置为True,那么它会追踪对于该张量的所有操作。在完成计算时可以通过调…...
如何定位el-tree中的树节点当父元素滚动时如何定位子元素
使用到的方法 Element 接口的 scrollIntoView() 方法会滚动元素的父容器,使被调用 scrollIntoView() 的元素对用户可见。 参数 alignToTop可选 一个布尔值: 如果为 true,元素的顶端将和其所在滚动区的可视区域的顶端对齐。相应的 scrollIntoV…...
【WiFI问题自助】解决WiFi能连上但是没有网的问题
WiFi能连上但是没有网的问题 背景:wifi能连上,但是没有网 解决 遇事不决,先重启啊!怎么重启?拔掉电源再插上!拔掉网线再插上! 直接ok了。 思考记录 今天WiFi又上不了网了,昨天报…...
论文阅读:JINA EMBEDDINGS: A Novel Set of High-Performance Sentence Embedding Models
Abstract JINA EMBEDINGS构成了一组高性能的句子嵌入模型,擅长将文本输入转换为数字表示,捕捉文本的语义。这些模型在密集检索和语义文本相似性等应用中表现出色。文章详细介绍了JINA EMBEDINGS的开发,从创建高质量的成对(pairwi…...
计数排序.
一.定义: 计数排序(Counting Sort)是一种非比较性质的排序算法,其时间复杂度为O(nk)(其中n为待排序的元素个数,k为不同值的个数)。这意味着在数据值范围不大并且离散分布的情况下,规…...
flink中配置Rockdb的重要配置项
背景 由于我们在flink中使用了状态比较大,无法完全把状态数据存放到tm的堆内存中,所以我们选择了把状态存放到rockdb上,也就是使用rockdb作为状态后端存储,本文就是简单记录下使用rockdb状态后端存储的几个重要的配置项 使用rockdb状态后端…...
代码随想录二刷 | 数组 | 有序数组的平方
代码随想录二刷 | 数组 | 有序数组的平方 题目描述题目分析 & 代码实现暴力排序双指针法 题目描述 977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 …...
基于单片机C51全自动洗衣机仿真设计
**单片机设计介绍, 基于单片机C51全自动洗衣机仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机C51的全自动洗衣机仿真设计是一个复杂的项目,它涉及到硬件和软件的设计和实现。以下是对这…...
「Verilog学习笔记」实现3-8译码器①
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 ① 本题要求根据38译码器的功能表实现该电路,同时要求采用基础逻辑门实现,那么就需要将功能表转换为逻辑表达式。 timescale 1ns/1nsmodule d…...
Centos(Linux)服务器安装Dotnet8 及 常见问题解决
1. 下载dotnet8 sdk 下载 .NET 8.0 SDK (v8.0.100) - Linux x64 Binaries 拿到 dotnet-sdk-8.0.100-linux-x64.tar.gz 文件 2. 把文件上传到 /usr/local/software 目录 mkdir -p /usr/local/software/dotnet8 把文件拷贝过去 mv dotnet-sdk-8.0.100-linux-x64.tar.gz /usr/loc…...
最强人工智能ChatGPT引领AIGC发展
从公众号转载,关注微信公众号掌握更多技术动态 --------------------------------------------------------------- ——AI不会淘汰所有人,但会淘汰不懂AI的人 一、最强人工智能GPT-4 Turbo 在前不久的OpenAI开发者大会,正值Chatgpt3.5发布一…...
10.Oracle的同义词与序列
oracle11g的同义词与序列 一、Oracle同义词:1、同义词的基本使用2、同义词的相关权限3、同义词的作用范围 二、Oracle序列:1、序列的基本操作2、序列的相关权限 一、Oracle同义词: 同义词是一个数据库对象的别名,它允许用户通过不…...
【周报2023-11-10】
周报2023-11-10 本周的主要工作下周工作计划 本周的主要工作 本周的主要工作就有三个 第一个是进行对我们目前的高企项目的完善情况第二个是对于高企项目的接口对接情况以及细节的把控第三个为新的小程序项目做准备工作 首先第一个高企项目的完善情况得话主要是页面上 对于原…...
搜维尔科技:业内普遍选择Varjo头显作为医疗VR/AR/XR解决方案
Varjo 的人眼分辨率混合现实和虚拟现实头显将医疗专业人员的注意力和情感投入提升到更高水平。借助逼真的 XR/VR,医疗和保健人员可以为最具挑战性的现实场景做好准备! 在虚拟、增强和混合现实中进行最高水平的训练和表现 以逼真的 3D 方式可视化医疗数据…...
数据结构02附录01:顺序表考研习题[C++]
图源:文心一言 考研笔记整理~🥝🥝 之前的博文链接在此:数据结构02:线性表[顺序表链表]_线性链表-CSDN博客~🥝🥝 本篇作为线性表的代码补充,每道题提供了优解和暴力解算法…...
ClientDateSet:Cannot perform this operation on a closed dataset
一、问题表现 Delphi 三层DataSnap,使用AlphaControls控件优化界面,一窗口编辑时,出现下列错误提示: 编译通过,该窗口中,重新显示数据,下图: 相关代码: procedure…...
python中列表的基础解释
列表: 一种可以存放多种类型数据的数据结构 列表的创建: 1.用【】创建列表 #创建一个空列表 list1[] #创建一个非空列表 list2 [zhang,li,ying,1,2,3] #输出内容及类型 print(list1,type(list1)) print(list2,type(list2))结果: 2.使用list…...
『力扣刷题本』:链表分割
一、题目 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 二、思路解析 首先,让我们列出我们需要做的事情&…...
FISCOBCOS入门(十)Truffle测试helloworld智能合约
本文带你从零开始搭建truffle以及编写迁移脚本和测试文件,并对测试文件的代码进行解释,让你更深入的理解truffle测试智能合约的原理,制作不易,望一键三连 在windos终端内安装truffle npm install -g truffle 安装truffle时可能出现网络报错,多试几次即可 truffle --vers…...
Unity Text文本首行缩进两个字符的方法
Text文本首行缩进两个字符的方法比较简单。通过代码把"\u3000\u3000"加到文本字符串前面即可。 参考如下代码: TMPtext1.text "\u3000\u3000" "这是一段有首行缩进的文本内容。\n这是第二行"; 运行效果如下图所示: 虽…...
TS的函数重载、类型合并、类型断言
函数重载 let list5 [1, 2, 3, 4]function findNum(id: number): number[]function findNum(): number[]function findNum(list: number[]): number[]function findNum(ids?: number | number[]): number[] {if (typeof ids number) {return list5.filter((num) > num …...
JVM:字节码文件,类的生命周期,类加载器
JVM:字节码文件,类的生命周期,类加载器 为什么要学这门课程 1. 初识JVM1.1. 什么是JVM1.2. JVM的功能1.3. 常见的JVM 2. 字节码文件详解2.1. Java虚拟机的组成2.2. 字节码文件的组成2.2.1. 以正确的姿势打开文…...
【IPC】消息队列
1、IPC对象 除了最原始的进程间通信方式信号、无名管道和有名管道外,还有三种进程间通信方式,这 三种方式称之为IPC对象 IPC对象分类:消息队列、共享内存、信号量(信号灯集) IPC对象也是在内核空间开辟区域,每一种IPC对象创建好…...
内网穿透工具NPS(保姆级教程)
前言: 有时候我们受限于硬件设备和网络的的问题,无法将内网的大容量、高性能存储设备或计算设备对外访问。这个时候就会变的特别苦恼,上云呢成本太大,不用云呢公网又无法直接访问,这个时候怎么办呢,NPS它来…...