自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 JDK21新特性-序列集合

序列集合是指元素有明确顺序的集合,如List、Deque等。Java 21为这类集合引入了统一的API。

2025-12-19 15:44:26 321

原创 JDK21-记录模式/swich模式匹配

通过switch表达式和语句的模式匹配来增强Java编程语言。通过将模式匹配扩展到switch,可以针对多个模式测试表达式,每个模式都有一个特定的操作,从而可以简洁、安全地表达复杂的面向数据的查询。Java 19引入的Record Patterns功能。这个语法允许在instanceof和switch表达式中直接解构record对象的组件。参数: Object obj - 接收任意类型的对象。代码简洁:避免了额外的类型转换和getter调用。直接解构:可以直接从record中提取字段值。

2025-12-19 11:07:31 361

原创 jkd8特性

Collectors是 Stream API 的核心工具类,提供了一系列静态工厂方法,用于将 Stream 流中的元素收集为集合(List/Set/Map)、值(求和 / 计数 / 最值)、字符串等,支持并行处理,且用法灵活。2、toList() 实现不固定:Java 8 中默认返回 ArrayList,但官方未明确约定,若需固定集合类型(如 LinkedList),建议用 toCollection(LinkedList::new);) 再收集,不能直接用 Collectors.filtering;

2025-12-08 17:36:36 608

原创 关于开发面对颠覆性需求变更的思考

有了任务分解的视角,我需要将一个大的目标进行拆解,如果我要达成这个目标,整体解决方案是远远不够的,我需要把任务分解成一个一个小的部分。站在以终为始的角度,我需要了解真正的目标是什么,所以,我会关心为什么要做这个特性。接下来,要关注实现路径,用户会怎么用,是否有其他的替代手段,需要了解产品经理的设计是经过思考的,还是“拍着脑袋”给出的。所以,我要不断地问问题,确保自己的理解和产品经理交代的内容一致。一方面,我会了解到更多的细节,另一方面,当时间紧迫的时候,我会和产品经理来谈谈究竟优先实现哪个场景。

2025-08-11 15:24:57 371 1

原创 Flink-05学习 接上节,将FlinkJedisPoolConfig 从Kafka写入Redis

上节成功实现了FlinkKafkaConsumer消费Kafka数据,并将数据写入到控制台,接下来将继续将计算的结果输入到redis中。

2025-07-04 23:16:44 378

原创 Flink-04学习 FlinkKafkaConsumer消费Kafka数据

添加pom.xml文件,kafka相关的包。

2025-06-23 16:12:07 359

原创 Mac m1 通过docker镜像安装kafka

kafka依赖zookeeper,因此需要使用docker同时安装zookeeper和kafka。macOS的docker在容器和宿主之间无法通过ip直接通信,因此在安装的时候需要特殊注意与ip相关的设置。当容器需要访问宿主ip时,需要使用docker.for.mac.host.internal或者host.docker.internal代替。

2025-06-18 23:00:56 445

原创 持续集成 CI/CD-Jenkins持续集成GitLab项目打包docker镜像推送k8s集群并部署至rancher

点击Allowed branches下的Filter branches by regex进行选择监听的分支,正则匹配 .*test 分支并点击Generate生成Secret token的token,取消默认选择Allow all branches to trigger this job。以test分支为例 提交即部署。注意:如果harbor中无项目,这里要去harbor中添加项目需要的存储位置。填写 Description,项目的描述尽可能的详细,方便维护。url为项目的git地址,及选择的git用户。

2025-06-18 15:08:34 800

原创 Flink03-学习-套接字分词流自动写入工具

上一节中通过如下命令启动服务摸来模拟Socket流。现在我们写一个ServerSocket来模拟让流自动写入不用手动操作。pom.xml和上一节一致不需要修改。

2025-06-03 23:08:47 775

原创 Flink-02学习-套接字分词

连接的 IP 地址为 0.0.0.0(监听所有网络接口)

