自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Elasticsearch倒排索引与传统索引对比

维度倒排索引传统索引(B树)核心结构词项→文档列表键值→数据地址适用数据非结构化文本结构化数据查询类型全文搜索、模糊匹配精确查询、范围查询分词处理必需(依赖分词器)无需写入开销高(需更新多个词项)低(单条记录更新)典型场景搜索引擎、日志分析事务处理、报表查询通过以上对比可以看出,倒排索引和传统索引在设计哲学和应用场景上存在根本差异,两者分别针对文本搜索和结构化数据查询优化,适用于不同的技术需求。

2025-04-18 10:11:10 720

原创 快速点位排查问题的方法

通过以上方法,可在 5~15 分钟内定位 80% 的常见问题,剩余复杂问题再结合日志和工具深入分析。日志文件、临时文件、Core Dump。网络延迟、DNS、后端依赖服务。端口监听、进程存活、防火墙。慢查询、锁竞争、GC 停顿。

2025-02-17 18:46:05 820

原创 ideal2021-2024版解决方案

idela下载激活

2025-01-19 11:21:05 150

原创 request to https://registry.npmjs.org/create-vue failed, reason: read ECONNRESET

错误原因 : 官方修改了下载地址,需要替换一下地址所以会报错。1.将npm的下载源恢复为默认的官方源。

2024-12-17 22:15:21 636

原创 初始化MySQL服务器时出现问题解决

具体来说,错误信息提示数据目录中已经存在文件,导致初始化过程被中止。指定的数据目录D:\mysql\mysql-8.0.40-winx64\data\不可用,建议删除所有服务器添加的文件。通过删除数据目录中的文件并重新初始化,可以解决这个问题。导航到D:\mysql\mysql-8.0.40-winx64\data\目录,删除所有文件。指定了–initialize选项,但数据目录中已经存在文件,导致初始化过程被中止。在删除数据目录中的文件之前,确保备份任何重要的数据。服务器初始化过程被中止。

2024-12-10 16:59:40 560

原创 IDEA切换分支时,提示:Git Checkout Problem以及Force Checkout后本地代码消失解决方法

使用 Git 进行版本管理时,当我们切换分支时会出现如上的提示,出现上述界面的原因是我们在当前分支的代码没有 commit,当我们需要切换到其它分支的时候,Git 就会提示我们要进行哪些操作。但是有时我们本地的代码就是不能提交,因为没测试完,所以我们就选择Force Checkout过去,回来时发现未提交的代码没有了,不要担心,我们找到git历史记录切换回我们需要的版本就好了。:当前分支未提交的代码不会带到你要切换的那个分支上去,还是保留在当前分支。:当前分支未提交的代码会被带到你要切换的那个分支上去。

2024-12-04 14:12:55 1211

原创 在Window10或11系统中同时安装 JDK8 和 JDK11

本文指导读者如何从Oracle官网下载并部署JDK8和11,设置JAVA_HOME、JAVA11_HOME和JAVA8_HOME环境变量,以及如何正确配置PATH以确保不同JDK版本间的顺利切换,特别关注了如何避免与Oracle默认路径冲突。

2024-12-01 23:48:10 1520

原创 git切换分支导致代码丢失的问题解决方案

最近写项目时,我在自己的分支上写代码,然后拉远程公共dev分支的代码,但是本地有些功能是不发的,因为涉及的类有十几个,所以我就切换到本地的dev分支去重新拉取远程代码打包发布,并且再切换回到自己分支上去的时候,发现写的代码全部没了。有些小伙伴是主分支(master分支)上面写的代码,但是没有提交(Commit)到Git上。但是又碰到一个新的需求,所以需要去新建一个分支,当切换到新建的分支,并且再切换回到主分支上去的时候,发现写的代码全部没了。如果想要恢复某一个文件的话就点击Unshelve。

2024-11-28 11:38:37 1208 1

原创 git修改安装位置后处理

打开注册表:win+R,输入命令:regedit 或者直接搜索注册表编辑器。这是因为在注册表中的路径还是原来的路径,我们到注册表中进行修改即可。原因:安装时自动添加的,需要修改启动文件所在位置。找到git启动的按钮,修改位置。

2024-11-20 17:38:55 380

