自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木子雷的博客

微信搜索【 木子雷 】公众号,Java原创干货;只有你想不到的,没有你找不到的!

  • 博客(61)
  • 收藏
  • 关注

原创 排查压测问题引发的系统性能调优过程

前言:今天测试部门的小梦找到我,委屈巴巴的说我写的接口有问题,因为她对这个接口进行压力测试时,发现系统的吞吐量一直上不去,并且 应用服务器 (部署接口项目的服务器) 的CPU、内存等资源的使用率也一直很低,导致一直无法测试出这个接口的压力峰值。听小梦说完后,自己心想接口都测试了好几遍了,接口代码 绝对不可能有问题的,再说了,有问题也不能承认呀,看来得往别的地方上扯扯呀;然后我说道,接口应该是没问题的,可能是项目环境部署时有些参数没进行调优吧,例如:连接数大小设置、JVM参数设置、数据库参数优化.

2020-12-14 09:42:09 835

原创 SpringBoot 集成 Sharding-JDBC 实现易于扩容的分库分表

前言:今天来聊下 SpringBoot 集成 Sharding-JDBC 实现分库分表;为此写了一个小***Demo***,这个Demo是基于SpringBoot,并集成了 Mybatis、Redis、Swagger(生成在线的接口文档 )、PageHelper(分页工具) 等,当然绝对也集成了 Sharding-JDBC ;以及设计了 RestFul 风格的接口 ,添加了 单元测试 。下面简单介绍下本文的主线:①、首先介绍下Demo的工程目录,并且介绍下使用的基本环境,如:sql、工程的pom.

2020-06-20 19:09:11 2072 2

原创 AQS之CountDownLatch源码解析

前言:CountDownLatch(倒计数器)是JDK并发包下的一个同步工具类,其内部是依赖于AQS(AbstractQueuedSynchronizer)的 共享锁(共享模式)。应用场景:针对于 CountDownLatch 倒计时器, 一种典型的场景就是类似于火箭发射;在火箭发射前,为了保证万无一失,往往还要进行各项设备、仪器的检测,只有等到所有的检查完毕且没问题后,引擎才能点火。那么在检测环节中多个检测项可以同时并发进行的,只有所有检测项全部完成后,才会通知引擎点火的,这里可以使用 Cou

2020-05-31 19:24:08 424

原创 AQS之ReentrantLock源码解析

前言:Java中的同步类ReentrantLock是基于AbstractQueuedSynchronizer(简称为AQS)实现的。今天从源码来了解下ReentrantLock中非公平锁的加锁和释放锁(ReentrantLock中支持公平锁和非公平锁,默认是非公平锁的,但可以通过创建ReentrantLock对象时传入参数指定使用公平锁)。在了解ReentrantLock前,需要对AQS有一定的了解,否则在学习时会比较困难的,并且在通过源码学习ReentrantLock时也会穿插着讲解AQS内容。

2020-05-24 19:32:51 1011

原创 使用shell脚本查询服务器的cpu、内存、磁盘的使用率

最困难的事情就是认识自己!个人博客,欢迎访问!前言:使用shell脚本查询服务器的cpu、内存、磁盘的使用率;如果需要对此脚本进行理解的话,请首先熟悉下linux的基本命令和管道符的知识。脚本献上: #!/bin/bash#计算cpu使用率, -n number:指定在结束前应该产生的最大迭代次数或帧数,一般迭代次数越大,获取到的cpu使用率越准确; 本脚本中是迭...

2020-01-20 21:32:51 8607 4

原创 懒汉式单例模式为什么要进行二次判空

前言: 在本文中会使用代码进行展示懒汉单例模式为什么需要进行二次判空;代码中使用到CountDownLatch 倒计时器,不清楚CountDownLatch使用的请参考此文https://www.jianshu.com/p/f17692e9114f。代码展示:1、懒汉式单例模式类public class Singleton { //...

