Java
javaScript找出两个数组之中不同的元素
在JavaScript中,我们可以使用以下方法找到两个数组中不同的元素: 1. 创建一个函数,将两个数组作为参数传递进去。 2. 在函数内部,创建一个新的空数组,用于存储不同的元素。 3. 使用for循环遍历第一个数组,并使用indexOf()方法检查第二个数组中是否存在相同的元素。 4. 如果第二个数组中不存在当前元素,则将该元素添加到新的数组中。 5. 同样地,使用for循环遍历第二个数组,并
CDP技术系列(一):使用bitmap存储数十亿用户ID的标签或群体
一、背景介绍 CDP系统中目前存在大量由用户ID集合组成的标签和群体,截止当前已有几千+标签,群体2W+。 大量的标签都是亿级别数据量以上,例如性别、职业、学历等均,甚至有群体中的ID数量达到了数十亿+。 并且随着用户ID池的不断增加,标签和群体本身包含的ID数量也随之增加,如何存储如此多的数据,标签与群体之间的组合计算,是我们面临的挑战。 二、问题描述 如此大量的用户ID集合,虽然
java8找出两个集合List<Employee> 中 id相同的元素,再将别的属性合并,放在新的集合里面
可以使用Java 8的Stream API来实现这个需求。具体步骤如下: 1. 创建一个新的集合,用于存放合并后的元素。2. 使用Stream的filter()方法过滤出id相同的元素。3. 使用Stream的map()方法将id相同的元素合并成一个新的元素,其中别的属性可以通过自定义的合并规则来实现。4. 使用Stream的collect()方法将合并后的元素收集到新的集合中。 下面是一个示例代
node+vue开发环境下接口数据传递中的跨域问题
跨域问题产生原因 原因 大部分浏览器自带的保护措施,限制用户在一个域名下请求另一个域名的数据 一、关于跨域 跨域对于前后端开发者来说,就像一块狗皮膏药,无论是面试还是开发中,都会经常遇到。 之所以出现跨域问题,是因为浏览器的同源策略,为了隔离潜在的恶意文件,为了防御来自歪门邪道的攻击,浏览器限制了从同一个源加载的文档或脚本与来自另一个源的资源进行交互。 前面我们提到了,前端跑在 8080 端口
linux安装与VMware安装
Linux第一天 1、为什么要学习linux? 2、怎么去学linux?(什么是大数据) 大数据技术组件 hadoop hive zookeeper hbase spark flink kafka ranger dolphinescheduler es hudi doris .... 大数据的思想(存储,计算,调度,监控) bigdata 数据量很大,大到无法使用一台机器进行存储 10T
【转载】L2Dwidget.js网页二次元看板娘的用法
最近新建了博客,https://yellowgg.cn,许久不更新的博客园想引个流,可以关注一波嗷。 发现某些blog网站左下方或者右下方出现的二次元卡通人物或萌萌阿猫,除了萌,还可以监听鼠标的行为,产生互动的现象。 1. 关于脚本的生成 L2Dwidget.min.js的源码:https://github.com/xiazeyu/live2d-widget.js.git 起初我以为在git中
WebStorm 没有找到本地修改记录LocalChanges,怎么查看本地修改记录
一直用IDEA做后端Java开发,也写过vue+elementUI的前端代码,但前后端都放在一个项目里写,本地修改代码记录,可以在git-LocalChanges中查看修改记录。 最近前后端分离,自己需要单独用WebStorm写前端项目代码,在git里就找不到本地修改记录了,如下图: File --> Setting -->Version Control-->Co
手把手带你上手swagger3
配置POM 只需要加一个依赖,并且要注意,swagger3在springboot2.5版本以上会出现问题 如果高于2.5版本会报错: 解决方法是降低spring的版本到2.5.x以下,或者是降低swagger版本到3以下,或者是在SwaggerConfig注解上标注@EnableWebMvc 配置例子 配置SwaggerConfig 配置实体类 可以看到这个类存在CardInfo嵌套类,对
Flink 中的时间和窗口
在批处理统计中,我们可以等待一批数据都到齐后,统一处理。但是在实时处理统计中,我们是来一条就得处理一条,那么我们怎么统计最近一段时间内的数据呢?引入“窗口”。 所谓的“窗口”,一般就是划定的一段时间范围,也就是“时间窗”;对在这范围内的数据进行处理,就是所谓的窗口计算。所以窗口和时间往往是分不开的。 1.窗口 1.概念 Flink 是一种流式计算引擎,主要是来处理无界数据流的,数据源源不断、无穷无
CDP技术系列(三):百万级QPS的人群命中服务接口性能优化指南
一、背景介绍 CDP系统提供了强大的标签和群体的构建能力,面对海量数据的标签和群体,我们采用了Bitmap+ClickHouse的存储与计算方案。详细内容可以参考之前文章。 有了群体之后,它们被广泛的应用到支付,消金,财富,营销等各种核心业务的用户拉新,交易转化,促活等核心链路中。 而人群应用方式中,基于人群的命中服务,是非常重要的P0级接口(日常TPS峰值40W+,响应耗时50ms以内,大促备战
invalid credential,access_token is invalid or not latest,could get access_token by getStableAccess排查
问题 某次应用上线后,作为一个极其负责的开发者,对生产应用,即App进行功能验收。发现用户输入的敏感词内容没有被检测出来,一开始还以为是前端没有对接后端提供的接口。秉着怀疑他人前先怀疑自己的意识和职业素养,查看起ELK日志来,发现如下报错日志: 排查 初步分析 敏感词检测逻辑方法源码如下: 从Redis里获取到Access-Token,然后拿着这个Access-Token去请求微信提供的敏感
JAVA学习笔记--JDK安装及环境变量配置
Java开发环境搭建 卸载JDK 找到JDK的安装路径,删除JDK的整个文件夹 删除JAVA_HOME (右击我的电脑-->属性-->高级系统设置-->环境变量,即可找到JAVA_HOME) 删除path下关于java的目录 在终端输入java -version,若显示'java'不是内部或外部命令,也不是可运行程序或批处理文件,则成功删除了JDK(如下图)
MapStruct+Maven+Lombok问题NoSuchBeanDefinitionException、does not have an accessible empty constructo排查
概述 先直接说我遇到的问题吧,Spring Boot应用启动失败: PS:上面的报错日志经过硬换行(hard wrap)处理,方便阅读;IDEA打印的日志是经过软换行(soft wrap)显示的: 排查 Spring Boot启动失败不要太常见。 分析 分析一下这个启动报错日志: Spring启动时想注入jwtAuthorizationTokenFilter这个Bean,发现jwtAutho
记一次Kotlin Visibility Modifiers引发的问题
概述 测试环境爆出ERROR告警日志java.lang.IllegalStateException: Didn't find report for specified language,登录测试环境ELK查到如下具体的报错堆栈日志: 排查 这个报错就显得很是莫名其妙,没有一点点熟悉的感觉,像NPE、数组越界啥的。只能去看源码: 至此还是一脸迷惑。 getAssessmentResult 这个方
MySQL子查询、WITH AS、LAG查询统计数据实战
需求 给出一个比较常见的统计类业务需求:统计App(包括iOS和Android两大类)每日新注册用户数、以及累计注册用户数。 数据库采用MySQL,根据上面的需求,不难设计表如下: 由于面对的是一个日活量非常小的App,经常出现每日新增用户数为0的情况。 insert数据落库逻辑如下: 问题 上面的业务逻辑没有问题,运行之后,数据库如下: 表里的数据不是连续的!!没有某个stat_date日
JAVA学习笔记--输出HelloWorld
HelloWorld! 写出人生第一个代码~ 随便新建一个文件夹用于存放代码 新建一个Java文件 新建一个名为Hello的txt文件或其他文本文件,将后缀名改为.java 注意:如果系统没有显示文件后缀名,则需要手动打开 在Hello.java文件中编写以下代码: 找到java文件的路径,在路径前输入cmd和一个空格打开终端(注意:一定要保证是在该java文件的路径下打开)
【南大静态代码分析】作业 4:类层次结构分析与过程间常量传播
作业 4:类层次结构分析与过程间常量传播 实现类层次结构分析(CHA) dispatch :根据方法调用者的类和方法签名寻找目标方法。 比较显然,是个递归算法。 递归的终止条件有两个,一个是如果一直找不到相应方法,不断递归到父类,最后递归到 Object 在向上递归就是 null ,Object 没有父类,此时返回空,说明找不到相应方法;另一个是如果当前类的方法中有能匹配方法签名的方法,并
微信小程序之stompjs
stompjs接收rabbit推送的消息,三个平台的用法: H5平台使用: HTML代码: View Code sockjs.js View Code stomp.js View Code uniapp平台使用: 微信小程序平台使用: WXML代码: View Code utils/websocket.js: View Code
Jackson+Feign反序列化问题排查
概述 本文记录在使用Spring Cloud微服务开发时遇到的一个反序列化问题,RPC/HTTP框架使用的是Feign,JSON序列化反序列化工具是Jackson。 问题 测试环境的ELK告警日志如下: 报错产生自gateway-open服务,gateway-open服务把接口请求/api/open/dialog/nextQuestion转发到dialog服务,dialog服务在Feign调用另
Java工具类强推:Hutool
官方文档: https://www.hutool.cn/docs/#/ Github地址: https://github.com/dromara/hutool Gitee地址: https://gitee.com/dromara/hutool ❓背景 灵魂拷问1:还在为新项目工具类搬迁而烦恼? 灵魂拷问2:还在为项目中工具类维护而烦恼? 📘简述 Hutool它是一个Java工具集类库,包含了很
HTML代码加固:保障网站安全
引言 HTML是网站开发的基础语言,它的安全性直接关系到网站的安全性。为了保障网站的安全性,我们需要加固HTML代码。本文将介绍一些具体方法,帮助你加固HTML代码,提高网站的安全性。 摘要 本文将介绍以下几种方法来加固HTML代码以保障网站的安全性:移除不必要的注释、过滤输入内容、使用HTTPS协议、使用防火墙以及定期更新代码。通过采取这些措施,你可以有效地提高网站的安全性,保护用户的隐私和数据
Vite安装React TS Tailwind项目
安装Vite --template vue是指定创建vue框架的模版,我们这个项目使用的是react + ts的技术栈,因此我们执行下面这条命令 命令执行完之后,我们就获得了一个配置好的react + ts的项目。 配置 tailwind css 我们首先从通过包管理工具安装tailwindcss,执行下面的命令 因为tailwind不会自动添加浏览器引擎的前缀到生成的 CSS
探讨Java死锁的现象和解决方法
死锁是多线程编程中常见的问题,它会导致线程相互等待,无法继续执行。在Java中,死锁是一个需要注意和解决的重要问题。让我们通过一系列详细的例子来深入了解Java死锁的现象和解决方法。 1. 什么是死锁? 死锁是指两个或多个线程在互相等待对方释放锁资源的情况下,导致程序无法继续执行的现象。这通常发生在多个线程同时持有不同锁,并尝试获取对方已持有的锁。 2. 简单的死锁示例 考虑两个线程分别尝试获取两
rocketmq--死信队列
在RocketMQ中,死信队列(Dead Letter Queue,DLQ)用于存放无法成功消费的消息。当消息重试消费次数超过设定的阈值后,消息将被转移到死信队列。使用Spring Boot集成RocketMQ时,可以通过以下步骤来处理死信队列中的消息。 首先,在pom.xml中添加RocketMQ Spring Boot Starter的依赖: 接下来,在application.propert
在TypeScript项目中搭配Axios封装后端接口调用
前言 本来是想发 next.js 开发笔记的,结果发现里面涉及了太多东西,还是拆分出来发吧~ 本文记录一下在 TypeScript 项目里封装 axios 的过程,之前在开发 StarBlog-Admin 的时候已经做了一次封装,不过那时是 JavaScript ,跟 TypeScript 还是有些区别的。 另外我在跟着 next.js 文档开发的时候,注意到官方文档推荐使用 @tanstack/