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

0基础学java之Day25

Vector

 /** 知识点:Vector独有的方法
      理解:
     *         Vector在JDK1.0开始就已经存在 -- 元老级别的集合类,
     *         集合框架的概念是JDK1.2开始才有的,
     *         开发人员为了将Vector保留下来,让其多实现了List接口
     * 
     * 注意:
     *         Vector底层的数据结构和ArrayList是一样的 -- Object类型的一维数组
     *         Vector底层方法加锁,该类是线程安全的,多线程的情况下使用
     */
    public static void main(String[] args) {
        
        Vector<String> v = new Vector<>();
        
        //添加元素
        v.addElement("aaa");
        v.addElement("bbb");
        v.addElement("ccc");
        v.addElement("ddd");
        v.addElement("eee");
        
        v.removeElementAt(1);//根据下标删除元素
        v.removeElement("ccc");//根据元素删除元素
        
        //遍历元素
        Enumeration<String> elements = v.elements();
        while(elements.hasMoreElements()){
            String element = elements.nextElement();
            System.out.println(element);
        }
    }
 

Stack

//知识点:Stack独有的方法
     * 继承关系:Stack -> Vector
     * 特点:栈模式 - 先进后出
     */
    public static void main(String[] args) {
        
        Stack<String> stack = new Stack<>();
        
        //将元素添加到栈顶
        stack.push("小红");
        stack.push("小黄");
        stack.push("小绿");
        stack.push("小蓝");
        stack.push("小紫");
        
        //获取栈顶元素
        String peek = stack.peek();
        System.out.println("获取栈顶元素:" + peek);
        
        //从1开始数
        System.out.println("获取该元素距离栈顶的位置:" + stack.search("小紫"));
        
        //栈模式
        while(!stack.empty()){//判断集合中是否有元素
            
            String pop = stack.pop();//删除栈顶元素,并返回
            System.out.println(pop);
        }
        
    }

Set接口

所有的Set集合有一个共同特征:元素不可重复

Set集合的实现类有很多,常见的有3个:HashSet、LinkedHashSet、TreeSet。

Set接口的方法都是从Collection继承的,直接使用刚刚学过的Collection的方法即可。

HashSet
  • 理解 - 无序:存入顺序与取出顺序不一致,无序不代表随机

  • 特点:无序且不可重复 -- 去重

  • 存入顺序:

    1.获取元素的hash值 -- hashCode() ​ 2.利用hash值计算在数组中下标 ​ 3.判断下标上是否有元素 ​ 3.1 - 没有元素,直接添加 ​ 3.2 - 有元素,判断两个元素是否相同 ​ 判断的准则:hash值 && (== || equals) ​ 3.2.1 - 不相同,添加数据,形成单向链表 ​ (JDK1.7-头插法,JDK1.8尾插法) ​ 3.2.2 - 相同,就不添加数据 -- 达到去重的效果 ​ 取出顺序:数组顺序

    HashSet为什么无序? 答:存入顺序的逻辑和取出顺序的逻辑不一致

LinkedHashSet
  • 特点:有序且不可重复 -- 去重

  • 存入顺序和父类HashSet的逻辑90%是一样的

  • 取出顺序:遍历的是双向链表

TreeSet

* 知识点:TreeSet的特点
     * 
     * 特点:自然排序、去重
     * 理解:TreeSet会根据不同的数据类型选择不同的排序规则
     */
    public static void main(String[] args) {
        
        //TreeSet存储Integer:数字升序
        TreeSet<Integer> set1 = new TreeSet<>();
        set1.add(8);
        set1.add(1);
        set1.add(5);
        set1.add(6);
        set1.add(3);
        for (Integer element : set1) {
            System.out.println(element);
        }
        
        System.out.println("----------------------------------");
        
        //TreeSet存储String:字典排序
        TreeSet<String> set2 = new TreeSet<>();
        set2.add("b");
        set2.add("bc");
        set2.add("bb");
        set2.add("v");
        set2.add("c");
        set2.add("a");
        for (String element : set2) {
            System.out.println(element);//a b bb bc c v 
        }
    }

TreeSet与HashSet的区别?