原创 Git打开bash报错:/usr/bin/bash: . Failed to run ‘/usr/bin/bash‘: No such file or dire及git修改安装位置后处理

之前一直可以用的,今天要拉取新的项目,发现报这个错误,在网上看了几篇文章,找了解决方案。打开注册表:win+R,输入命令:regedit 或者直接搜索注册表编辑器。后来分析安装路径有一个目录是中文命名, 于是更改安装目录,结果完美解决;但是改完路径大家会遇到一个问题就是发现右击使用git的时候报找不到文件。这是因为在注册表中的路径还是原来的路径,我们到注册表中进行修改即可。原因:安装时自动添加的,需要修改启动文件所在位置。百度也没有解决办法,重复安装也无法解决。找到git启动的按钮,修改位置。

2024-11-20 17:35:49 608

原创 Git:git clone时报错remote: HTTP Basic: Access denied fatal: Authentication failed for

解决方案:在git控制台输入以下命令,然后git clone 时在弹出的界面正确输入账户名和密码即可。原因:重置了密码或拉取代码时输错密码导致操作失败,但再次登录时未再弹出重新输入密码界面。

2024-11-20 17:25:07 874

原创 在Oracle数据中更新整个对象和更新对象的某几个字段时,他们的锁是相同的吗

这意味着,无论你是更新一行中的所有列还是仅仅几个列,锁的级别都是相同的——即对需要更新的那一行数据加锁。例如,事务A先更新字段1后更新字段2,而事务B先更新字段2后更新字段1,这可能导致两个事务互相等待对方释放锁,形成死锁。性能影响:更新整个对象(即所有字段)与只更新部分字段相比,前者可能涉及更多的数据写入操作,因此可能会影响事务的执行时间和所需的系统资源。但是,从锁的角度来看,两者并没有区别。总之,在Oracle中,不论是更新整个对象还是只更新某些字段,锁的级别是一样的,都是行级锁。

2024-11-10 13:24:35 449

原创 oracel数据库中如果一个表在插入数据时也另外一个线程对这个表进行查询,会影响查询的效率吗

在进行数据修改操作(包括插入)时,Oracle会自动使用锁来确保数据的一致性。尽管插入操作通常只锁定新插入的行,但如果并发量很高,仍然可能会导致等待和延迟。总的来说,虽然插入操作有可能对查询效率产生一定影响,但在合理的设计和配置下,这种影响是可以控制的。然而,如果查询操作复杂或者涉及大量数据,则可能会受到并发插入的影响。这可能会影响索引的性能,尤其是对于B树索引来说,频繁的插入可能会导致索引分裂和合并操作,进而影响索引的效率。如果系统资源不足,那么高并发的插入操作可能会消耗大量资源,从而影响查询性能。

2024-09-11 11:28:52 471

原创 oracel数据库中如果一个表在插入数据会影响另外一个表的查询?

比如,如果你在一个主表中插入一条记录,并且这条记录被用作从表中的外键,在某些查询中,从表的数据就会因为主表的新记录而发生变化。:如果你有一个基于一个或多个表的物化视图,并且物化视图设置了刷新策略,那么对基础表的插入操作会导致物化视图刷新,从而影响到查询该物化视图的结果。:如果表是分区的,并且插入操作涉及到新的分区,那么查询该表的方式可能会有所改变,特别是如果查询使用了分区裁剪技术的话。索引和统计信息:大量的插入可能会改变表的统计信息,进而影响到优化器的选择,从而改变查询计划,影响查询性能。

2024-09-11 11:27:24 398

原创 Hutool导出 excel 时设置列宽及对齐方式

【代码】Hutool导出 excel 时设置列宽及对齐方式。

2024-08-09 18:46:47 765

原创 如何使一个需要跨库执行的自定义SQL即能在uat环境执行又能在生产环境执行?

上面语句的作用是创建(或者如果已存在则替换)一个同义词ecm_send_thai_edi_history,这个同义词指向JJ_ECM_UAT模式下的ecm_send_thai_edi_history表。这意味着,当你在查询或操作时使用ecm_send_thai_edi_history,实际上你是在操作JJ_ECM_UAT.ecm_send_thai_edi_history表。:如果表需要移动到另一个模式下,只需要更改同义词的定义,而不需要修改所有引用该表的应用程序代码。