2025-04-27 22:50:24 838

原创 java-mybatis01

MyBatis 是一款优秀的 基于 ORM 的半自动轻量级持久层框架,它支持定制化的 SQL、存储过程以及高级映射,MyBatis 避免了几乎所有 JDBC 代码和手动设置参数以及获取结果集。ORM把关系数据库包装成面向对象的模型,采用ORM框架后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象,而ORM框架则将这些面向对象的操作转换成底层SQL。ORM完成面向对象的编程语言DAO关系数据库的映射后,开发人员可以利用面向对象设计语言的建议易用性,也可利用关系数据库的技术优势。

2025-04-27 22:04:50 559

原创 Flink-01学习 介绍Flink及上手小项目之词频统计

官网概述学习Flink具体包括四个关键概念:流数据的持续处理,事件时间,有状态流处理和状态快照。Apache Flink 是一个开源的流处理框架,旨在处理批处理和实时数据处理,具有高吞吐量和低延迟的特点。Apache Flink 是一个用于对无界和有界数据流进行有状态计算的框架和分布式处理引擎。Flink 被设计为可在所有常见的集群环境中运行,并以内存速度和任意规模执行计算。特点流处理:Flink 将批处理视为流处理的一种特殊情况。这种方法允许实时数据处理,实现即时的洞察和行动。

2025-04-17 19:13:29 967

原创 Redis的常见的问题(穿透、雪崩、击穿、热key、大key、不一致)

产生原因:大量的应用请求无法在 Redis 缓存中进行处理,紧接着,应用将大量请求发送到数据库层,导致数据库层的压力激增。1、对空值进行缓存:对于DB中没有的数据,进行redis缓存,假如上述的-0数据在DB中没有,那么可以在redis中对-=对数据进行空值缓存(key = -0,value = 0),那么当请求过来的时候,会返回一个null值。产生原因:redis缓存中没有数据,但是数据库中有数据,大量的请求访问redis中找不到数据,直接打入数据库,可能造成数据库压力太大,数据库崩溃,叫缓存击穿。

2023-03-19 23:22:01 516

原创 10.20 第一次复盘

10.20 个人第一次复盘项目项目背景项目初始阶段,预防后期新增不同类型场景,限定了页面的格式并且将每个都进行了路由限定,以此限定场景项目改变

2022-10-21 11:33:03 228

原创 简单的python基础

Python 崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。与 Java 和 C++ 这些语言相比,Python 最大的两个特点是:python是一种弱类型语言,变量的定义不需要在前加类型说明,而且不同类型之间可以方便地相互转换。python有五个标准的数据类型:其中 List、Tuple、Dictionary 为容器,Python 支持四种不同的数字类型:int(有符号整型)、long(长整型)、float(浮点型)、complex(复数)。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

2022-07-14 10:59:11 347

原创 websocket消息推送

什么是websocketwebsocket协议是基于TCP的一种新的网络协议,实现浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。为什么需要websocket?因为http协议的通信只能由客户端发起,做不到服务器主动向客户端发送消息。maven依赖 <dependency> <groupId>org.springframework.boot</groupId> &lt

2022-04-12 10:04:08 1088

转载 alibaba-cloud- 学习1

阿里开源组件Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config。Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。RocketMQ:开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。Dubbo:在国内应用非

2022-03-21 15:01:43 4271

原创 java9 -springboot排序的另外一种方式

