
Java
文章平均质量分 53
三劫散仙
唯有学习,可以解忧
展开
-
idea 复制代码时不带富文本背景色
在 Intellij IDEA 中默认复制代码是以富文本方式拷贝的,这样会导致把背景色也拷贝出来,如果贴到普通的文本编辑器还好,但粘贴到支持富文本的编辑器(比如wiki,语雀,飞书,腾讯文档等)中就会附带背景色,看着很难受,如何取消这个默认设置呢?很简单,在 Settings => Editor => General => 下拉取消富文本copy就可以了。原创 2025-03-06 14:06:16 · 383 阅读 · 0 评论 -
java idea debug 失效debug Skipped breakpoint at java. lang. Class. forName0(java. lang. String,
把这两项勾掉 apply 之后,跑一把之后,然后在选中 apply回来,再次debug就正常了。原创 2025-02-25 18:47:09 · 182 阅读 · 0 评论 -
quartz example12 远程任务提交例子
Quartz 是一个功能强大的开源作业调度框架,用于在 Java 应用程序中执行定时任务。很多开源调度框架的底层都是依赖 quartz 库实现的。原创 2024-12-23 17:10:18 · 285 阅读 · 0 评论 -
jdk8 报错 java.lang.NullPointerException sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1
出现这个问题,一般是因为我们用 jdk 是精简过体积的 jdk 比如各种docker 镜像里面依赖的 jdk-slim,这里面为了减少jdk 包的体积会去掉这些内置字体资源,如果遇到你的应用又需要使用这些字体的情况,就会报错。是一个开源的 TrueType 字体集合,它包含了多种语言的字符,特别是那些在其他字体中不常见的字符。是一个用于配置和自定义字体的系统,它允许用户指定字体的优先级、替代字体以及字体的缓存等。)来管理字体的设置,并且可以与多种桌面环境和应用程序集成,以提供一致的字体体验。原创 2024-08-02 11:53:10 · 437 阅读 · 0 评论 -
java 修改默认的/tmp/hsperfdata_root目录的生成位置
java程序启动后,默认(请注意是默认)会在/tmp/hsperfdata_userName目录下以该进程的id为文件名新建文件,并在该文件中存储jvm运行的相关信息,其中的userName为当前的用户名,/tmp/hsperfdata_userName目录会存放该用户所有已经启动的java进程信息。这里面就包括我们最常用的 jps 命令,可以只显示 java 进程的功能,就是解析这个目录生成出来的。如果你发现 jps 命令不能列出来 java 进程,那么原因很大可能和这个目录位置有关系。原创 2024-07-29 17:46:35 · 1186 阅读 · 0 评论 -
skywalking 请求链路采样设置和原理
通过合理的 skywalking 的采样机制的设置,可以大大减轻服务端 ES 的存储压力,以及减少 agent 端消耗应用的的 cpu 和内存的资源,也包括减少上报 oap 网络带宽的占用等,从而达到在资源成本和采集请求覆盖面得到一个平衡。原创 2024-07-15 18:52:29 · 1391 阅读 · 0 评论 -
Java NIO ByteBuffer 使用方法
OnMessage//xxxxx以前只知道 NIO 里面大量用到了 ByteBuffer ,并没有仔细了解过,这次特意学习了一下,因为JDK自带的ByteBuffer 可以切换读写两种模式加上内置很多方法组合使用,有很多约定俗成的用法,稍不注意就有可能踩坑,这也是为什么Netty里面又基于 ByteBuffer 重新封装了ByteBuf类,就是因为 JDK 自带的太难用了Java 中的 ByteBuffer 是 java.nio 包中的核心类之一,属于 New I/O (NIO) 框架。原创 2024-06-12 19:34:42 · 1068 阅读 · 1 评论 -
IDEA +Tomcat 新建 Spring MVC 项目踩坑记
使用Java 做企业级Web开发,十多年前,SSH(Spring + Struts + Hibernate)框架很火,当时流行的 IDE 是 Eclipse 和 MyEclipse,后来过了几年变成了 SSM(Spring + Spring MVC + Mybatis),直到 2014 年 4 月,Spring 发布 Spring Boot 第一个正式版本后,后续新的微服务 web 项目基本都用 Spring Boot 开发了,其遵循的约定大于配置的理念,极大提升了开发效率,再配合上 JetBrains 公原创 2024-05-13 11:13:26 · 1202 阅读 · 0 评论 -
sentinel-dashborard下发流控规则未生效排查解决
Sentinel是阿里巴巴开源的一个流量控制组件,它以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。Sentinel的核心思想是:通过动态设置的规则,对进入系统的流量进行控制,从而保证系统的稳定性和高可用性。流量控制:Sentinel可以根据不同的调用来源、调用模式等,对流量进行控制,比如可以设置某个接口的QPS(每秒查询数)或者线程数阈值,当超过这个阈值时,就会进行流量控制,避免系统过载。熔断降级。原创 2024-05-11 16:27:46 · 874 阅读 · 0 评论 -
skywalking-agent 代码调试
之前已经将 oap 和 ui 调试成功了,今天排查一个 agent 的采集问题,又研究了下 agent 代码如何调试,这下终于齐活了,以后 skywalking 再有问题,直接使用调试大法。1,下载 skywalking 源码,进行编译打包(注意从 skywalking 8.8.0 开始 agent 代码从主仓库独立出来为 skywalking-java )然后在 skywalking 的源码里打上断点,就可以愉快的调试了。如果代码有调整,还是需要重新打包的。里面包含了打包好的agent目录。原创 2024-04-23 17:43:32 · 520 阅读 · 0 评论 -
skywalking idea中启动调试报错Output path is shared between the same module error
简单描述:就是多个moudle一样用了一样的输出路径,这样容易造成冲突。原创 2024-04-01 17:39:28 · 540 阅读 · 0 评论 -
Spring JPA could not locate named parameter异常
原生 sql 语句后面加了分号导致的,把分号去掉即可,因为 SQL/HQL不需要以分号结束。原创 2024-03-13 10:48:33 · 608 阅读 · 0 评论 -
skywalking 在mac m1上protobuf构建问题
【代码】skywalking 在mac m1上protobuf构建问题。原创 2024-01-19 16:38:53 · 654 阅读 · 0 评论 -
Spring Boot 2.7.11 集成 GraphQL
GraphQL(Graph Query Language)是一种用于API的查询语言和运行时环境,由Facebook于2012年创建并在2015年公开发布。与传统的RESTful API相比,GraphQL提供了更灵活、高效和强大的数据查询和操作方式。客户端可以精确指定需要的数据,而不会获得多余或不需要的信息。这允许前端应用程序更有效地获取所需的数据,减少了不必要的数据传输和处理。与RESTful API不同,GraphQL通常只有一个端点,客户端可以在一个请求中指定所需的所有数据。原创 2024-01-02 18:43:19 · 820 阅读 · 1 评论 -
Jetty Server设置允许跨域的方法
【代码】Jetty Server设置允许跨域的方法。原创 2024-01-02 15:58:46 · 931 阅读 · 0 评论 -
如何将 spring boot jpa 联表查询结果映射成 Java Bean
可以看出来基于接口的方式更加优雅,不需要处理一堆映射定义,需要那个字段就加哪个字段即可,但是基于接口的缺点在于,返回的不是类实例,如果需要对返回的结果进一步进行处理必须需要新声明一个 Bean 接受处理完的数据,而基于类的就比较友好了,可以直接修改类本身的数据。查了一下网上发现大部分提供的例子都用不了,包括通过 GPT4 解答的乱七八糟,不得不说现阶段的AI大模型,还有待优化,最终经过测试,确定有两种方式是可以的,而且能跑的通。实体类代码:接口定义所有要返回字段的getter方法即可。原创 2023-12-26 18:24:38 · 405 阅读 · 0 评论 -
Elasticsearch 相似度评分模型介绍
Elasticsearch 是基于 Lucene 的世界范围内最流行的全文检索框架,其文档相似度算法包含 TF/IDF 和 BM25,从 ES 5.0开始 BM25 算法已经成为 ES 默认的相似度评分模块。在实际工作中,搜索和推荐业务会比较依赖全文检索框架,很多情况下框架的默认的评分机制并不能很好的满足我们的需求,所以需要结合一些自定义评分策略来完善我们的 rank 效果。原创 2023-11-29 19:41:43 · 1029 阅读 · 0 评论 -
IDEA 2022.1 同一个 spring boot main类运行多个实例
先点击 Edit 配置。原创 2023-11-27 17:42:57 · 411 阅读 · 0 评论 -
透视maven打包编译正常,intellj idea编译失败问题的本质
maven多模块类型的项目,在Java的中大型应用中非常常见, 在 module 很多的情况,经常会出现各种各样的编辑依赖错误问题,今天记录一种比较常见的 case :但偏偏打开 IDEA 中的类文件,A 模块中的类显示找不到依赖 B 模块的类,具体就是某个子模块的依赖的类找不到,各种 reimport 和 invalid cache restart 都尝试过了,还是无法解决,这是为什么呢?原创 2023-11-20 14:39:32 · 2223 阅读 · 1 评论 -
js 正则替换实现特殊分隔符的单词首字母大写
原因在于:\w 是匹配的 字母、数字、下划线。[_\s-]* 第二部分是接着第一部分结果的追加限定:必须以 0个或多个 (下划线 或 空白字符 或 连字符)组成部分结尾才可以。这里面需要注意:[_\s-] 的顺序,连字符不能放中间,因为放空间表示一个范围,会导致编译报错。[a-zA-Z]* 第一部分匹配任意 0个或多个字母组成的单词。原创 2023-11-14 17:37:45 · 330 阅读 · 0 评论 -
spring boot simple类型cache使用
注意:这里用的不是 redis 的缓存,simple 的缓存默认用的是 java 的 ConcurrentHashMap, 单纯的 simple 缓存,只需要引入下面的 pom 依赖即可:spring-boot-starter-cache。这样就可以了,然后在Controller里面直接调用,第一次的没有缓存的时候,会执行该段代码完成初始化,后续再调用的时候,直接就走cache了,不会在执行代码了, 同理执行缓存清空和更新也类似。原创 2023-10-12 16:08:16 · 649 阅读 · 0 评论 -
pyspark 检测任务输出目录是否空,避免读取报错
在跑调度任务时候,有时候子任务需要依赖前置任务的输出,但类似读取 Parquet 或者 Orc 文件时,如果不判断目录是否为空,在输出为空时会报错,所以需要 check 一下,此外Hadoop通常在写入数据时会在目录中生成一个名为_SUCCESS的文件来表示写入操作已成功完成,我们在检测时要排除这个文件。原创 2023-09-26 11:04:21 · 778 阅读 · 0 评论 -
spring boot + jpa 实现 sql 更新表数据
【代码】spring boot + jpa 实现 sql 更新表数据。原创 2023-09-25 17:00:43 · 596 阅读 · 0 评论 -
Java替换 html 中隐藏的空格字符
有时候前端传过来的 json 字符串,包含了隐藏的空格 &NBSP 字符,在后端 Debug 的时候可以看到是  ,但 system.out.print() 打印出来的是正常的空格,这样看着正常但其实放入 fastjson 中去做解析会失败,所以我们需要移除这些空格。原创 2023-09-14 16:10:07 · 672 阅读 · 0 评论 -
Java json 格式化小工具兼容转义 json 串
注意第一种使用 JSON 工具处理时,并不能正常解析,需要先转义才行,注意: 在 IDEA中 测试时不能直接将上面的内容拷贝到 Java 类中,因为 IDEA 会自动反转义,正确的测试的方法时将数据保存到 resources 文件夹下的一个文件中,然后读取出来解析即可。原创 2023-09-12 18:28:44 · 601 阅读 · 0 评论 -
Log4j2 配置日志记录发送到 kafka 中
log4j2 在 2.11.0 之后的版本,已经内置了 KafkaAppender 支持可以将打印的日志直接发送到 kafka 中,在这之前如果想要集中收集应用的日志,就需要自定义一个 Layout 来实现,相对来说还是比较麻烦的。原创 2023-08-30 19:48:50 · 2743 阅读 · 0 评论 -
spark外置external shuffle service使用介绍
默认情况下,MR任务shuffle都是由当前任务内部完成的,也就是启动了一个spark job,这个job在内部就可完成整个shuffle流程,也就是实时对接的模式,类似快递小哥送快递给你,到你家楼下打电话给你,不见你面他就一直等着你,直到你来了之后,他把快递亲自交到你的手中,他才可以去干下一件快递的排送,这种模式就是默认shuffle的工作原理。外部独立的shuffle服务的存储可以不占用YARN内部的本地磁盘,使用独立的SSD磁盘或者SSD的云存储再配上100G的网络带宽来加速shuffle处理性能。原创 2023-06-27 20:05:15 · 1802 阅读 · 0 评论 -
Java正则表达式匹配模式详解
上面的结果实际上只会输出ac,而ab并不会输出,这是因为Java正则中,如果出现了^ 或 $,默认情况下会忽略任何换行符,也就是说仅仅匹配第一行,后面的所有内容都会被忽略掉,如果我们想要不忽略,就得使用多行匹配模式。注意上面的第二个不匹配,因为启动了UNICODE_CHARACTER_CLASS,必须用UNICODE_CHARACTER_CLASS下的字符表示才可以匹配。find:输入的字符串里面只要包含了正则式表达的内容即可,类似字符串包含的方法, "b".contains("b");原创 2023-06-14 22:55:07 · 5426 阅读 · 0 评论 -
理解时区与时间处理
时区,是地球上的区域使用同一个时间定义。以前,人们通过观察太阳的位置(时角)决定时间,这就使得不同经度的地方的时间有所不同(地方时)。1863年,首次使用时区的概念,通过设立一个区域的标准时间部分地解决了这个问题。然而,世界各国位于地球不同位置上,因此不同国家,特别是东西跨度大的国家日出、日落时间必定有所偏差。这些偏差就是所谓的时差。原创 2023-03-24 14:32:27 · 1442 阅读 · 0 评论 -
优化jenkins on kubernetes构建性能慢问题
现在大多数公司,都开始使用kubernetes开启云原生时代了,传统的jenkins在物理机构建场景已经越来越少见了,取而代之的是用jekins在kubernetes pod中动态构建我们的任务原创 2022-09-16 17:48:02 · 1966 阅读 · 0 评论 -
解决JDK访问https域名证书校验失败问题
背景在Java代码里面访问https域名的url进行通信时,经常会遇到下面的一个异常:Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certifica原创 2022-04-01 18:30:01 · 4388 阅读 · 0 评论 -
Spring Boot开发之流水无情(二)
上篇散仙写了一个很简单的入门级的Spring Boot的例子,没啥技术含量,不过,其实学任何东西只要找到第一个突破口,接下来的事情就好办了,人最怕什么? 我想莫过于干一件事情,没有下手的地方了,而当你一旦找到了这感觉,就可以很喜悦的顺藤摸瓜般的探索你强烈想探索求知的某种事物了,这种冥冥之中玄而又玄的感觉是什么?回想一下: (1) 当你把第一个某种编程语言的Hello World的例子,成功原创 2015-04-26 21:57:35 · 1206 阅读 · 1 评论 -
Intellj IDEA14.0.2启动异常之3分钟修复
今天是周一,刚到公司启动心爱的IDEA,,突然启动到一半,就抛异常了,直接弹窗,报如下的异常: Java代码 java.lang.RuntimeException: com.intellij.ide.plugins.PluginManager$StartupAbortedException: Fatal error initializing 'com.intellij原创 2015-07-20 11:02:21 · 24895 阅读 · 8 评论 -
js脚本操作mongo库小知识
(一) :如何在js文件里面切换一个新的mongo库? 我们都知道,使用下面的命令可以执行一个js脚本里面的内容: Java代码 收藏代码 mongo –quiet localhost:27021/db_name < test.js 虽然我们在执行一个js时,需要指定一个数据名,但不意味着,在这个js里面,就只能使用这个库操作,可以我的需求是,循环查询一个库的id字段,然后拿着这个原创 2015-07-22 14:17:50 · 1163 阅读 · 0 评论 -
网页去重思路浅析(一)
最近,由于工作需要,需要对爬虫爬下来的网页数据进行相似度去重。 那么问题来了,为什么要去重? 爬虫采集的数据可能来自各个网站,比如一个热门新闻,可能网易,搜狐,新浪,都有转载报道,如果不做任何措施,那么存储到库里就是3条数据,当然这仅仅是一个例子,假如,你有几TB或PB的数据,如果还这样,那么你的库可能有30%都是大量的重复数据,这些重复数据,一般不会给你带来任何价值,而且会占用大量的原创 2015-09-29 21:12:13 · 1404 阅读 · 0 评论 -
重温java代理模式
文章关键词:java代理,jdk动态代理,cglib代理,AOP,切面编程今天,逛技术博客时,无意间发现了一篇有关动态代理模式的文章,感觉写的不错,自己正好也在巩固下基础知识,虽然实际工作中用代理的模式的不是特别多,那是因为你使用的框架,已经帮你封装好了,所以,你可能感觉不到,但是感觉不到不但表不存在,了解下它的原理和使用场景还是能提高下逼格的。于是散仙总结了下文,还有一个实战小例子,原创 2015-10-08 19:43:40 · 583 阅读 · 0 评论 -
海量数据去重之SimHash算法简介和应用
SimHash是什么SimHash是Google在2007年发表的论文《Detecting Near-Duplicates for Web Crawling 》中提到的一种指纹生成算法或者叫指纹提取算法,被Google广泛应用在亿级的网页去重的Job中,作为locality sensitive hash(局部敏感哈希)的一种,其主要思想是降维,什么是降维? 举个通俗点的例子,一篇若干数量的原创 2015-10-13 19:06:38 · 14474 阅读 · 0 评论 -
如何在IDE中体验一把Java8?
Java8已经发布有一段时间了,其中包括了许多新的不错的特性,例如支持scala风格的lambda函数式编程,流式API操作等, 让够让你臃肿的JAVA代码,变得大幅精简,而且语义更加清晰明了,本篇主要叙述如何在在Eclipse和IDEA中配置支持JAVA8, 只有让我们的IDE支持Java8运行,我们才能在它的基础上,体验Java8带来的快感! NetBeans和Intell原创 2016-05-30 18:25:12 · 2148 阅读 · 0 评论 -
Java垃圾收集器之G1介绍(一)
先来看下Oracle HotSpot JVM的体系结构: JVM主要组件包括,类加载器,运行时内存区,以及执行引擎,程序员主要关注的应该是运行时区域这块了, 回顾下类加载器的顺序: ->Boostrap ClassLoad 引导类,加载java规范定义和接口声明主要是/jre/lib/rt.jar -> Ext ClassLoad 加载扩展类 /j原创 2016-06-24 18:29:30 · 1834 阅读 · 0 评论 -
如何通过JMX远程监控Solr?
有时候,我们在服务器端部署了JAVA程序,而又想在windows上监控这个程序的JVM的情况,该如何操作呢? 答案就是通过JMX监控,需要在启动的java程序中,加入一定的jvm参数和指定端号,并且关闭该机器上的防火墙,这时候我们就可以在window上使用jconsole或者jvisualvm远程连接监控了。 使用jmx有两种方式: 第一种,比较简单,无须用户名密码 第原创 2016-05-23 16:10:20 · 2422 阅读 · 0 评论