2024-07-18 18:06:08 207

原创 idea启动不了 在idea.bat中加pause看报错信息报Caused by: java.lang.ClassNotFoundException: com.licel.b.Z@以及控制台乱码问题

这里找到 idea.vmoptions文件(我是用everything软件查找idea.vmoptions文件的,需要软件的可以找我 或者网上也可以找) 把里边加了 -Dfile.encoding=UTF-8 去掉,如果有类似于-javaagent:C:\Users\Public.jetbrains\jetbrains-agent-v3.2.0.de72.619s的也可以删掉,其他不要删。乱码问题就是将-Dfile.encoding=UTF-8放在配置文件中间,不要放入在尾部。保存后即可重启idea了。

2024-07-05 15:47:34 628

原创 java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res

2.处理除不尽的情况:如果你知道结果可能会是无限循环小数,可以使用divide方法的另一个重载版本,该版本接受一个MathContext参数,允许你指定舍入模式和精度,甚至允许结果以循环形式表示(虽然在大多数实际应用中,更倾向于指定一个舍入模式)。这个错误信息表明在执行特定Java代码时遇到了ArithmeticException异常,具体原因是试图进行一个数学运算,该运算导致了非终止的小数(即无限循环小数)的产生,而且无法得到一个精确的十进制结果来进行表示。我的代码判断是这样的。

2024-06-27 16:59:09 555

原创 java模板方法模式的实现及其扩展

模板方法模式将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称为模板方法的方法的定义这些基本方法的执行次序,并且可以通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果。我们可以发现,在这个流程中取号、排队和对离开银行的操作对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。在模板方法模式中将实现功能的每一步骤所对应的方法称为 基本方法,而将调用这些基本方法同时定义基本方法的执行次序的方法称为 模板方法。

2024-05-24 10:40:33 728

原创 区块链技术的应用场景和优势

通过将供应链中的每一步交易信息和物流信息存储在区块链上,可以实现供应链的实时监控和追溯,减少欺诈和假冒的风险。通过将供应链中的每一步交易信息和物流信息存储在区块链上,可以实现供应链的实时监控和追溯,减少欺诈和假冒的风险。通过将物联网设备的数据存储在区块链上,可以确保数据的真实性和完整性,并减少数据篡改和伪造的风险。通过将物联网设备的数据存储在区块链上,可以确保数据的真实性和完整性,并减少数据篡改和伪造的风险。通过将选票存储在区块链上,可以确保选举的公平性和透明性,并防止选举结果的篡改和操纵。

2024-05-15 11:22:40 526

原创 java大量数据导出excel的几种优化方法

一、我们导出数据时,常常是将数据一次性全部加载到内存中来,进行数据处理和导出,这样很容易导致OOM,我们可以对大文件拆分成小文件进行保存,最后对所有临时文件进行打包导出或者对小文件进行merge。三、我们在查询一个表数据的时候,往往把表中的所有字段都查询出来了,有些表结构比较大的可能有100,200个字段,但是我们在实际导出excel的时候用的字段不超过10个,这样使用的内存将减少10倍左右,那我们就没有必要去查询出这么多字段,建立一个vo,查询出我们需要的字段,然后进行数据处理和导出。

2024-05-15 11:18:17 2199 1

原创 ORA-00932: inconsistent datatypes: expected - got CLOB的分析解决方案

二、你的表结构中存在大文本类型(NCLOB),但是你在查询的时候,使用的是string去查询,导致在查询的where的参数条件报错;最近在项目中遇到查询数据时报ORA-00932: inconsistent datatypes: expected - got CLOB错误,这个错误很明显是由于查询时类型的不匹配造成的。3.找到错误的字段,把NVARCHAR2(4000) 或NCLOB 类型修改为NVARCHAR2(2000)一、检查你的查询的实体的类型是否于数据库的保持一致,如果不一致,那么需要进行更改。

2024-05-13 23:49:46 4084

原创 批量生成大量附件(如:excel,txt,pdf)压缩包等文件时前端超时,采用mq+redis异步处理和多线程优化提升性能