首先,在需要排序的返回的VO字段中,需要实现一个方法。public class StatisticsListVO implements Comparable<LifeVillageAcceptanceStatisticsListVO> {; /** * totalTasks 总任务数 **/ @ApiModelProperty(value = "总任务数") private Integer totalTasks; @Override

2022-03-15 13:43:55 782

原创 java8 - 排序,包括double类型的排序

首先将所有的数据放到了一个List中,然后以List中的某个字段进行排序// 当List中的字段为int类型的时候, // 降序 resultList.sort((o1, o2) -> { int d1 = o1.getNums(); int d2 = o2.getNums(); return (d2-d1); }); // 升序 resul

2022-03-11 15:55:47 3438

原创 java7 - 灵活返回list对象

创建一个返回对象VO将需要灵活返回的字段set进去 LifeBasicInformationVO lbiVO = new LifeBasicInformationVO(); lbiVO.setKey("所属派出所"); lbiVO.setValue(lifeCommunity.getPoliceBureauName()); resultList.add(lbiVO); // 所属街道(乡镇) lbiVO = new .

2022-03-11 15:46:57 1044

原创 java6 - split(“%“)的用法

split("%")[0] 得到的是第一个%之前的内容split("%")[1] 得到的是第一个%和第二个%之间的内容

2022-03-11 14:57:29 566

原创 java6 -- fastFdfs在java高并发下中的应用(图片上传),上线测试无误

高并发下多线程发送图片分文件夹存储到fastDFS中

2022-02-28 10:12:24 685

原创 力扣初级算法 - 数组 - 删除排序数组中的重复项

题目:给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。作者:力扣 (

2022-02-26 08:34:40 342

原创 VUE学习 -- 组件基础及组件注册

组件基础

2022-02-15 11:28:37 109

原创 java5 --调用接口工具类

写了一个可以调用的接口的工具类package com.switchcloudonemachineonegear.utils;/** * @author songxue * @date 2022-01-19 16:52 */import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReference;import org.apache.http.NameValuePair;import org.apache.http.

2022-02-11 14:27:50 405

原创 java4 -- SpringBoot定时任务调度

一、定时删除数据库记录

2022-02-11 09:53:23 2072

原创 Vue学习 -- 第一个Vue程序

安装vue官方提供了CDN引用和NPM引用,为了便于学习,我们首先选择用CDN的方式进行引用。第一个vue程序首先,我们先来写一个老生常谈的helloworld,来进入vue世界。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> &l

2022-01-12 16:28:26 158

原创 Vue学习 -- 开启Vue简介

Vue的特点更加轻量 20kb min + gzip渐进式框架响应式的更新机制学习成本低接下来的学习计划基础篇:VUE核心知识点生态篇:大型VUE项目所需的周边技术实战篇:开发基于VUE的Ant Design Pro福利篇:VUE3.0相关知识介绍...

2022-01-12 09:08:05 209

原创 MySQL学习 -- 数据库设计三范式

什么是设计范式?设计表的依据。按照这个三范式设计的表不会出现数据冗余。三范式都是哪些?第一范式:任何一张表都应该有主键,并且每一个字段原子性不可再分。第二范式:建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部门依赖。—多对多的时候,三张表,关系表中两个外键。第三范式:建立在第二范式的基础之上,所有非主键字段直接依赖主键,不能产生传递依赖。注意:在实际的开发中,以满足客户的需求为主,有时候会那冗余换执行速度。一对一怎么设计?...

2022-01-11 16:58:32 349

原创 MySQL学习 -- DBA命令

2022-01-11 15:12:20 321

原创 MySQL学习 --视图

视图(view)什么是视图?站在不同的角度去看待数据(同一张表的数据,通过不同的角度去看待)视图是一种根据查询(也就是SELECT表达式)定义的数据库对象,用于获取想要看到和使用的局部数据。视图有时也被称为“虚拟表”视图可以被用来常规表(称为“基表”)或其他视图中查询数据。相对于从基表中直接获取数据,视图有以下好处:1、访问数据变得简单。2、可被用来对不同用户显示不同的表的内容用来协助适配表的结构已适应前端现有的应用程序。怎么创建视图create view myview as se

2022-01-11 14:55:12 719

原创 MySQL学习 -- 索引

索引什么是索引?有什么用?索引就相当于一本书的目录,通过目录可以快速的找到对应的资源。在数据库方面,查询一张表的时候,有两种检索方式:全表扫描根据索引检索(效率很高)索引为什么可以提高检索效率?根本的原理是缩小了扫描的范围。索引虽然可以提高检索效率,但是不能随意的添加索引,因为索引也是数据库当中的对象,也需要数据库不断的维护。是有维护成本的。比如,表中的数据经常被修改这样就不适合添加索引,因为数据一旦修改,索引需要重新排序,进行维护。添加索引是给某一个字段或者说某些字段添加索引。怎么创

2022-01-05 15:45:33 288

原创 java3 -- list判空

首先有一个list的列表。比如nameList。if(nameList.isEmpty) { // 这是表明nameList的列表为空,接下来就可以写逻辑了}

2021-12-18 09:55:37 529

原创 java - 时间工具 -给出最早时间和最晚时间,得到之间的所有时间的年-月

public static List<String> getMonthTimeList(Date start ,Date end) { Calendar calStart = Calendar.getInstance(); Calendar calEnd = Calendar.getInstance(); // 格式化起始日期 和结束日期 calStart.setTime(start); calEnd.setTime

2021-12-17 16:48:03 1645

原创 java 1 ---list的倒序输出

首先有一个list然后Collections.reverse(resultList);

2021-12-17 14:14:34 603

原创 MySQL学习 -- 事务

事务Transaction什么是事务?一个事务是一个完整的业务逻辑单元,不可再分。要想保证以上的两条DML语句同时成功或者同时失败,那么就需要使用数据库的“事务机制”。和事务相关的语句只有:DML语句。(insert ;delete ; update)。因为它们三个语句都是和数据库表当中的“数据”相关的。事务的存在是为了保证数据的完整性,安全性。事务可以保证多个操作原子性,要么全成功,要么全失败。对于数据库来说,事务保证批量的DML的全成功和全失败。事务具有4个特征ACID:原子性(Atom

2021-12-10 16:40:56 907

原创 MySQL学习 -- 存储引擎

存储引擎数据库中各表均被(在创建表时)指定的存储引擎来处理。服务器可用的引擎依赖于以下因素:* MySQL的版本* 服务器在开发时如何被配置* 启动选项为了解当前服务器中有哪些存储引擎可用,可使用SHOW ENGINES语句:完整的建表语句create table `t_x` ( 'id' int(11) Default NULL) ENGINE=InnoDB default CHARSET=utf8注意:在MySQL中,凡是标识符是可以用飘号``括起来。最后不用,不通用。建

2021-11-25 15:18:22 142

原创 MySQL学习 -- 约束

约束什么是约束?约束在创建表的时候,可以给表的字段添加相应的约束。添加约束的目的,是为保证表中数据的合法性、有效性、完整性。常见的约束有哪些?非空约束(not null):约束的字段不能为null唯一约束(unique):约束的字段不能重复主键约束(primary key):约束的字段既不能为null,也不能重复(简称PK)外键约束(foreign key):……(简称FK)检查约束(check)注意:Oracle数据库中有check约束,但是mysql没有。目前mysql不支持该约束

2021-11-24 10:51:34 162

原创 MySQL学习 -- 删除表中数据

删除表中数据删除数据语法格式:delete from 表名where 条件;注意:没有条件的话,全部删除。切记!!!!案例:删除10部门数据怎么删除大表?如果数据十分多的话,那么删除的会非常慢。慢的原因是没有释放数据的真实存储空间。使用表的截断truncate table 表名;注意:截断一定要再三确认不需要,截断之后数据不可回滚,永久丢失...

2021-11-17 15:51:11 637

原创 MySQL学习 -- 修改表中数据

修改表中数据修改数据:update语法格式:update 表名set 字段名1 = 值1,字段名2 = 值2 ……where 条件;注意:如果没有条件,那么整张表的数据则会全部更新。案列:将部门10的loc修改为SHANGHAI,将部门名称修改为RENSHIBU。更新所有记录update 表名set 字段1 = 值1;更改/所有的...

2021-11-17 15:38:07 6162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除