TreeSet:会按照元素的大小顺序排列,一定会用到比较器,默认找Comparable接口的compareTo方法。凡是要放到TreeSet集合里面的元素类型必须实现Comparable接口,重写compareTo方法。

  • TreeSet认为的元素重复,是看compareTo方法是不是返回0,如果是0,就是重复元素。不是0,就不重复。

  • HashSet认为的元素重复,是看equals方法是否返回true,返回true为重复否则不重复。

    前提:重写equals时,通常都要重写hashCode方法。因为Java中有一个常规协定,如果两个对象hashCode值不一样,就无须看它们的equals方法,因为hashCode值不一样,就默认为equals一定false。如果两个对象的hashCode值一样,再看equals方法,是不是返回true,如果是true,就是重复,不是true,就不重复。

Map接口

HashMap的常用方法

public static void main(String[] args) {
            HashMap<String, Integer> map = new HashMap<>();
            /**
             * 添加元素:如果是第一次添加该key就返回null
             * 如果有重复的key就替换老的value并返回
             */
            Integer put1 = map.put("小红", 111);
            System.out.println(put1);//null
            map.put("小黄", 222);
            map.put("小绿", 333);
            map.put("小蓝", 444);
            map.put("小紫", 555);
            Integer put2 = map.put("小黄", 666);
            System.out.println(put2);//222
            
            //通过key获取value
            System.out.println(map.get("小红"));//111
            
            //如果key存在,获取对应的value;否则返回默认值
            System.out.println(map.getOrDefault("aaa", 888));//aaa不存在返回888
            
            //清空集合数据
            //map.clear();
            
            System.out.println("判断map集合中是否有指定的key:" + map.containsKey("小紫"));//true
            System.out.println("判断map集合中是否有指定的value:" + map.containsValue(555));//true

            System.out.println("判断集合中是否没有元素:" + map.isEmpty());//false
            
            //将newMap1中所有的元素添加到map中
            HashMap<String, Integer> newMap1 = new HashMap<>();
            newMap1.put("aaa", 10);
            newMap1.put("bbb", 20);
            newMap1.put("ccc", 30);
            map.putAll(newMap1);

            //如果有key就获取对应的value;否则就添加元素
            Integer putIfAbsent1 = map.putIfAbsent("小绿", 22);
            System.out.println("putIfAbsent1:" + putIfAbsent1);//333
            Integer putIfAbsent2 = map.putIfAbsent("ddd", 22);
            System.out.println("putIfAbsent2:" + putIfAbsent2);//null

            //通过key删除数据,返回value值
            Integer remove1 = map.remove("aaa");
            
            //通过key+value删除数据,返回boolean(删除是否成功)
            System.out.println("remove1:" + remove1);//10
            boolean remove2 = map.remove("bbb", 20);
            System.out.println("remove2:" + remove2);//true

            //通过key替换value
            Integer replace1 = map.replace("ccc", 40);
            System.out.println("replace1:" + replace1);//30
            boolean replace2 = map.replace("ccc", 40, 50);
            //通过key+value替换value,返回boolean(替换是否成功)
            System.out.println("replace2:" + replace2);//true

            //获取映射关系个数(理解映射关系:key+value)
            int size = map.size();
            System.out.println("获取元素的个数:" + size);//7

            //获取map集合中所有的value,返回Collection集合
            Collection<Integer> values = map.values();
            System.out.println(values);
            //更专业写法
            //System.out.println("获取map集合中所有的value:" + Arrays.toString(values.toArray()));
            
            System.out.println("--------------------");
            
            //遍历集合 -- keySet()
            //遍历思路:通过map.keySet()获取该key的Set集合,遍历Set集合循环取出key,再使用map.get(key)获取对应的value
            Set<String> keySet = map.keySet();
            for (String key : keySet) {
                Integer value = map.get(key);
                System.out.println(key+"--"+value);
            }
            
            System.out.println("--------------------");
            
            //遍历集合 -- entrySet()
            Set<Entry<String,Integer>> entrySet = map.entrySet();
            for (Entry<String, Integer> entry : entrySet) {
                String key = entry.getKey();
                Integer value = entry.getValue();
                System.out.println(key+"--"+value);
                //也可以直接输出entry
                //System.out.println(entry);
            }    
            
        }

特点:

