- 博客(51)
- 收藏
- 关注
原创 Java中用Stream流取出分组后每组最大值对象的ID
方法1:先获取对象再提取ID,方法2:直接在收集时提取ID(更高效),方法3:使用toMap收集器(简洁版)
2025-03-27 16:56:03
660
原创 Java中用Stream流取出分组后每组中最大值对应的对象
groupingBymaxBy会产生结构需要额外处理Optional才能得到实际对象推荐使用方法2或方法4,它们在性能和可读性上表现较好如果确定每组都有值,可以使用替代。
2025-03-27 16:51:01
473
原创 如何理解java中Stream流?
在Java中,Stream是 Java 8 引入的一个强大API,用于处理集合(如ListSetMap等)数据的流式操作。它提供了一种声明式、函数式的编程风格,可以高效地进行过滤、映射、排序、聚合等操作。
2025-03-21 15:39:04
1304
原创 Spring中BeanFactory的核心功能
BeanFactory是一个核心接口,它是Spring IoC(控制反转)容器的基础,负责管理Spring应用中的Bean(对象)。提供了配置框架和基本功能,用于创建、配置和管理Bean。如果需要更丰富的功能(如事件发布、AOP等),推荐使用。如果你只需要基础的IoC功能,可以使用。是Spring的基础容器,而。在Spring框架中,
2025-03-21 09:44:26
319
原创 Spring中DI与IOC的关系解析
IOC是控制权的反转。DI是实现IOC的具体方式,通过注入依赖来管理对象间的关系。Spring通过DI机制实现了IOC,简化了对象的管理和依赖关系的处理。
2025-03-19 11:30:01
235
原创 物联网设备接入系统后如何查看硬件实时数据?
通过InfluxDB存储设备数据,结合后端API和前端实时通信技术(如WebSocket或SSE),可以高效实现硬件设备信息的实时查看。硬件设备通过MQTT、HTTP或其他协议将数据发送到后端,后端将数据写入InfluxDB。可以参考前面的Java代码实现数据写入。要在软件中实时查看硬件设备的信息,通常需要结合前后端技术来实现。后端需要提供API接口,用于查询设备的历史数据和实时数据。: 返回设备在某个时间范围内的数据。: 返回设备的最新数据。
2025-03-08 10:22:48
972
原创 Java集成InfluxDB
通过InfluxDB的Java客户端,可以轻松地将硬件设备发出的数据存储到时序数据库中。主要步骤包括创建客户端、写入数据点和查询数据。InfluxDB的高效存储和查询能力使其非常适合处理物联网设备的实时数据。
2025-03-08 10:14:10
361
原创 物联网实时数据存储方案选择
选择存储方案时,需综合考虑数据类型、访问频率、延迟要求、扩展性、成本等因素。通常,时序数据库适合实时数据,NoSQL适合非结构化数据,关系型数据库适合结构化数据,分布式文件系统和数据湖适合大规模存储,边缘存储适合低延迟场景。
2025-03-08 10:04:26
530
原创 200W数据去重入库的几种方法及优缺点
数据一致性方面,方法一在数据库内去重,可以利用数据库的事务和约束(如唯一索引)来保证数据一致性,但如果在去重过程中出现故障,可能需要回滚或修复。方法二如果在应用层去重,需要确保去重逻辑正确,否则可能导致数据重复,特别是多线程处理时需注意线程安全。方法二在入库时已经是去重后的数据,减少了数据库的写入压力,但需要应用层处理去重,可能消耗更多应用服务器资源。资源消耗方面,方法一可能对数据库资源消耗更大,因为需要在数据库内进行去重操作,尤其是处理200万数据时,可能占用大量CPU和内存。另外,是否需要实时性。
2025-03-05 17:16:21
677
原创 处理200万条数据去重并入库,耗时100秒,如何优化进一步提升性能?
内存去重:使用高效的数据结构(如HashSet或HashMap)在内存中去重,避免重复数据进入数据库。分批去重:如果内存不足,可以将数据分批次去重,减少内存压力。并行去重:使用多线程并行处理去重任务。
2025-03-05 16:32:26
409
原创 JeecgBoot、RuoYi 和 Renren-fast三个流行的 Java 开源框架对比
JeecgBoot、RuoYi 和 Renren-fast 是三个流行的 Java 开源框架,广泛应用于企业级应用开发。它们各有优缺点,适用于不同的开发场景。
2025-02-25 10:48:54
903
原创 Java多线程慢SQL查询问题及解决方案
慢查询会阻塞执行它的线程,导致线程无法及时释放,进而影响其他任务的执行。数据库连接池耗尽:如果使用连接池,慢查询会长时间占用连接,可能导致连接池耗尽,其他线程无法获取连接。线程池耗尽:如果使用固定大小的线程池,慢查询会占用线程,可能导致线程池耗尽,新任务无法执行。慢查询会拖慢整体程序性能,导致响应时间变长,吞吐量下降。如果慢查询返回大量数据且未及时释放,可能导致内存占用过高,甚至内存泄漏。多个慢查询同时执行会增加数据库负载,可能引发数据库性能问题,如锁争用、死锁等。
2025-02-25 10:38:27
294
原创 IntelliJ IDEA快捷键大全 + 动图演示!
执行该命令后,IntelliJ IDEA 会编译项目中所有类,并将编译结果输出到out目录中。支持增量构建,会在上次构建的基础上,仅编译修改的类。
2023-08-01 15:14:10
676
原创 MySQL中这14个小玩意,让人眼前一亮(group_concat、char_length、locate、replace等函数用法)!!!
MySQL中这14个小玩意,让人眼前一亮!!!
2023-05-11 16:24:42
244
原创 ureport2导出多sheet页报表(动态分页、静态分页、自定义每个sheet页名称)
Ureport2导出多个sheet页报表(动态分页、静态分页、自定义每个sheet页名称)
2023-02-21 15:57:54
3038
1
原创 UReport2报表图片显示
UReport2图片2.自定义图片路径自定义就需要重新实现接口ImageProvider,ApplicationContextAware,自定义默认路径,代码如下:自定义实现接口后,此时就可以在设计页面配置自定义的 E:\ureportfiles\picture目录下图片或http https开头的的网络图片了
2023-01-06 11:29:22
1662
1
原创 请sql查出version、os 一致的手机号码(一张表中有多个字段数据一致的统计)
请sql查出version、os 一致的手机号码表结构如下:SQL:SELECT m.tel, m.version, m.os FROM mng_user_info m , ( SELECT u.version, u.os FROM mng_user_info u GROUP BY u.version, u.os HAVING COUNT( 1 ) > 1 ) ssWHERE m.version = ss.version AND m
2022-05-19 14:56:10
611
原创 super关键字的用法
super关键字的用法先看一段代码:class Person{ protected String name; public Person(String name) { this.name = name;}}class Student extends Person{ private String name; public Student(String name, String name1) { super(name); this.name = name1; } public
2022-04-22 21:08:30
100
原创 SpringBoot开发常用注解小结
@Controller表明一个注解的类是一个"Controller",也就是控制器,可以把它理解为MVC 模式的Controller 这个角色。这个注解是一个特殊的@Component,允许实现类通过类路径的扫描扫描到。它通常与@RequestMapping 注解一起使用@Service表明这个带注解的类是一个"Service",也就是服务层,可以把它理解为MVC 模式中的Service层这个角色,这个注解也是一个特殊的@Component,允许实现类通过类路径的扫描扫描到@Reposito
2022-04-20 12:49:17
183
原创 MyBatis动态SQL标签的用法
1.MyBatis动态SQLMyBatis 的强大特性之一便是它的动态 SQL,即拼接SQL字符串。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中。动态 SQL 元素和使用 JST
2021-09-06 21:03:45
1209
转载 Redis常见面试题总结
1.什么是Redis? Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。 Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Valu
2021-07-06 23:27:33
111
原创 MQ中间件2021.7最新面试题
1. MQ类型:MQ类型描述RabbitMQerlang开发,对消息堆积的支持并不好,当大量消息积压的时候,会导致 RabbitMQ 的性能急剧下降。每秒钟可以处理几万到十几万条消息RocketMQjava开发,面向互联网集群化功能丰富,对在线业务的响应时延做了很多的优化,大多数情况下可以做到毫秒级的响应,每秒钟大概能处理几十万条消息。KafkaScala开发,面向日志功能丰富,性能最高。当你的业务场景中,每秒钟消息数量没有那么多的时候,Kafka 的时延反而会比较高
2021-07-04 23:21:43
306
3
原创 《JAVA编程思想》中对static关键字理解
通常来说,当创建类时,就只在描述那个类的对对象和外观。除非用new创建那个类的对象,否则,实际上并未获取任何对象,执行new来创建对象,数据存储空间才可以被分配,其方法才供外界调用。有两种情形用上述方法是无法解决的,一种情形是,只想为特定域分配单一的存储空间,而不去考虑究竟要创建多少的对象,甚至根本就不创建对象。另一种情形是,希望某个方法不与包含它的那个类的对象关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。...
2021-03-23 23:45:38
114
原创 统计表中不同类型不同状态的个数?
需求:统计表中不同类型不同状态的的个数直接上图:数据库表样子如下:需要页面统计的列表样子:SQL:select 产品名称,sum(case when 完成状态='0' then 1 else 0 end) as 已完成个数,sum(case when 完成状态='未处理' then 0 else 0 end) as 未完成个数,from 表名group by 产品名称...
2021-03-15 18:51:34
335
原创 jpress_wars需要的在这拿
链接:https://pan.baidu.com/s/1r4N_v8iFcKHITwJuhAnN3Q提取码:9ibe
2020-12-09 09:40:29
257
原创 JMeter 简单分析结果树、聚合报告以及图形结果
结果树取样器结果:返回值报200,表示执行接口调试成功请求:发送的数据响应数据:返回的数据Thread Name:线程组名称Sample Start: 启动开始时间Load time:加载时长Latency:等待时长Size in bytes:发送的数据总大小Headers size in bytes:发送数据的其余部分大小Sample Count:发送统计0Error Count:交互错误统计Response code:返回码Response message:返回信息Resp
2020-12-03 22:10:28
2365
原创 Jmeter设置token
项目一般都需要进行登陆才能进行后续的操作,登陆有时发送的请求会带有token,因此,需要需要提取token,然后设置成全局变量。1.创建好线程组后,选择http请求2.配置相关信息3.添加监听器,查看结果4.启动5.复制token值6.线程组添加http信息头管理器7.配置http信息头管理器8.启动测试的接口,测试通过。...
2020-12-01 10:48:35
6579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人