2.这里是第一步的方法,用雪花算法创建出一个唯一的批次号,然后作为Redis的key,将下载的信息状态存入其中,将paramsDto插入mq调用的方法中,这个Redis大家可以spring的或者引入的Redis依赖,注入对象get()和set()就行。3.前端设置一个监听器触发器和监听处理器,去拿到这个第一步返回的批次号进行状态查询,这里的查询时到Redis中去查询,因为状态会存在Redis中,如果已经下载完成,会返回这个状态true,这个时候我们再去调用第三个接口,下载附件并压缩返回给浏览器。

2024-05-11 15:37:40 587

原创 Found interface org.apache.poi.util.POILogger, but class was expected问题处理

如果你是在升级项目依赖时遇到这个错误,可能需要查看 Apache POI 的更新日志,了解接口 org.apache.poi.util 是如何变化的,并根据更新日志进行相应的代码调整。确认项目依赖的 Apache POI 库的版本是否与编译时期间使用的版本一致。如果不一致,需要更新项目中的 Apache POI 依赖,使其与运行时环境中使用的库版本相匹配。在你提供的错误信息中,org.apache.poi.util 接口可能被修改了,导致与你的项目依赖的 Apache POI 库版本不匹配。

2024-04-19 16:21:27 2018

原创 【Oracle】ORA-00936: 缺失表达式

数据类型不匹配,若在日期的选择上,要求输入字符串型(varchar2),而实际输入的为日期型(date)等。若from前存在逗号,语法不规范会引起 ORA-00936: 缺失表达式。in 后面 拼接参数无数据会引起 ORA-00936: 缺失表达式。ORA-00936: 缺失表达式。

2024-03-13 15:09:37 2227

原创 IDEA在运行测试类的时候报错:Error running ‘test‘: Command line is too long. Shorten command line for test

这样再次运行测试类即可。

2024-03-13 10:51:27 2610

原创 使用java的Stream流进行Collectors.groupingBy分组后生成Map,对Map进行删除原集合是否会发生改变

方法对集合进行分组操作时,生成的新映射(Map)是基于原始集合(allItems)的数据结构和内容创建的。集合本身没有变化(集合内的引用没有改变),但通过这个引用指向的对象内容已经被修改,所以看起来就像是原始集合也发生了变化。的更改而改变,但如果修改了这些引用所指向的对象内容,则会看到原始集合中相应对象内容的变化。对象本身是可变对象,并且你在映射中的列表中直接修改了这些对象的属性,那么虽然。虽然新的映射中的列表(List)包含的是引用到原始。中的值(例如,修改了List的内容),这不会直接影响到原始集合。

2024-03-05 17:24:22 1203

原创 MAT MemoryAnalyzer如何查看分析hprof日志文件

Retained Heap(保留堆):如果一个对象被释放掉,那会因为该对象的释放而减少引用进而被释放的所有的对象(包括被递归释放的)所占用的heap大小,即对象被垃圾回收器回收后能被GC从内存中移除的所有对象之和。由于最近生产遇到JVM问题,需要分析dump文件,如果对相关分析工具没有使用过的小伙伴来说可能懵圈,这里介绍一下MAT工具排查问题的使用方法;Shallow Heap(浅堆):表示对象本身占用内存的大小,也就是对象头加成员变量(不是成员变量的值)的总和。这里为我们生成了一份漏洞疑点报告;

2024-03-04 15:53:24 2011

原创 idea插件开发的时候找不到com.intellij.psi.PsiClass

方法二:在 build.gradle 中的 intellij plugins属性添加 ‘com.intellij.java’方法一:在 build.gradle 中的 intellij plugins属性添加 ‘java’方法三:如果是用的本地路径。

2024-03-04 14:47:39 994

原创 雪花算法生成ID、UUID生成ID和MySql自增ID优缺点分析

综上所述,UUID适用于分布式系统和需要保密的场景,雪花ID适用于分布式系统和高并发环境,MySQL自增ID适用于单机系统和高效查询的场景。根据具体的业务需求和系统架构,选择合适的主键类型。通过本文的介绍和对比,希望读者能够更好地理解在MySQL中不推荐使用UUID或者雪花ID作为主键的原因,并能够根据实际情况做出明智的选择。在MySQL中,使用自增整数作为主键是一种常见的做法,因为它具有较小的存储空间、高效的索引和自动增长的特性。然而,具体选择何种主键类型还是要根据具体的业务需求和数据特点来决定。