2019-07-30 20:36:36 4039

原创 面试手写HashMap,手撕HashMap

前言: 现在面试时,面试官经常会问到HashMap,简单点就会问下HashMap的一些关键知识点,困难些的可能会当场让你手写一个HashMap,考察下你对HashMap底层原理的了解深度;所以,今天特别手写了一个简单的HashMap,只实现了 put、get、containsKey、keySet 方法的 HashMap,来帮助我们理解HashMap的底层设计原理。本文...

2019-07-13 23:51:24 2103

原创 Java实现 “ 将数字金额转为大写中文金额 ”

最困难的事情就是认识自己!个人博客,欢迎访问!前言: 输入数字金额参数,运行程序得到其对应的大写中文金额;例如:输入—12.56,输出—12.56:壹拾贰元伍角陆分;重点来了:本人亲测有效。奉上代码:/** *@Title: ConvertUpMoney * @Description: 将数字金额转为大写汉字金额 * @date: 2019年6...

2019-06-18 23:35:16 31072 18

原创 通过对比 Dubbo和Spring Cloud ,综合选择最合适的

前言: 目前学习了下Dubbo 和 Spring Cloud,并且在简单学习后,总结了下这两者之间简单的区别;如果以后有需要搭建分布式系统的需求,可以根据这两者之间的区别,再根据当前公司的业务等情况选择最为合适的来搭建自己的分布式系统。Dubbo+Zookeeper vs Spring Cloud:框架比较的方面 Dubbo+zookeeper ...

2019-06-17 19:54:39 6181

原创 必须知道的SQL语句不走索引时的排查利器

前言:在索引优化时,经常会看到的一句话:如果索引字段出现隐式字符集转换的话,那么索引将失效,进而转为全表扫描,查询效率将大大降低,要避免出现隐式字符集转换;在此我想问问同学们:大家知道为什么隐式字符集转换会导致索引失效吗?实际场景中有没有遇到过隐式字符集转换导致索引失效的场景,具体排查的过程;本文主线:由上面的两个问题牵引出了本文的主线;简单描述下隐式字符集转换导致索引失效的原因然后模拟实际场景排查隐式字符集转换导致索引失效的过程隐式字符集转换导致索引失效的原.

2021-07-06 21:29:43 722 1

原创 DB2分页SQL优化(宝,我优化了分页,每分钟都想你的夜)

前言:最近,项目中的一个 DB2分页查询很慢 ,组长将此分页的优化分派给了我;然后一顿优化(乱操作)后,将DB2分页查询耗时降到了比较满意的情况,[ 开森 ];然后马上将结果报告了组长,组长查看我的演示后,发现分页查询确实快了很多,可以达到让人“接受的程度”,比优化之前的 页面一直转圈等待 相当可以了呀;注:优化后的演示环境与发现分页查询慢时的环境基本一致,包括库中数据量、DB2的配置、服务器的配置等。首先通过查看执行计划发现,SQL语句中的索引都利用上了,那么暂时就不是 索引 的问题了,最后发现.

2021-06-16 09:31:45 1355

原创 单元测试报错:org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader

前言:大家有没有遇到过这种情况,自己从网上拉取了一个开源项目代码,拉取下来后先将代码整体浏览了下,然后想跑下代码中自带的单元测试进行debug下,但是此时就突然报了一个奇怪的异常:org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader然后根据错误信息去网上一顿查询,并且根据好几个博客进行修改,但最终还是无法修复异常;一时让人苦恼,真他喵的烦 [::>_<::.

2021-06-04 10:02:12 1596 1

转载 我不知道系统何时进行分表,那我走?

前言:以交友平台用户中心的user表为例,单表数据规模达到千万级别时,你可能会发现使用用户筛选功能查询用户变得非常非常慢,明明查询已经命中了索引,但是,部分查询还是很慢,这时候,我们就需要考虑拆分这张user表了。如果此时,我们才去做分表,可能已经太晚了,为什么呢?我以最典型的应用场景:用户筛选功能,以查询年龄在18到24岁的100位女性用户为例:在单表的情况下,我们的SQL是这么写的:SELECT * FROM user WHERE age >= 18 AND age <= 2.

2021-05-26 19:38:24 152

原创 两个程序员为 insert into select 着迷一晚,它到底有什么魔力?

一、前言:今天遇到一个事情,两个程序员对 insert into select 着迷一晚,这究竟是为神魔呢? 下面就简单说说原由;当天,在 MySql数据库 中,程序员A使用 insert into select 对某张表中的一部分数据做备份,然后同时程序员B使用程序对这张表做数据插入操作,最后出现了程序员B的插入操作失败的情况,然后他们就研究了这个问题一晚上,最终找到了导致问题出现的原因。下面就通过简单的模拟场景复现问题,然后并研究出现问题的原因,最后再找到避免问题出现的方法;本文主线:①、场.

2021-05-15 20:25:49 404 1

转载 IDEA中Debug调试的高级武功秘籍助你快速追踪BUG

前言:Java 中各种 IDE 的 Debug 功能,都是通过 Java 提供的 Java Platform Debugger Architecture (JPDA) 来实现的。借助 Debug 功能,可以很方便的调试程序,快速的模拟 / 找到程序中的错误。Interllij Idea 的 Debug 功能上说虽然看起来和 Eclipse 差不多,但是在使用体验上,还是要比 Eclipse 好了不少。Debug 中,最常用的莫过于下一步,下一个断点(Breakpoint),查看运行中的值几个操.

2021-04-02 10:24:54 847

原创 MySql中必须知道的至关重要的三种日志

前言:MySql 中有三种 log 是十分中要的,因为MySql之所以能支持 事务(实现持久化、回滚等)、数据库崩溃恢复、主从复制等,都是基于这三种日志的。至关重要的三种log:binlog 二进制日志redo log 重做日志undo log 回滚日志本文主线:简要介绍三种日志MySql事务处理中三种日志承担的角色简要介绍三种日志:1、binlog 二进制日志:binlog 二进制日志(归档日志),这个日志是由MySql的 server层 进行维护的;不管当前MySq.

2021-03-25 22:13:28 242 1

转载 一文带你了解MySql并发事务中的数据库锁、隔离级别、MVCC

前言:最近同事开发时遇到了一个事务阻塞的问题,通过网上查询发现关于MySQL事务、锁这一块的资料都比较絮乱,让人看的云里雾里,所以借着这个机会,刚好也对这一块内容做一个总结梳理,希望能比较全面去写一下MySQL的并发事务处理。本文主线:简述事务的特性与隔离级别聊聊MySql中各种类型的锁然后再聊聊MVCC是个什么东东接着再聊聊数据库锁的触发及升级,以及死锁最后说下出现锁问题时的常见排查命令简述事务的特性与隔离级别:在讲锁之前,必须要先聊聊 事务的特性与隔离级.

2021-03-05 20:22:42 367

原创 一文让你了解如何快速、优雅的实现导出Excel

前言:春节假期刚刚过去,大家是不是已经开始了搬砖生活啦,嘻嘻 o(∩_∩)o ,可我还在休假中呢 !好啦,咱们言归正传,开始聊聊正文。做过后端管理系统的同学,大概率都会收到过实现 导出Excel 的功能需求,因为这个功能在后台管理系统中是个必备功能。那大家是怎么实现这个功能的呢?使用Apache提供POI组件实现;使用现成的、简便的第三方工具库(避免重复造轮子)Hutool 工具库中的Excel工具类EasyExcel 阿里开源的基于Java的简单、省内存的读写Excel工具库.

2021-02-19 17:42:15 673

原创 根据AQS原理使用CAS + volatile实现同步代码块

前言:最近看到有人说可以使用 CAS + volatile 实现同步代码块。心想,确实是可以实现的呀!因为 AbstractQueuedSynchronizer(简称 AQS)内部就是通过 CAS + volatile(修饰同步标志位state) 实现的同步代码块。并且ReentrantLock就是基于AQS原理来实现同步代码块的;ReentrantLock源码学习和了解AQS原理可以参考:带你探索ReentrantLock源码的快乐 今天,咱们就通过 CAS + volatile 实现一个 .

2021-01-19 18:51:26 471 1

转载 一文带你了解数据库隔离级别和锁之间的关系

前言:很多人在学习数据库知识时,往往在学习到隔离级别和数据库锁这里有一些疑问:隔离级别和数据库锁之间有什么关联呢?本文就和大家聊聊这两者之间的联系,希望对大家有帮助!聊聊两者之间的联系:在具体聊之前,咱先记住一句话: 数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致不同事务的隔离级别。首先来了解下有哪四种隔离级别:读未提交:(Read Uncommitted)读已提交(Read Committed) 大多数数据库默认的隔离级别重复读(Repeata.

2021-01-12 09:47:14 4704 3

原创 一次对group by时间导致的慢查询的优化

前言:最近在测试环境中点击一个图表展示页面时,半天才得到后台响应的数据进行页面渲染展示,后台的响应很慢,这样极大的降低了用户的体验;发现这个问题后马上进行了排查 ,通过排查发现是由一个查询很慢的 group by 语句导致的;本文主线:①、简单描述下排查步骤;②、对 group by 查询慢进行优化;简单描述下排查步骤:排查主要分为了两个步骤:后台接口的监控,看看哪个方法调用时耗时多数据库开启慢查询日志,记录执行很慢的SQL推荐使用阿里开源的Java线上诊断工具 Artha.

2021-01-04 09:51:55 5186

原创 不看后悔的项目中线程池实际应用

前言:最近在看线程池方面的内容,结合源码学习完其内部原理后,心想自己在项目中有实际使用过线程池吗?想了想,确实在项目中很多地方使用到了线程池;下面来简单聊下最近在日志方面中多线程的应用:服务接口日志异步线程池化入库处理定时任务中使用多线程进行日志清理本文主线:①、线程池基本原理解读;②、线程池实际应用例子:线程池应用 Demo 项目结构描述服务接口日志异步线程池化入库处理定时任务中使用多线程进行日志清理线程池基本原理解读:啥也不说,先贴一张脑图,通过脑图对.

2020-12-30 11:03:49 4522 2

转载 后端程序员必须知道的接口幂等性

前言:最近负责的项目出了一个问题,用户操作回退失效。原本的逻辑设计中,操作回退是需要回到操作前的状态。经过查看日志发现,用户之前的操作做了两次,也就是说提交操作的接口被调用了两次,导致用户上一次的状态和这一次的状态是一样的,所以操作回退是没有问题的,问题出在了操作的接口被调用了两次 。对于防止重复提交,一般是放在前端页面控制的,用户点击完按钮之后,后台返回成功的结果,按钮就不可见,实践证明,客户端的限制操作不是绝对可靠的。针对上面的场景问题,进而引发了下文的内容;本文主线:①、什么是接.

2020-12-04 12:45:07 395

转载 一文让你彻底明白ThreadLocal

前言:ThreadLocal在JDK中是一个非常重要的工具类,通过阅读源码,可以在各大框架都能发现它的踪影。它最经典的应用就是 事务管理 ,同时它也是面试中的常客。今天就来聊聊这个ThreadLocal;本文主线:①、ThreadLocal 介绍②、ThreadLocal 实现原理③、ThreadLocal 内存泄漏分析④、ThreadLocal 应用场景及示例注:本文源码基于 JDK1.8ThreadLocal 介绍:正如 JDK 注释中所说的那样: ThreadLocal .

2020-12-02 19:23:23 4939 6

原创 初闻MongoDB(一)、从零带你了解MongoDB的前世今生

前言:最近在看MongoDB相关知识,刚开始听到MongoDB时,一脸懵圈,这是个啥子数据库呀 。但是通过学习后,发现这个数据库挺牛掰的呀;嘿嘿 。。。。下面就带大家一起聊聊这个数据库 ,看看它到底有什么牛掰之处 。本文主线:①、MongoDB 简介②、MongoDB支持的功能有哪些?③、MongoDB的存储引擎简述④、MongoDB知识扩展MongoDB 简介:MongnDB是一个 分布式文件存储数据库 (或叫文档数据库);MongoDB是一个介于 关系数据库和非关系数.

2020-11-29 15:31:40 537

转载 Linux查看与测试磁盘IO性能的Shell命令

前言最近,公司需要设计一个监控系统,监控部署了服务的服务器的磁盘IO的情况;设计方案:写一个Shell脚本,然后使用Java调用脚本执行,获取执行时的磁盘IO情况,包括磁盘IO的负载、读写等待时间的数据;开始时,磁盘IO相关的Shell命令不太熟悉,然后就去网上一顿查询操作,最后本文就诞生了!本文主线:①、查看磁盘 IO 性能的Shell命令②、测试磁盘 IO 性能的Shell命令查看磁盘 IO 性能的Shell命令top 命令:top 命令通过查看 CPU 的 wa% 值来判断

2020-11-25 09:44:57 2745

转载 一文图解JVM面试的全部考点

前言本文将通过简介Class字节码文件,Class类加载,类加载完后的JVM运行时数据区,运行中的GC垃圾回收等相关知识带大家了解在面试时JVM常问的考点。注:本文为转载文章,原文作者:ElasticForce , 原文地址:JVM面试常考点全在这:多图看懂Java虚拟机 。本文主线:①、Class字节码文件②、Class类加载③、JVM运行时数据区④、GC 垃圾回收⑤、常见的垃圾回收器Class字节码文件class文件也叫字节码文件,由Java源代码(.java文件)编译而成的字

2020-11-23 09:28:21 253

原创 面试官说道,小伙子耗子尾汁,查询SQL的执行流程难道都不知道吗?

前言最近朋友小王正在找工作,然后有一个面试官问他知不知道 “查询SQL具体的执行流程” 。小王说不知道呀,然后面试官直接对小王说:小伙子 耗子尾汁(好自为之) ,怎么连这么简单的都不知道呢?小王听后脱口而出:哼!面试官你 不讲武德 ,不按套路出牌呀,你应该问问索引相关的知识呀,这个我倍清楚。在听完小王描述后,自己也在脑海中搜了搜这个知识点,可怜的是我的知识库里也没找到相关内容,然后就去面壁思过了,随后本文就诞生了。注意 :本文主要以 MySql 为例;说到了MySql了,然后再唠

2020-11-21 09:58:43 316

转载 一文让你彻底明白JVM参数该怎么设置

前言在网上查了很多如何配置JVM参数的讲解文章,但是生产环境里JVM参数的值到底配置为多少,却没能得到一个具体的规范;确实,生产环境受到各方面的影响,设置合适的JVM参数实在比较困难,但是本文将会给大家一个相对合理的参数设置指标。本文主线①、JVM运行时数据区分析②、JVM参数设置时的注意点③、简单的GC垃圾回收过程描述④、最终JVM参数配置指南本文为转载文章,原作者:蓝山牧童, 原文地址:jdk1.8——jvm分析与调优JVM运行时数据区分析下面将主要分析下 1.7、1.8 两

2020-11-16 22:02:32 1881

原创 自定义注解的魅力你到底懂不懂

前言你知道自定义注解的魅力所在吗?你知道自定义注解该怎么使用吗?本文一开始的这两个问题,需要您仔细思考下,然后结合这两个问题来阅读下面的内容;如果您在阅读完文章后对这两个问题有了比较清晰的,请动动您发财的小手,点赞留言呀!本文主线:注解是什么;实现一个自定义注解;自定义注解的实战应用场景;注意:本文在介绍自定义注解实战应用场景时,需要结合拦截器、AOP进行使用,所以本文也会简单聊下AOP相关知识点,如果对于AOP的相关内容不太清楚的可以参考此 细说Spring——AO

2020-11-15 08:45:01 1205

原创 数据库连接池连接耗尽,导致tomcat请求无响应,呈现出假死状态

前言:最近,测试部门的同事找到我,说他们测试时,没一会就发现服务接口请求一直无响应,Tomcat跟死掉了一样,也没有返回任何的错误响应,说让我赶紧排查下;听完后,我瞬间激灵了下,妹的,最近老是出问题,领导都要给我开批评大会了。哈哈,开玩笑的,像我这么英俊的人,领导怎么会忍心批评我呢,哼,我把这个问题马上解决掉,都不会让领导知道的!简单说下程序部署情况:tomcat + oracle排查过程:排查时,可以使用命令进行排查,也可以使用可视化监控工具;例如使用使用JDK自带的 jvisualvm.e

2020-10-18 22:34:43 8256 2

原创 线上服务平均响应时间太长,怎么排查?

最困难的事情就是认识自己!个人网站 ,欢迎访问!前言:最近线上环境某个接口服务响应时间偏长,导致用户体验超差,那平时该怎么快速的排查这类问题呢?①、为代码添加上详细的打印日志; 不建议 ,一是线上环境,没法随便的重新部署更换了详细日志的代码,二是 添加详细的日志输出,那就意味这会生成大量的日志文件,这些日志文件会占据大量服务器磁盘空间。②、搭建一个模拟了线上环境的测试环境进行复盘排查;额,出现了这种问题哪有那么多的时间让你进行环境复盘排查,所以此方案也是 不建议的 。③、线上诊断神器 Ar.

2020-10-06 20:11:58 1992 2

原创 JMeter压测时跑一会聚合报告就不动了

最困难的事情就是认识自己!个人网站 ,欢迎访问!前言:最近,使用 JMeter 对项目进行压力测试;起初, JMeter 设置的并发线程数只是10个,然后在进行压力测试时,发现跑了一会后 JMeter 聚合报告 中的中数字全部不动了(像卡死了一样);上面简单描述了本文要说的问题;下面将主要从两方面来进行聊。①、具体问题描述②、具体的排查思路问题详述:项目部署情况: 提供服务接口的项目 + Tomcat + Oracle提供服务接口的项目:接口中包含很多的数据库查询.

2020-09-24 21:05:10 5349 3

原创 系统优化 - 索引该怎么创建?

最困难的事情就是认识自己!个人网站 ,欢迎访问!前言:想要彻底明白索引该怎么创建,以及怎样创建出最合理的索引,首先需要对一些知识要有所了解;本文将从以下几方面来进行阐述:索引的相关知识(包括索引数据结构等);索引创建的准则/依据;学会查看sql执行计划,以及哪些sql执行时会导致索引失效;索引基本知识:1、索引的数据结构:索引的数据机构是 B+Tree,B+Tree 是一个多路平衡查找树。1.1、至于为什么索引使用此数据机构呢?最主要一个原因就是:使用B+Tree这种.

2020-08-29 18:29:30 1110

转载 系统优化 - Tomcat优化,你值得拥有!

前言:Tomcat作为Web应用的服务器,目前绝大多数公司都是用其作为应用服务器的;应用服务器的执行效率会影响系统执行,这里会讲Tomcat怎样进行配置能提高处理性能;除此之外也必然会提到对应的JVM参数的优化的一些经验。本文为 转载文章 ,原文地址:系统优化怎么做-Tomcat优化Tomcat的运行模式:运行模式分3种模式:bio:默认的模式,效率比较低nio:优化时使用的模式apr:对系统配置有一些比较高的要求确认Tomcat运行模式:查找配置文件 server.x

2020-08-25 09:36:43 247

转载 联合索引在B+Tree上的存储结构及数据查找方式

最困难的事情就是认识自己!个人网站,欢迎访问!前言:本篇文章主要是阐述下 联合索引 在 B+Tree 上的实际存储结构。本文主要讲解的内容有:联合索引在B+树上的存储结构联合索引的查找方式为什么会有最左前缀匹配原则在分享这篇文章之前,我在网上查了关于MySQL联合索引在B+树上的存储结构这个问题,翻阅了很多博客和技术文章,其中有几篇讲述的与事实相悖。具体如下:很多博客中都是说:联合索引在B+树上的 非叶子节点 中只会存储 联合索引 中的第一个索引字段 的.

2020-08-14 09:49:45 8118 39

原创 查找字符串中最长不含重复字符的子字符串,计算该最长子串的长度

前言:算法题:查找一个字符串中最长不含重复字符的子字符串,计算该最长子字符串的长度;下面将使用 滑动窗口 方法实现,并通过对滑动窗口算法一步步进行优化,使其空间和时间的消耗一步步降低;什么是滑动窗口?滑动窗口:一般是指 运行在一个大数组上的子数组,该大数组是一个底层元素集合 。例如:假设有大数组 [ a b c d b e f d n ] ,设定一个大小为 3 的小数组 为 滑动窗口 ;则存在下面的窗口:[a b c] [b c d] [c d b] [d b

2020-07-10 21:58:20 2156

原创 IDEA对使用了第三方依赖jar包的非Maven项目打jar包

前言:最近,遇到了一个问题,都快把我整疯了;这个问题开始是由 使用IDEA 对 非Maven项目进行打 Jar 包 引起的;本来就是想简简单单的打个 jar 包,并将使用的第三方依赖 jar 包打进去,但是问题就出现在了项目中依赖的第三方 jar 包( bcprov-jdk15on-1.54.jar )存在签名,那在打包过程中会把 签名 破坏掉,导致在使用打好的jar包时报错: **JCE cannot authenticate the provider BC ** 。注意:如果依赖的第三方j.

2020-07-03 11:26:11 2544 1

原创 旋转链表?面试官你确定要让手写这个吗?

前言:今天练习了一道关于单链表的算法题 《旋转链表》,由于之前写过一篇 《单链表反转?面试官你确定要问这个吗?》 的文章,然后今天又碰到了这道有关单链表的算法,就想着再 “水篇文章” 吧(带引号的哈),可以证明我没偷懒,按时写作业了。嘿嘿 . . . . . . . . . 接下来,①、首先回忆下单链表的数据结构 ;②、详解描述下什么是旋转链表(题目描述); ③、图解旋转链表代码数据结构:1. 单链表的数据结构:单链表是一种线性结构,它是由一个个 节点(Node) 组成的。并且每个节点(N

2020-06-07 19:25:53 314

原创 模拟实战排查堆内存溢出问题 OOM Error : Java heap space

前言:模拟实战中排查堆内存溢出(java.lang.OutOfMemoryError: Java heap space)的问题。堆内存溢出的原因:一般都是创建了大量的对象,这些对象一直被引用着,无法被GC垃圾回收掉,最终导致堆内存被占满,没有足够的空间存放新创建的对象时,就会出现堆内存溢出问题。在实际的业务场景中出现内存溢出的问题,排查起来一般是十分困难繁琐的,本文将通过结合一个简单的实例来阐述排查的具体思路和步骤。准备:注意:在实际场景中,一般都是部署在Linux服务器中的项目报出内存溢出

2020-05-15 15:25:01 1057

空空如也

空空如也

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

TA关注的人

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