1.HashMap的key不允许重复

2.HsahMap的value允许重复

3.完全无序,线程不安全

   4.支持key,value为null

LinkedHashMap

特点:

1.HashMap的key不允许重复

2.HsahMap的value允许重复

3.有序,线程不安全

   4.支持key,value为null

TreeMap

特点:

1.HashMap的key不允许重复

2.HsahMap的value允许重复

3.有序,线程不安全

   4.不支持key,value为null

内置比较器和外置比较器区别:

1.定义位置:

         内置比较器:将比较逻辑定义在类内部,即让类实现Comparable接口,并重写compareTo方法。

        外置比较器:将比较逻辑定义在类外部,即创建一个新的比较器类实现Comparator接口,并重写compare方法。

2.灵活性:

         内置比较器:一个类一旦实现了Comparable接口,就固定了一种排序逻辑,不便于后续更改或添加多种排序方式。

        外置比较器:可以针对同一个类创建多个不同的比较器,实现多种排序逻辑,更加灵活。

3.使用场景:

        内置比较器:适用于类的自然排序或默认排序。例如,String、Integer等Java内置类都实现了Comparable接口,提供了默认的排序规则。

外置比较器:适用于需要对已有类进行自定义排序或多种排序需求的场景。例如,对学生信息按照姓名、年龄、成绩等不同字段进行排序。

Hashtable

特点:

1.Hashtable的key不允许重复

2.Hsahtable的value允许重复

3.无序,线程安全

4.不支持key,value为null

被ConcurrentHashMap淘汰

ConcurrentHashMap

特点:

1.Hashtable的key不允许重复

2.Hsahtable的value允许重复

   3.无序,线程安全(局部加锁,效率高)

Properties

在src下面创建一个File文件dbconfig.properties内容为:username=root password=201028

public static void main(String[] args) throws IOException {
        
        //创建配置文件类的对象
        Properties properties = new Properties();
        
        //将配置文件加载到配置文件对象中
        properties.load(Test01.class.getClassLoader().getResourceAsStream("dbconfig.properties"));
        
        //通过配置文件对象去获取配置文件里的数据
        String username = properties.getProperty("username");
        String password = properties.getProperty("password");
        System.out.println(username + " -- " + password);
    }

相关文章:

0基础学java之Day25