2024-01-17 11:33:14 3721 1

原创 BigDecimal中使用ROUND_HALF_UP进行四舍五入

一般情况下,对于那些不需要准确计算精度的数字我们可以直接使用 Float 或 Double 处理,但是 Double.valueOf(String) 和Float.valueOf(String) 会丢失精度。如果我们需要精确计算的结果,则必须使用BigDecimal 类来操作。【注】使用 BigDecimal 进行计算时,我们不能再使用算术运算符(+、-、*、/)进行算数运算,而是使用 BigDecimal 类提供的 add、subtract、multiply、divide 等方法来进行算数运算。

2024-01-16 09:42:49 4612 1

原创 数据传输过程中数据不时出现丢失的情况

例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)

2024-01-06 15:19:25 485

原创 RPC基础知识总结

Apache Thrift 是 Facebook 开源的跨语言的 RPC 通信框架,目前已经捐献给 Apache 基金会管理,由于其跨语言特性和出色的性能,在很多互联网公司得到应用,有能力的公司甚至会基于 thrift 研发一套分布式服务框架,增加诸如服务注册、服务发现等功能。我们这里说的 RPC 框架指的是可以让客户端直接调用服务端方法,就像调用本地方法一样简单的框架,比如我下面介绍的 Dubbo、Motan、gRPC 这些。Dubbo 算的是比较优秀的国产开源项目了,它的源码也是非常值得学习和阅读的!

2024-01-06 15:09:52 1034

原创 在oracle中如何删除表中数据

想删除表当然是 drop了、想保留表而将所有数据删除,如果和事务无关,用truncate即可。2.truncate和delete只删除数据不删除表的结构,drop语句将删除表的结构被依赖的约束、触发器、索引;4.truncate、drop 是数据库定义语言(DDL),操作立即生效,原数据不放到rollback segment 中,不能回滚,操作不触发 trigger。1.用truncate删除表数据,只是删除表中的数据,表结构不会被删除!1.用delete删除表数据,只是删除表中的数据,表结构不会被删除。

2024-01-06 14:37:29 2123

原创 Nacos实现原理详解

Nacos Server:Nacos服务提供者,里面包含的Open API是功能访问入口,Conig Service、Naming Service 是Nacos提供的配置服务、命名服务模块。Consitency Protocol是一致性协议,用来实现Nacos集群节点的数据同步,这里使用的是Raft算法(Etcd、Redis哨兵选举)Name Server:通过VIP(Virtual IP)或DNS的方式实现Nacos高可用集群的服务路由。服务实例在启动时注册到服务注册表,并在关闭时注销。

2023-12-27 23:28:53 408

原创 Oracle数据updater如何回滚

1.查询update语句执行的时间节点;3.回滚表数据到目标节点。

2023-12-27 23:14:22 1328

原创 windows和Linux如何做强制域名解析

,想必大多数人都知道它是百度的域名,但并不记得它对应的IP地址吧,所以由这个例子我们可以明白域名解析的一大优点:“便于记忆”,因为便于记忆,我们用户可以高效的访问想要访问的网站,也让我们使用起来更加合乎我们的思维模式。我们再考虑到一些网站的IP地址经常会有变动,就算我们记住了,在下一次我们访问时有可能已经找不到对应的网站了,而通过域名解析即可以准确的解析出对应IP地址,使得我们访问起来更加方便与准确。3.保存后,再次复制到C:\Windows\System32\drivers\etc。

2023-12-26 11:39:19 707

原创 进制转换,写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 数据范围:保证结果在 1≤n≤2的31次方-1

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。数据范围:保证结果在 1≤n≤2的31次方-1。

2023-12-24 23:06:12 490

原创 明明的随机数 明明生成了 N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。 数据范围: 1≤n≤100

明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。数据范围: 1≤n≤1000 ,输入的数字大小满足 1≤val≤500。

2023-12-24 23:03:29 262

原创 1. 汽水瓶 某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。 小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。 数据范围:输入的正整数满足 1 ≤ �

某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。注意:本题存在多组输入。输入的 0 表示输入结束,并不用输出结果。小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。数据范围:输入的正整数满足 1≤n≤100。

2023-12-24 23:00:33 621

空空如也

空空如也

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

TA关注的人

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