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

Java学习——day30(Lambda表达式与 StreamAPI)

文章目录

  • 1. Lambda 表达式
    • 1.1 概述
    • 1.2 应用场景
    • 1.3 示例代码
  • 2. Stream API
    • 2.1 概述
    • 2.2 基本组成
    • 2.3 示例代码
  • 3.练习
    • 3.1 .练习初级:
    • 3.2 中级:
    • 3.3 高级:
  • 4.总结与应用
    • 4.1 Lambda 表达式
    • 4.2 Stream API

1. Lambda 表达式

1.1 概述

  • 定义:
    Lambda 表达式是 Java 8 引入的一种语法形式,用于实现函数式接口(即只有一个抽象方法的接口)的匿名实现。它使得代码更加简洁,支持函数式编程风格。
  • 基本语法:
(参数列表) -> {语句块}
  • 参数列表可以为空(“()”)或一个或多个参数;
  • -> 是 Lambda 箭头,分隔参数与函数体;
  • 函数体可以是单个表达式,也可以是一段代码块(若使用代码块则需使用花括号并显式 return)。

1.2 应用场景

  • 简化匿名内部类:
    如事件监听、线程任务、集合操作等场景,代替冗长的匿名内部类代码。
  • 函数式接口:
    常用接口如 RunnableComparator<T>ActionListener 以及 Java 8 提供的函数接口(如 Predicate<T>Function<T,R>Consumer<T> 等)。

1.3 示例代码

  • 示例 1:简单的 Lambda 表达式
// 使用 Lambda 实现 Runnable 接口
Runnable task = () -> System.out.println("Hello, Lambda!");
new Thread(task).start();
  • 示例 2:排序示例
import java.util.Arrays;
import java.util.Comparator;public class LambdaDemo {public static void main(String[] args) {String[] fruits = {"banana", "apple", "orange", "mango"};Arrays.sort(fruits, (s1, s2) -> s1.compareTo(s2));System.out.println(Arrays.toString(fruits));}
}

2. Stream API

2.1 概述

  • 定义:
    Stream API 提供了一种声明性、函数式的方式来处理集合数据。它主要用于对集合、数组等数据源进行聚合操作,如过滤、排序、映射、汇总等,而无需编写循环结构。
  • 特点:
  • 流水线处理:数据操作以流水线方式组织,包含中间操作(转换为流、过滤、映射、排序等)和终止操作(聚合、输出、统计等)
  • 延迟求值:中间操作采用惰性求值,只有在终止操作调用时才执行全部操作。
  • 无副作用:推荐使用无副作用(纯函数)操作,这样能更好支持并发执行、并行流等特性。
  • 支持并行流:可以很容易地转换为并行执行,充分利用多核 CPU 提升性能。

2.2 基本组成

  • 数据源:通常是集合、数组或 IO 生成的流。

  • 中间操作:

    • ``filter(Predicate):过滤符合条件的元素。
    • map(Function<T, R>):将元素映射为其他形式。
    • sorted()sorted(Comparator<T>):排序操作。
    • distinct():去重操作。
    • 其他如 limit(n)skip(n) 等。
  • 终止操作:

    • forEach(Consumer<T>):遍历所有流中元素。
    • collect(Collector<T, A, R>):将流转换为集合或其他数据结构。
    • reduce(BinaryOperator<T>):归约操作,能将流中的所有元素结合成一个结果。
    • count()min()max() 等统计操作。

2.3 示例代码

  • 示例 1:过滤、映射、排序与收集
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class StreamDemo {public static void main(String[] args) {List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eve");// 使用流对字符串进行过滤、转换成大写并排序List<String> processed = names.stream().filter(name -> name.length() > 3).map(String::toUpperCase).sorted().collect(Collectors.toList());System.out.println(processed);}
}
  • 示例 2:归约操作
import java.util.Arrays;public class StreamReduceDemo {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};// 使用流归约求和int sum = Arrays.stream(numbers).reduce(0, (a, b) -> a + b);System.out.println("Sum = " + sum);}
}