Vector /** 知识点&#xff1a;Vector独有的方法 理解&#xff1a; * Vector在JDK1.0开始就已经存在 -- 元老级别的集合类&#xff0c; * 集合框架的概念是JDK1.2开始才有的&#xff0c; * 开发人员为了将Vector保留下来&#xf…...

android集成FFmpeg步骤以及常用命令,踩坑经历

1、入坑第一步:首先集成的库必须正确。最好是有ndk的,FFmpeg有许多个版本,我才开始接触的时候随便选了一个,一般的 方法没有问题。但是涉及到需要使用libx264等条件进行编码时,老是报错,网上搜索资料也没有人说需要ndk的支持才行。这个问题困扰了好几天,怎么试不行,最后…...

Mac——鼠标增强插件Mos

功能说明&#xff1a; 能够解决鼠标断续、不灵敏等鼠标问题。 下载地址&#xff1a; Mac——鼠标增强插件Mos...

【c++篇】:解读Set和Map的封装原理--编程中的数据结构优化秘籍

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;c篇–CSDN博客 文章目录 前言一.set和map的初步封装1.树的节点封装修改2.Find()查找函数3.红…...

华为鸿蒙内核成为HarmonyOS NEXT流畅安全新基座

HDC2024华为重磅发布全自研操作系统内核—鸿蒙内核&#xff0c;鸿蒙内核替换Linux内核成为HarmonyOS NEXT稳定流畅新基座。鸿蒙内核具备更弹性、更流畅、更安全三大特征&#xff0c;性能超越Linux内核10.7%。 鸿蒙内核更弹性&#xff1a;元OS架构&#xff0c;性能安全双收益 万…...

ArcGIS API for Javascript学习

一、ArcGIS API for Javascript 介绍 ArcGIS API for Javascript 是由美国 Esri 公司推出&#xff0c;跟随ArcGIS 9.3 同时发布的&#xff0c;是Esri 基于dojo 框架和 REST 风格实现的一套编程接口。通过 ArcGIS API for Javascript可以对ArcGIS for Server 进行访问&#xff…...

LeetCode 3206.交替组 I:遍历

【LetMeFly】3206.交替组 I&#xff1a;遍历 力扣题目链接&#xff1a;https://leetcode.cn/problems/alternating-groups-i/ 给你一个整数数组 colors &#xff0c;它表示一个由红色和蓝色瓷砖组成的环&#xff0c;第 i 块瓷砖的颜色为 colors[i] &#xff1a; colors[i] …...

环形缓冲区

什么是环形缓冲区 环形缓冲区,也称为循环缓冲区或环形队列,是一种特殊的FIFO(先进先出)数据结构。它使用一块固定大小的内存空间来缓存数据,并通过两个指针(读指针和写指针)来管理数据的读写。当任意一个指针到达缓冲区末尾时,会自动回绕到缓冲区开头,形成一个"环"。…...

Maven 仓库

Maven 仓库对于管理构建 Java 项目所需的依赖和插件至关重要。 Maven 仓库主要有三种类型&#xff1a;本地仓库、中央仓库和远程仓库。 本文将探讨每种仓库的用途以及如何有效使用它们。 Maven 仓库类型 本地仓库 本地仓库是位于您本地机器上的一个目录&#xff0c;Maven 在…...

29.UE5蓝图的网络通讯,多人自定义事件,变量同步

3-9 蓝图的网络通讯、多人自定义事件、变量同步_哔哩哔哩_bilibili 目录 1.网络通讯 1.1玩家Pawn之间的同步 1.2事件同步 1.3UI同步 1.4组播 1.5变量同步 1.网络通讯 1.1玩家Pawn之间的同步 创建一个第三人称项目 将网络模式更改为监听服务器&#xff0c;即将房主作为…...

计算机网络习题解答--个人笔记(未完)

本篇文章为关于《计算机网络-自顶向下方法第七版》的阅读总结和课后习题解答(未完待续) 第二章&#xff1a; cookie&#xff1a;&#xff08;这里是比较老版本的HTTP&#xff0c;具体HTTPs是怎么实现的不是很清楚&#xff09;cookie的原理其实很简单。就是在HTTP消息头上又多…...

Unity图形学之雾Fog

1.设置雾化&#xff1a; 2.雾化变化曲线&#xff1a;FogMode &#xff08;1&#xff09;线性&#xff1a; &#xff08;2&#xff09;一次指数&#xff1a; &#xff08;3&#xff09;二次指数&#xff1a; Shader "Custom/FogTest" {Properties{_Color ("Color…...

ML 系列:第 36 节 — 统计学中的抽样类型

ML 系列&#xff1a;第 36 天 — 统计学中的抽样类型 文章目录 一、说明二、抽样方法三、简单随机抽样四、 Stratified Sampling分层抽样五、 Cluster Sampling 整群抽样六、Systematic Sampling系统抽样七、Convenience Sampling便利抽样八、结论 一、说明 统计学中的抽样类型…...

docker-compose部署java服务

文章目录 一、下载安装docker-compose二、编写Dockerfile文件三、编写docker-compose.yml文件配置说明 四、服务启动五、测试与验证 一、下载安装docker-compose 在安装docker时&#xff0c;并不会同时把docker-compose安装好&#xff0c;需要额外安装一下 下载docker-compos…...

ubuntu22开机自动登陆和开机自动运行google浏览器自动打开网页

一、开机自动登陆 1、打开settings->点击Users 重启系统即可自动登陆桌面 二、开机自动运行google浏览器自动打开网页 1、安装google浏览器 sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i ./google-chrome-stable…...

java接口对接标准

概述 最近在跟许多外部平台对接&#xff0c;遇到了很多问题&#xff0c;在此记录一下接口的对接标准。 接口对接标准 确认环境&#xff0c;分别获取di和prd环境的接口信息&#xff0c;比如域名。确认不同环境的防火墙是否连通。接口校验&#xff0c;接口携带的token信息如何…...

训练的decoder模型文本长度不一致,一般设置为多大合适,需要覆盖最长的文本长度么

在训练解码器模型时,文本长度不一致是常见的情况,需要根据任务的特性和数据集的长度分布来设置合理的最大长度 (max_length)。以下是一些指导原则,帮助你设置合适的最大长度: 1. 是否需要覆盖最长文本长度 覆盖最长文本长度: 如果任务对完整性要求很高(例如生成数学公式、…...

安装MySQL服务

安装版本MySQL8的安装包 安装界面 在这里选择MySQL中的Server only 只安装服务器端 如果选择custom需要如下图 进入配置导向&#xff0c;点击ready to configure&#xff0c;点击next即可 采用默认形式 执行成功后&#xff0c;会出现自动选择项 点击next然后再点击Finish 启动…...

十二、正则表达式、元字符、替换修饰符、手势和对话框插件

1. 正则表达式 1.1 基本使用 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&g…...

Unreal从入门到精通之如何绘制用于VR的3DUI交互的手柄射线

文章目录 前言实现方式MenuLaser实现步骤1.Laser和Cursor2.移植函数3.启动逻辑4.检测射线和UI的碰撞5.激活手柄射线6.更新手柄射线位置7.隐藏手柄射线8.添加手柄的Trigger监听完整节点如下:效果图前言 之前我写过一篇文章《Unreal5从入门到精通之如何在VR中使用3DUI》,其中讲…...

如何提升编程能力第二篇

如何提升编程能力2 1. 引言2. 掌握理论基础2.1 理解编程语言的核心2.2 数据结构与算法2.3 计算机基础与系统设计3.1 多写代码3.2 参与开源项目3.3 开发自己的项目 4. 提高代码质量4.1 代码风格与可读性4.2 测试驱动开发 1. 引言 编程是推动现代科技发展的核心技能&#xff0c;…...

【AI日记】24.11.26 聚焦 kaggle 比赛

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 核心工作 1 内容&#xff1a;研究 kaggle 比赛时间&#xff1a;3 小时 核心工作 2 内容&#xff1a;学习 kaggle 比赛 Titanic - Machine Learning from Disaster时间&#xff1a;4 小时备注&#xff1a;这…...

计算机网络八股整理(一)

计算机网络八股文整理 一&#xff1a;网络模型 1&#xff1a;网络osi模型和tcp/ip模型分别介绍一下 osi模型是国际标准的网络模型&#xff0c;它由七层组成&#xff0c;从上到下分别是&#xff1a;应用层&#xff0c;表示层&#xff0c;会话层&#xff0c;传输层&#xff0c;…...

删除链表中的重复元素

删除链表中的重复元素 单链表的创建和使用删除链表中的重复元素 I题目描述解题思路代码实现 删除链表中的重复元素 II题目描述解题思路代码实现 单链表的创建和使用 使用vector结合单链表数据结构创建一个通用单链表。 #include <iostream> #include <vector>str…...

序列求和 牛客网

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 定义S(n) 12 22 … n2&#xff0c;输出S(n) % 1000000007。 注意&#xff1a;1 < n < 1e18。 输入描述: 多组输入&#xff0c;输入直到遇到EOF为止&#xff1b;第一行输…...

【Oracle11g SQL详解】 SELECT 语句的基础用法与示例

SELECT 语句的基础用法与示例 在 Oracle 11g 中&#xff0c;SELECT 语句是最常用的 SQL 语句&#xff0c;用于从数据库表中查询数据。本文将从语法结构、使用方法和常见示例出发&#xff0c;系统讲解 SELECT 语句的基础用法。 一、SELECT 语句的基本语法 SELECT 列名1, 列名2…...

编译以前项目更改在x64下面时报错:函数“PVOID GetCurrentFiber(void)”已有主体

win32下面编译成功&#xff0c;但是x64报错 1>GetWord.c 1>md5.c 这两个文件无法编译 1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um\winnt.h(24125,1): error C2084: 函数“PVOID GetCurrentFiber(void)”已有主体 1>C:\Program Files (x…...

【小白学机器学习36】关于独立概率,联合概率,交叉概率,交叉概率和,总概率等 概念辨析的例子

目录 1 先说结论 2 联合概率 3 边缘概率 4 (行/列)边缘概率的和 总概率1 5 条件概率 5.1 条件概率的除法公式 5.2 条件概率和联合概率区别 1 先说结论 关于独立概率&#xff0c;联合概率&#xff0c;交叉概率&#xff0c;交叉概率和&#xff0c;总概率 类型含义 …...

如何使用 Tailwind CSS 构建响应式网站:详细指南

文章目录 前言一、安装 Tailwind CSS二、配置 Tailwind CSS三、使用 Tailwind CSS 构建响应式网站四、优化和部署结语 前言 在当今的数字时代&#xff0c;网站不仅需要在桌面浏览器上看起来出色&#xff0c;还需要在移动设备和平板电脑上提供一致的用户体验。响应式设计成为了…...

LabVIEW发动机热磨合试验台

在汽车发动机的研发和质量控制中&#xff0c;发动机热磨合试验是关键环节。它能够检验发动机在实际运行条件下的性能&#xff0c;及时发现异响、振动、漏油等潜在问题。通过搭建基于LabVIEW的高效测试平台&#xff0c;可以显著提高发动机的可靠性和使用寿命。下面介绍LabVIEW开…...

【GPT】力量训练是什么,必要吗,有可以替代的方式吗

什么是力量训练&#xff1f; 力量训练是一种通过抵抗力&#xff08;如重量、阻力带、自身体重等&#xff09;来刺激肌肉收缩&#xff0c;从而提高肌肉力量、耐力和体积的运动形式。它包括以下常见形式&#xff1a; 自由重量训练&#xff1a;使用哑铃、杠铃、壶铃等。固定器械…...

pikachu文件上传漏洞通关详解

声明&#xff1a;文章只是起演示作用&#xff0c;所有涉及的网站和内容&#xff0c;仅供大家学习交流&#xff0c;如有任何违法行为&#xff0c;均和本人无关&#xff0c;切勿触碰法律底线 目录 概念&#xff1a;什么是文件上传漏洞一、客户端check二、MIME type三、getimagesi…...

java hashCode() 详解

hashCode() 是 Java 中 Object 类 提供的一个重要方法&#xff0c;它在 Java 集合框架中扮演着关键角色&#xff0c;特别是在使用哈希表相关的集合&#xff08;如 HashMap、HashSet 和 Hashtable&#xff09;时。以下是对 hashCode() 方法的详解&#xff0c;包括概念、用法、规…...

鸿蒙学习自由流转与分布式运行环境-价值与架构定义(1)

文章目录 价值与架构定义1、价值2、架构定义 随着个人设备数量越来越多&#xff0c;跨多个设备间的交互将成为常态。基于传统 OS 开发跨设备交互的应用程序时&#xff0c;需要解决设备发现、设备认证、设备连接、数据同步等技术难题&#xff0c;不但开发成本高&#xff0c;还存…...

JavaWeb

JavaWeb 一、JavaWeb 是什么&#xff1f;二、JavaWeb 发展阶段三、JavaWeb 常用架构Servlet JSP 架构SSH 架构SSM 架构SpringBoot架构SpringCloud架构 四、JavaWeb 项目结构&#xff08;带web.xml的&#xff09;五、如何打包六、war包部署1. Tomcat 介绍2. Tomcat目录结构3. 开…...

加快发展社会保障事业的必要性

题目 【2011年浙江公务员考试】&#xff08;二&#xff09;某市将召开一次加快发展社会保障事业的形势分析会。会上&#xff0c;某领导要就加快发展社会保障事业的必要性做主题发言。请结合给定资料7~8&#xff0c;为领导拟一份发言要点。&#xff08;25分&#xff09; 要求&a…...

责任链模式在spring security过滤器链中的应用

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许多个对象按照顺序处理请求&#xff0c;并且每个对象可以选择自己是否处理该请求或将其传递给下一个对象。 在Spring Security中&#xff0c;责任链模式得到了广泛应…...

Netty基本原理

目录 前言 原生NIO VS Netty 原生NIO存在的问题 Netty的优点 线程模型 传统阻塞 I/O (Blocking I/O) 2. 非阻塞 I/O (Non-blocking I/O) 3. 多路复用 I/O (Multiplexed I/O) 4. Reactor 模式 常见的 Reactor 模式的变体&#xff1a; Netty线程模型 工作原理 前言 N…...

图论入门编程

卡码网刷题链接&#xff1a;98. 所有可达路径 一、题目简述 二、编程demo 方法①邻接矩阵 from collections import defaultdict #简历邻接矩阵 def build_graph(): n, m map(int,input().split()) graph [[0 for _ in range(n1)] for _ in range(n1)]for _ in range(m): …...

Haproxy

一、haproxy简介 HAProxy 是法国开发者 威利塔罗 (Willy Tarreau) 在 2000 年使用 C 语言开发的一个开源软件 是一款具备高并发 ( 万级以上 ) 、高性能的 TCP 和 HTTP 负载均衡器 支持基于 cookie 的持久性&#xff0c;自动故障切换&#xff0c;支持正则表达式及 web 状态统…...

旋转磁体产生的场 - 实验视频资源下载

先发几个视频&#xff0c;是2019年所作的实验内容 更多视频&#xff0c;到某宝找我吧。注意&#xff1a;是收费的。 20190312-180244-旋转磁体产生的场造成激光功率减小 https://download.csdn.net/download/u014161757/90038058 20190313-090956-旋转磁体产生的场对真空介电…...

Java Map

在Java的集合框架中&#xff0c;Map接口用于存储键值对&#xff0c;提供了一种基于键进行查找和操作的数据结构。Map接口的实现类提供了丰富的方法来操作键值对&#xff0c;例如添加、删除、更新和查找。本文将详细介绍Java中的Map接口及其常见实现类&#xff0c;包括HashMap、…...

长三角文博会:Adobe国际认证体系推动设计人才评价新标准

2024年11月22日&#xff0c;由上海、江苏、浙江、安徽三省一市党委宣传部共同发起的第五届长三角文化博览会&#xff08;简称“长三角文博会”&#xff09;在上海国家会展中心盛大启幕。长三角文博会自2018年起已成功举办多届&#xff0c;已成为展示区域文化产业发展成果、推动…...

GoogleTest做单元测试

目录 环境准备GoogleTest 环境准备 git clone https://github.com/google/googletest.git说cmkae版本过低了&#xff0c;解决方法 进到googletest中 cmake CMakeLists.txt make sudo make installls /usr/local/lib存在以下文件说明安装成功 中间出了个问题就是&#xff0c;…...

CSDN 博客自动发布脚本(Python 含自动登录、定时发布)

文章目录 关于 csdn auto publisher使用 关于 csdn auto publisher 源码地址&#xff1a;https://github.com/ezscode/csdn_auto_publisher 使用 def test_simple_pub():file_path /Users/xx/Documents/xxx/tool.md article Article(file_path) article.tags [python] art…...

RL78/G15 Fast Prototyping Board Arduino IDE 平台开发过程

这是一篇基于RL78/G15 Fast Prototyping Board的Arduino IDE开发记录 RL78/G15 Fast Prototyping Board硬件简介&#xff08;背景&#xff09;基础测试&#xff08;方法说明/操作说明&#xff09;开发环境搭建&#xff08;方法说明/操作说明代码结果&#xff09;Arduino IDE RL…...

VsCode 插件推荐(个人常用)

VsCode 插件推荐&#xff08;个人常用&#xff09;...

零基础学安全--云技术基础

目录 学习连接 前言 云技术历史 云服务 公有云服务商 云分类 基础设施即服务&#xff08;IaaS&#xff09; 平台即服务&#xff08;PaaS&#xff09; 软件即服务&#xff08;SaaS&#xff09; 云架构 虚拟化 容器 云架构设计 组件选择 基础设施即代码 集成部署…...

docker如何安装redis

第一步 如果未指定redis&#xff0c;则安装的是最新版的 docker pull redis 创建一个目录 mkdir /usr/local/docker/redis 然后直接可以下载redis&#xff0c;这是方式确实不怎么好&#xff0c;应该找在官网上找对应的redis配置文件 wget http://download.redis.io/redis-stab…...

搜维尔科技:仿人双臂遥操作系统,力反馈灵巧手操作解决方案

仿人双臂遥操作系统&#xff0c;力反馈灵巧手操作解决方案 搜维尔科技&#xff1a;仿人双臂遥操作系统&#xff0c;力反馈灵巧操作解决方案...