3.练习

3.1 .练习初级:

给定整数列表List numbers = Arrays.asList(1, 2, 3, 4, 5),使用Stream找出所有偶数并平方后求和。
示例代码:

import java.util.Arrays;
import java.util.List;public class SumSquareEven {public static void main(String[] args) {// 给定整数列表List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);// 使用Stream进行操作:// 1. filter:过滤出偶数;// 2. map:对偶数进行平方操作;// 3. reduce:求和,初始值为0。int sum = numbers.stream().filter(n -> n % 2 == 0).map(n -> n * n).reduce(0, Integer::sum);// 输出结果System.out.println("所有偶数平方的和为:" + sum);}
}

输出结果:
在这里插入图片描述

  • 代码说明
    • filter(n -> n % 2 == 0):过滤出列表中能被2整除的偶数。
    • map(n -> n * n):将每个偶数进行平方。
    • reduce(0, Integer::sum):将所有平方结果累加求和,其中0是初始值。

3.2 中级:

有一个Person类(含name和age字段),列表List people,找出年龄>18岁的人,按姓名排序,并提取姓名组成新列表。
示例代码:

import java.util.*;
import java.util.stream.Collectors;// 定义Person类
class Person {private String name;private int age;// 构造方法public Person(String name, int age) {this.name = name;this.age = age;}// Getter方法public String getName() {return name;}public int getAge() {return age;}
}public class PersonStreamExample {public static void main(String[] args) {// 构造Person对象列表(示例数据)List<Person> people = Arrays.asList(new Person("Alice", 22),new Person("Bob", 17),new Person("Charlie", 25),new Person("Dave", 19),new Person("Eva", 30));// 使用Stream API进行过滤、排序和提取姓名List<String> names = people.stream().filter(person -> person.getAge() > 18)               // 过滤出年龄大于18岁的人.sorted(Comparator.comparing(Person::getName))        // 按姓名进行排序.map(Person::getName)                                   // 提取姓名.collect(Collectors.toList());                        // 收集为新的列表// 输出结果System.out.println("年龄大于18且按姓名排序后的姓名列表: " + names);}
}

输出结果:
在这里插入图片描述

  • 代码说明:
  • Person 类:定义了两个字段name和age,并提供了构造方法和getter方法。
  • people列表:示例中创建了一个包含多个Person对象的列表。
  • Stream操作:
    • filter(person -> person.getAge() > 18) 筛选出符合条件(年龄大于18岁)的对象;
    • sorted(Comparator.comparing(Person::getName)) 根据姓名排序;
    • map(Person::getName) 将Person对象转换为姓名字符串;
    • collect(Collectors.toList()) 将处理结果收集到一个新的List中。

3.3 高级:

从日志字符串列表List logs中,提取所有包含"ERROR"的行,按日期分组(假设日期为行首的"yyyy-MM-dd"),统计每组错误数量。
示例代码:

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;public class LogErrorSummary {public static void main(String[] args) {// 示例日志列表List<String> logs = Arrays.asList("2025-04-14 INFO Application started","2025-04-14 ERROR Null pointer exception occurred","2025-04-15 ERROR Unable to connect to database","2025-04-15 INFO Connection established","2025-04-14 ERROR Array index out of bounds","2025-04-16 WARN Deprecated API usage");// 使用Stream API提取包含"ERROR"的行,并按日期进行分组,统计每组错误的数量Map<String, Long> errorCountByDate = logs.stream().filter(log -> log.contains("ERROR")) // 过滤出包含ERROR的行.collect(Collectors.groupingBy(log -> log.substring(0, 10),       // 提取行首的日期(yyyy-MM-dd)Collectors.counting()               // 统计每个分组中的错误数量));// 输出结果errorCountByDate.forEach((date, count) ->System.out.println("日期 " + date + " 的错误数量: " + count));}
}

输出结果:
在这里插入图片描述

  • 代码说明
    • 过滤日志:使用 filter(log -> log.contains(“ERROR”)) 过滤出所有包含 “ERROR” 的日志行。
    • 提取日期:假定日志行的前10个字符为日期,所以用 log.substring(0, 10) 作为分组的关键字。
    • 分组与统计:使用 Collectors.groupingBy 对日志按照日期分组,并配合 Collectors.counting() 计算每个日期的错误行数量。

4.总结与应用

4.1 Lambda 表达式

  • 优点:简化匿名内部类的写法、易于实现函数式接口、减少样板代码。
  • 注意事项:
    • Lambda 表达式内部变量必须是最终(或事实上的 final)。
    • 保持表达式中的操作无副作用,便于理解和维护。

4.2 Stream API

  • 优势:
    • 通过声明性风格使代码更清晰,便于并行化处理。
    • 中间操作支持链式调用,逻辑流程直观易懂。
  • 使用建议:
    • 合理区分中间操作(惰性求值)与终止操作,避免中间操作因缺少终止操作而不执行。
    • 注意选择顺序流还是并行流,根据数据量及环境适当选择。

相关文章:

Java学习——day30(Lambda表达式与 StreamAPI)

文章目录 1. Lambda 表达式1.1 概述1.2 应用场景1.3 示例代码 2. Stream API2.1 概述2.2 基本组成2.3 示例代码 3.练习3.1 .练习初级&#xff1a;3.2 中级&#xff1a;3.3 高级&#xff1a; 4.总结与应用4.1 Lambda 表达式4.2 Stream API 1. Lambda 表达式 1.1 概述 定义&…...

mysql no space left on device

文章目录 1. 查看磁盘使用情况2. 清理 /tmp 目录3. 调整 MySQL 临时文件目录4. 增加磁盘空间5. 优化数据库操作 我在执行 MySQL 的 UPDATE 语句时遇到 error writing file /tmp/*** no space left on device 错误&#xff0c;这表明 MySQL 临时文件存储目录 /tmp 空间不足。以下…...

异步编程——微信小程序

1. 前言 引用来自&#xff1a;微信小程序开发中的多线程处理与异步编程_微信小程序 多线程-CSDN博客 微信小程序是基于JavaScript开发的&#xff0c;与浏览器JavaScript不同&#xff0c;小程序运行在WebView内部&#xff0c;没有多线程的概念。小程序的 JavaScript 是单线程的…...

聊透多线程编程-线程池-8.C# 线程互斥实现方式

目录 1. 锁机制 (Locking Mechanisms) (1) lock 关键字 (2) Monitor 类 2. 跨进程互斥机制 3. 信号量机制 (1) Semaphore 和 SemaphoreSlim 4. 读写锁机制 (1) ReaderWriterLockSlim 5. 原子操作机制 (1) Interlocked 类 6. 自旋锁机制 (1) SpinLock 线程互斥是一种…...

渗透测试学习-概述

1.渗透测试 渗透测试( Penetration Testing &#xff09;是指受信任的第三方通过模拟黑客的攻击技术与手段对目标网络、系统进行攻击测试&#xff0c;发现目标的安全隐患并给出安全加固建议的一种安全测试与评估方法。 具体来讲&#xff0c;渗透人员在不同的位置&#xff08;…...

一键解锁Landsat 9地表温度计算!ENVI与ArcGIS Pro全流程详解(无需NASA大气校正)

为什么选择Landsat 9的L2SP数据&#xff1f; 之前&#xff1a;《ArcGIS与ENVI——基于landsat与Modis影像的遥感技术的生态环境质量评价》&#xff0c;基于Landsat前期的产品计算温度反演数据需要一系列复杂的步骤。 现在&#xff1a; Landsat 8-9的Collection 2 Level-2&…...

线代第七课:范德蒙德压缩

比如&#xff1a; 解析&#xff1a; 观看笔记来源&#xff1a; 《线性代数》教学视频 宋浩老师&#xff08;2024年更新&#xff09;...

Spark-SQL(一)

Spark SQL 概述 Spark SQL是Apache Spark用于处理结构化数据的模块 特点 1 易整合。无缝的整合了 SQL 查询和 Spark 编程 2 统一的数据访问。使用相同的方式连接不同的数据源 3 兼容 Hive。在已有的仓库上直接运行 SQL 或者 HQL 4 标准数据连接。通过 JDBC 或者 ODBC 来连…...

(自用)window防火墙关闭

自己老师忘了怎么关防火墙&#xff0c;导致每次都要重新找一遍&#xff0c;再下软件&#xff0c;所以写这篇 把这个地方打开可以看到被隔离的软件&#xff0c;然后点击还原即可使用了...

楼宇自控为建筑带来生机,具体表现在哪些方面?

在现代建筑领域&#xff0c;楼宇自控系统宛如一股清新的春风&#xff0c;为建筑赋予了蓬勃的生机与活力&#xff0c;从根本上改变了传统建筑的运行模式&#xff0c;使其朝着高效、智能、舒适的方向大步迈进。那么&#xff0c;楼宇自控究竟在哪些方面为建筑带来了如此显著的变化…...

asp.net Kestrel 和iis区别

Kestrel 和 IIS 都是用于托管 Web 应用程序的服务器&#xff0c;不过它们在多个方面存在显著差异&#xff0c;下面为你详细分析&#xff1a; 1. 所属平台与跨平台能力 Kestrel&#xff1a;是.NET Core 及后续版本的一部分&#xff0c;具备跨平台特性&#xff0c;可在 Windows…...

[原创](Modern C++)现代C++的关键性概念: 优雅地使用现代for循环语句

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、C …...

【第42节】windows双机调试环境搭建和SEH原理剖析

目录 一、windows双机调试环境 1.1 双机调试是什么 1.2 准备工作 1.3 配置步骤 1.3.1 安装 VirtualKD 1.3.2 将target文件夹拷贝到虚拟机 1.3.3 在主机上使用vmmon64.exe监控虚拟机 二、SEH 原理剖析 2.1 TEB 与 FS 概述 2.2 手工注册 SEH 一、windows双机调试环境 …...

一文读懂WPF系列之控件模版数据模板

WPF控件模版数据模板 控件模板&#xff08;ControlTemplate&#xff09;定义方式内联定义&#xff08;直接写在ListBox中&#xff09;资源字典中定义定义方式区别 TemplateBinding 用法对比普通Binding的区别常见误区何时使用 数据模板&#xff08;DataTemplate&#xff09;定义…...

Java设计模式实战:装饰模式在星巴克咖啡系统中的应用

一、装饰模式简介 装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。这种模式创建了一个装饰类&#xff0c;用来包装原有的类&#xff0c;并在保持类方法签名完整性的前…...

L2TP实验(无图后补)

拓扑图 一、搭建拓扑并配置基础 IP 地址 设备选型与拓扑搭建&#xff1a;在 eNSP 中&#xff0c;拖入所需设备&#xff0c;包括 LAC&#xff08;L2TP Access Concentrator&#xff0c;L2TP 接入集中器 &#xff09;、LNS&#xff08;L2TP Network Server&#xff0c;L2TP 网络服…...

AT_abc398_e [ABC398E] Tree Game 题解

题目传送门 题目大意 题目描述 本题是一道交互题&#xff08;你的程序需要通过输入输出与评测系统进行交互&#xff09;。 给定一棵包含 N N N 个顶点的树 G G G&#xff0c;顶点编号为 1 1 1 至 N N N。第 i i i 条边连接顶点 U i U_i Ui​ 和 V i V_i Vi​。 你和…...

使用SVM对心脏数据是否患病进行分类预测

作者简介 杜嘉宝&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2024级研究生 研究方向&#xff1a;变压器故障预警与检测 电子邮件&#xff1a;djb857497378gmail.com 王子谦&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2024级研究生&a…...

作业帮前端面试题及参考答案 (100道面试题-上)

HTML5 的优势是什么? HTML5 作为 HTML 语言的新一代标准,具有众多显著优势,为现代网页开发带来了诸多便利与革新。 在语义化方面,HTML5 引入了大量具有明确语义的标签,如<header>、<nav>、<article>、<section>、<aside>、<footer>等…...

docker部署GPUStack【Nvidia版本】

以下是使用 Docker 部署 GPUStack 的步骤和注意事项 参考文章&#xff1a;https://docs.gpustack.ai/latest/installation/docker-installation/ 1. 前置条件 安装 Docker&#xff1a;确保已安装 Docker 引擎&#xff08;建议最新稳定版&#xff09;。NVIDIA 环境支持&#x…...

处理Long类型长度超长导致前端精度丢失问题

1&#xff0c;问题场景 后端返回的Long类型的数据&#xff0c;超10000000000000000&#xff0c;前端处理的时候&#xff0c;数据被截断了。比如tchId: 11073477511443988481&#xff0c; 前端根据tchId获取下一环节信息的时候&#xff0c;传的tchId变成了11073477511443988400&…...

突破亚马逊壁垒,Web Unlocker API 助您轻松获取数据

目录 一、Web Unlocker API简介二、开始使用Web Unlocker API1、首先进入控制台页面&#xff0c;点击左侧第一个tab键“代理 & 抓取基础设施”&#xff0c;找到“网页解锁器”&#xff0c;开始使用。2、进入网页解锁器页面后&#xff0c;填写通道名称&#xff0c;添加简短描…...

工业环境中的安全利器:如何挑选优质安全工具柜

工业生产的复杂环境里&#xff0c;安全工具柜可绝不是个简单的 “储物箱”&#xff0c;它是保障生产安全、提升工作效率的秘密武器。不管是电力维修车间里琳琅满目的绝缘工具&#xff0c;还是化工实验室里的精密仪器&#xff0c;安全工具柜都肩负着妥善收纳、保护的重任。那到底…...

UNITY 屏幕UI自适应

1.主要就是根据屏幕的选择根据尺寸 和UI的锚点和中心点来选择&#xff0c;也可以通过代码来动态修改 2.参考视频&#xff1a;Unity UGUI屏幕自适应看这个就够了_哔哩哔哩_bilibili...

【Linux】VIM 编辑器,编辑加速引擎

目录 vim中的五种常见模式介绍VIM的基本操作安装VIMVIM中的模式切换 VIM指令集命令模式指令集底行模式指令集视图模式指令集替换和插入模式 end vim中的五种常见模式介绍 正常/普通/命令模式【Normal mode】 控制屏幕光标的移动&#xff0c;字符、字或行的删除&#xff0c;移动…...

【vue】class和styles绑定

一、 用来控制样式是否展示 二、style 行内样式 三、自定义属性绑定...

route

1、 传统web应用vs单页面web应用 1.1、传统web应用 传统web应用&#xff0c;又叫做多页面web应用&#xff1a;核心是一个web站点由多个HTML页面组成&#xff0c;点击时完成页面的切换&#xff0c;因为是切换到新的HTML页面上&#xff0c;所以当前页面会全部刷新。 1.2、单页…...

设备监控---保障企业IT基础设施稳定运行

引言 在数字化转型的今天&#xff0c;企业的IT基础设施规模不断扩大&#xff0c;网络设备、服务器、存储系统、云资源等构成了复杂的IT环境。如何确保这些设备的高效运行&#xff0c;及时发现并解决潜在问题&#xff0c;成为IT运维团队的核心任务。设备监控---作为IT运维的基础…...

牙科CAD技术方案

本牙科CAD系统旨在打造一个数字化牙科设计的高性能CAD/CAM软件&#xff0c;提供从修复体设计&#xff08;如牙冠、牙桥、贴面、活动义齿&#xff09;到生产准备的全流程解决方案。系统整合多源数据&#xff08;口内扫描、DICOM文件、颌骨运动数据等&#xff09;实现精准设计&am…...

Shell编程之循环语句

目录 for循环语句 for语句的结构 for语句应用示例 根据姓名列表批量添加用户 根据IP地址列表检查主机状态 使用while循环语句 while语句的结构 while语句应用示例 批量添加规则编号的用户 猜价格游戏 until循环语句 until语句的结构 until语句应用示例 计算1-50的…...

ECMAScript 11 新特性

ECMAScript 11 新特性 ECMAScript 6 新特性&#xff08;一&#xff09; ECMAScript 6 新特性&#xff08;二&#xff09; ECMAScript 7~10 新特性 ECMAScript 11 新特性&#xff08;本文&#xff09; 1. 私有属性 在类的内部&#xff0c;通过在属性前添加 # 来表示私有属性。 …...

恶意外联情况监测-火绒、DNSLookupView(联网、禁用网卡、仅主机模式请求测试)

恶意外联情况监测-火绒、DNSLookupView(联网、断网、仅主机模式时的请求测试) 结论: 联网时&#xff1a; wireshark、火绒捕获 域名请求、IP请求 DNSLookupView捕获域名请求&#xff0c;无法捕获IP请求 禁用网卡时: 仅DNSLookupView捕获域名请求&#xff0c;无法捕获IP请求。…...

顺序表与Myarraylist

对于所有编程语言来说&#xff0c;数据结构都是精华 一个计算机程序数据结构算法&#xff1b; 我在之前的博客中写了关于集合框架与泛型&#xff0c;这就是数据结构的开始&#xff0c;我今天说的便是数据结构的第一个线性数据结构--顺序表 顺序表是一种线性数据结构&#xf…...

Redis 版本变更的变化

Redis 版本变更的变化 以下是 Redis 主要版本的清单及其核心功能变化的梳理&#xff0c;按时间顺序整理关键版本演进 8版本没有整理&#xff1a; Redis 1.0 (2009) 初始版本&#xff1a;发布首个稳定版本&#xff0c;支持基本键值存储。 核心特性&#xff1a; 支持字符串&…...

kubernetes》》k8s》》ConfigMap 、Secret

configmap官网 ConfigMap是一种 API 对象&#xff0c;使用时&#xff0c; Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap将配置和Pod解耦&#xff0c;更易于配置文件的更改和管理。ConfigMap 并不提供保密或者加密功能。 如果你想存储的数据是机密的…...

【React】基本语法

基本语法 通过jsx的语法可以在js中写html函数组件 / class组件的语法、父子组件传参、事件react 生命周期根据状态(数据)动态渲染组件 / 列表渲染 / 表单渲染class组件中的ref、ref回调函数 什么是react &#xff1f; 用于构建用户界面的 JavaScript 库&#xff0c;主要用于构建…...

ubunut24.04 bash和zsh同时使用conda

文章目录 ubunut24.04 bash和zsh同时使用conda功能一、安装miniconda3二、bash中初始化conda以及安装命令补全1. bash中初始化conda2. bash中安装conda命令补全功能 三、zsh中初始化conda以及安装命令补全1. zsh中初始化conda2. zsh中安装conda命令补全功能3. 在~/.zshrc文件中…...

深度学习入门:神经网络

目录 1. 从感知机到神经网络1.1 神经网络的例子1.2 复习感知机1.3 激活函数登场 2 激活函数2.1 sigmoid函数2.2 阶跃函数的实现2.3 阶跃函数的图形2.4 sigmoid函数的实现2.5 sigmoid函数和阶跃函数的比较2.6 非线性函数2.7 ReLU函数 3 多维数组的运算3.1 多维数组 恒等函数soft…...

Unity有限制状态机FSM

我是标题 前言有限制状态机框架框架图&#xff1a;主要代码&#xff1a; 前言 一般的小型游戏的状态机会使用一个枚举类来枚举所有的状态&#xff0c;然后使用一个switch case来处理所有状态的行为逻辑&#xff0c;但是用这种方式会形成大量的冗余&#xff0c;因为所有的行为逻…...

bash的特性-命令和文件自动补全

在Linux或Unix操作系统中&#xff0c;Bash&#xff08;Bourne Again SHell&#xff09;是最常用的命令行解释器之一。它提供了丰富的功能来提升用户的交互体验&#xff0c;其中命令和文件名的自动补全是提高效率的一大利器。本文将详细介绍Bash中的自动补全功能&#xff0c;包括…...

聊聊价值投资

投资的必要性 如果手上现在有10w元&#xff0c;投资时间是50年&#xff0c;就算年化收益率只有15%&#xff0c;最终的财富值也会超过1亿元。而且通货膨胀会让你的存款购买力越来越少&#xff0c;如果你有无法及时花出去的钱&#xff0c;投资是必要的。05年的时候我家楼下的包子…...

ADI的BF561双核DSP怎么做开发,我来说一说(十六)触摸屏的设计

作者的话 ADI的双核DSP&#xff0c;最早的一颗是Blackfin系列的BF561&#xff0c;这颗DSP我用了很久&#xff0c;比较熟悉&#xff0c;且写过一些给新手的教程。 硬件准备 ADZS-BF561-EZKIT开发板&#xff1a;ADI原厂评估板 AD-ICE20000仿真器&#xff1a;ADI现阶段性能最好…...

基于labview的2PSK调制与解调

前面板如上图所示。 以上为产生随机序列的程序 以上为星座图程序 如需要源代码可联系我...

2021-11-01 C++输入十个数求最大最小和第二大第二小的值

缘由c语言输入十个数求最大最小和第二大第二小的值-编程语言-CSDN问答 这是个有意思的题目&#xff0c;考虑可扩展...如果是4个元素的数组&#xff0c;实现O&#xff08;N&#xff09;排序 void 输入十个数求最大最小和第二大第二小的值() {//缘由https://ask.csdn.net/ques…...

红人矩阵化运营策略:2025跨境电商如何高效布局海外红人营销

在全球社交媒体营销日益精细化的今天&#xff0c;跨境电商品牌正从单一红人合作转向系统化、团队化的“红人矩阵化运营”。尤其在TikTok、Instagram、YouTube等主流平台逐渐成熟的背景下&#xff0c;如何构建高效的海外红人营销矩阵&#xff0c;成为品牌实现全域曝光与精准转化…...

c# Kestrel

Kestrel 是 .NET 中用于 ASP.NET Core 应用程序的跨平台 Web 服务器。它是轻量级且高性能的&#xff0c;能够处理大量并发连接&#xff0c;常被用作 ASP.NET Core 应用的默认服务器。以下为你介绍 Kestrel 的基本使用和配置&#xff1a; 基本使用 创建一个简单的 ASP.NET Cor…...

算法训练之贪心

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...

ThreeJs实现裸眼3D地球仪

一、实现效果 使用Three.js实现裸眼3D地球仪 二、实现代码 代码如下&#xff1a; <!DOCTYPE html> <html> <head><title>3D Earth</title><style>body { margin: 0; }canvas { display: block; }</style> </head> <body…...

0x07.Redis 的 hash 是什么?

回答重点: Redis 的 Hash 是一种键值对集合,允许将多个字段与其对应的值存储在同一个键中,从而方便管理和操作关联数据。它的主要特点包括: 高效存储:Hash 采用哈希表实现,能够在内存中高效地存储和操作小规模的数据集,非常适合存储对象的属性。快速操作:支持对字段的…...

今日一记:逆序打印字符、五人年龄计算、对N个数排序

今日进行三道题的练习 题目一&#xff1a;逆序打印字符 核心需求&#xff1a;将输入的n个字符以相反顺序输出。 算法分析&#xff1a; 递归思想&#xff1a; 递归函数先读取字符&#xff0c;直到输入结束&#xff08;如换行符或EOF&#xff09;。 在递归返回时打印字符&…...