自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王华春_Jason

———随风潜入夜 润物细无声

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

原创 java.lang.OutOfMemoryError: GC overhead limit exceeded问题分析及解决

我们学习再多的理论知识,不如一次生产实践中遇到一次问题带来的收获多。当然这里分享的如有错误还望指出,只有这样才能不断的进步。Java OOM 基础篇:常见的OutOfMemoryError 场景二 : GC overhead limit exceeded 问题详解 | HeapDump性能社区。

2023-01-01 06:00:00 801 4

原创 火遍全网的chatGPT(文末有彩蛋)

最近网上非常火爆的CHATGPT,它是OpenAI开发的一款开源的自然语言处理 (NLP) 模型,用于实现对话生成和语言模型预测。CHATGPT 模型基于 GPT-3 (Generative Pretrained Transformer 3) 模型构建,拥有语言理解和文本生成能力。CHATGPT 模型可以用于实现聊天机器人、智能助手、辅助翻译等应用。该软件目前还处于测试阶段,我有幸玩了几把,给我的第一感觉是还不错,连马斯克也在感叹“CHATGPT 好得吓人,我们离强大到危险的人工智能不远了”。

2022-12-12 15:01:33 6251 4

原创 EasyExcel实现导入并校验

总结公司业务中需要用户导入Excel数据,并且每次几万条,要求速度快,用户操作方便灵活,有些非必填字段的数据可以为空。当然目前有很多成熟的框架都可以实现该功能,在这里就不详细的描述我们是如何选择这些框架的过程,我们选择的是阿里的easyExcel框架,号称操作简单、省内存、性能稳定等。导入功能本身并没什么复杂的,这里主要想分享下我在

2022-12-07 18:18:41 729

原创 MongoDB多条件动态查询

公司业务框架中有需要用到MongoDB数据库进行数据的存储,前端需要在该框架下进行多条件的动态组合查询。如果在之前mysql中该问题非常好实现,那么我们使用的是MongoDB,又该如何实现呢?

2022-11-11 14:05:52 485 1

原创 Ubuntu安装Jenkins

2、maven环境maven官方网站:Maven – Download Apache Maven(1)下载安装包(2)linux创建文件夹(3)解压该文件夹(4)进入maven文件夹(5)修改文件(6)改环境变量(7)重新加载配置文件(8)查看是否安装成功jenkins官方网站:War Jenkins Packages注意:Jenkins对jdk有要求(官方网站有说明)3、将下载好的jenkins安装包上传到新建的文件夹中4、在jenkins文件

2022-10-24 21:01:50 491 1

原创 常用Excel多种格式转Csv

在开发过程中经常有遇到需要将Excel转换成csv形式,Excel中的格式有.xlsx和.xls两种,关于这方面的框架有很多,有的只能转其中的一种格式、有的需要钱;这些估计都是次要的,最主要还是需要看他们的性能,有的需要很大的并发量、有的需要上传很大的数据量、有的又需要上传的速度。当然他们的好处各有不同,我们选择其中一种最关注的是使用方便,在自己的业务场景下效率还非常的OK,那就是最适合自己的。下面分享下我们公司常用的一种方式POI。

2022-09-29 17:07:25 345 1

原创 Xshell7如何查看登录密码

那就是当初登录的密码忘记了,但是由于当时用Xshell登录Linux的时候有保存,于是高兴的打开Xshell却是下面场景。问题的解决方法从来都不是一个,查了下百度有很多,今天想给大家分享一个我感觉比较有意思而且还很快速的方法,这里当然需要安装一个小小的软件,这个小软件非常的轻便。当然该软件的安装也是非常的方便,只需要下载该查看器的压缩包到自己的本地,然后解压该压缩包,就能够获得下图的exe文件,然后双击该exe文件就可以直接使用了。提示:如果有不知道如何打开上面的页面的话,下面的图片可以解决。

2022-09-20 17:01:59 2965 1

原创 Z字形变换(Java)

我通过做这道题学习到了很多,首先是做题的思路,这个是重点中的重点,每个人可能都有不同的思路,我也看了很多很棒的思路,对我解答都起到了很大的帮助,但是通过自己一点点亲手画出来,验证后的更有意义。其次是实现过程中通过总结出来的规律直接操作字符串,输出想要的结果,省略了中间组成Z字形的部分。最后就是通过tag标签的异或方式巧妙的实现了不同规律间的切换。总之解题的结果并没那么重要,重要的是在解题的过程中如何实现的过程,以及从该过程中的到的启发。...

2022-08-12 18:58:10 245 5

原创 swagger启动报错:java.lang.NumberFormatException: For input string: ““

项目启动,然后浏览器打开swagger文档的时候总是报下面的错误,但是文档和程序都正常。属性的注解信息出了问题,空。""无法转成Number。

2022-08-05 18:11:51 379

原创 Nacos安装

文章帮忙您快速在您的电脑上,下载、安装并使用 Nacos

2022-07-18 17:40:49 462

原创 mybatis-plus分页查询默认最多查询500条记录的问题

一、背景描述Springboot项目集成了Mybatis-plus,最近在做一个导出功能,我的详情里面可能会有上好几千条数据,后面的导出需要将详情中的数据导出来,单页查询(pageSize < 500时)很正常,需求是把详情中所有数据全部导出,但是每次导出的时候只能导出500条数据,估计是源码里加了默认限制。二、问题原因查看源码:@Setter@Accessors(chain = true)@Intercepts({@Signature(type = Statement.

2022-05-16 11:27:40 1373 2

原创 按年月日递增序列号

/** * @Title: TODO * @ClassName SerialUtils * @Date 2022/3/18 16:36 * @Version 1.0 */public class SerialUtils { private static final int MAX_VALUE = 10000; private static final String FORMAT = "yyyyMMdd"; private static final Format DF.

2022-03-18 17:46:07 137

原创 2021年年终总结

回首2021年,是播种希望的一年,也是收获的一年,几次想提笔总结,无奈自己肚中的墨水有限,因此就特意用CSDN的年度报告来总结自己的这一年:...

2021-12-31 17:59:15 372 1

原创 开发中常用字段校验

项目开发过程中,对一些字段的校验在所难免,如果字段少咱们还可以对字段进行if、else方式校验,但是字段多了呢?再使用这样的方式是不是会很糟糕呢?下面对一下常用的校验方式进行总结,这里主要是springboot在项目在实体层的方式进行注解式的校验:一、相关注解约束注解 说明 @AssertFalse 被注释的元素必须为 false @AssertTrue 被注释的元素必须为 true @DecimalMax(value) 被...

2021-12-05 16:38:10 904 1

原创 1024节献上最新鲜的京东一面总结

京东一面总结1、做个自我介绍吧2、你有参与整个框架的技术选型吗?3、你们为什么会选择springcloud阿里巴巴?4、为什么没有选择用dubbo?5、看到你们项目上有用分片上传,断点续传,你先介绍下是怎么实现的?6、你们项目上是怎么做熔断的?7、你们是怎么在项目上做sentinel来实现?能说说它的原理吗?8、你们是怎么配置的呢?9、你们没有做集群吗?10、你对nacos写的是精通,你介绍下?11、一致性是怎么保证的?12、链路追踪为什么用skywalking?13、你们是怎么实

2021-10-24 21:22:36 245 4

原创 深入理解JMM内存模型

目录一、JMM内存模型产生的背景?二、什么是JMM内存模型?三、JMM内存模型用来解决什么问题?四、JMM内存模型与JVM内存模型有什么关系?1、JMM是Java物理内存模型2、JVM是运行时内存模型3、JMM内存模型和JVM运行时内存模型的关系一、JMM内存模型产生的背景?JMM(Java内存模型)源于物理机器CPU架构的内存模型,最初用于解决MP(多处理器架构)系统中的缓存一致性问题,而JVM为了屏蔽各个硬件平台和操作系统对内存访问机制的差异化,提出了JMM的概.

2021-10-17 16:27:26 597 2

原创 硬核干货Java集合详解

目录一、问题是最好的老师二、集合的由来三、数组存在的问题四、数组和集合的区别?五、集合是什么?六、集合整体架构图七、集合架构图详解1、Collection2、ListArrayListLinkedList3、SetHashSetTreeSetLinkedHashSet4、MapHashMapTreeMap集合框架整体思维模式:一、问题是最好的老师思考:首先要明白集合是怎么来的?为什么要有集合?它来给我们解决了什.

2021-10-17 11:02:17 247

原创 微服务灵魂摆渡者——Nacos实践

目录一、前置条件二、基本概念二、启动服务注册与发现三、启动配置管理四、数据持久化到MySQL本篇主要是以面向Spring Cloud的使用者为主,通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务注册发现。本篇Nacos版本为1.1.4通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。 通过 Nacos Server 和 spring-cloud-s...

2021-10-06 21:03:53 369 1

原创 微服务灵魂摆渡者——Nacos工作原理详解

Nacos一般读作/nɑkəʊs/,这个名字来源于“DynamicNamingandConfigurationService”。其中na取自“Naming”的前两个字母,co取自“Configuration”的前两个字母,而s则取自“Service”的首字母。服务(Service)是Nacos世界的一等公民,Nacos致力于帮助您发现、配置和管理微服务。...

2021-09-21 17:31:50 405 2

原创 图文并茂的RabbitMQ工作模式

一、简单模式1、简单模式一对一模式,一个生产者、一个消费者,生产者发送消息,消费者消费消息。生产者:也就是要发送消息的程序消费者:消息的接收者,会一直等待消息到来消息队列:类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从其中取出消息2、实例代码://生产者public class Producer { public static void main(String[] args) throws IOException, TimeoutException

2021-09-15 20:55:18 168

原创 RabbitMQ安装

安装在阿里云服务器一、下载RabbitMQ官网我用的版本二、安装rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpmrpm -ivh socat-1.7.3.2-1.1.el7.x86_64.rpm --force --nodepsrpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm1、默认没有开启管理界面,开启web页面管理插件:systemctl enable rabbitm.

2021-09-14 15:12:25 98

原创 亲手给你搭建spring源码环境

一、源码下载GitHub - spring-projects/spring-framework: Spring FrameworkSpring-Framework: Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本二、构建工具1、下载Gradle Distributions注意:版本还是很重要,特别是跟你的jdk版本要对应,我试过很多版本,我选择的是

2021-09-11 20:29:57 448 2

原创 【多线程系列】synchronized详解(4)

一、Java对象头synchronized使用的锁是存放在Java对象头里面,具体位置是对象头里面的MarkWord,MarkWord里默认数据是存储对象的HashCode等信息,但是会随着对象的运行改变而发生变化,不同的锁状态对应着不同的记录存储方式二、Monitor RecordMonitor Record是线程私有的数据结构,每一个线程都有一个可用monitor record列表,同时还有一个全局的可用列表。每一个被锁住的对象都会和一个monitor record关联(对象头的MarkWo

2021-07-04 08:15:54 217

原创 【多线程系列】synchronized详解(3)

一、什么是Monitor?借用大佬对Monitor理解的实例:https://www.hollischuang.com/archives/2030先来举个例子,然后我们在上源码。我们可以把监视器理解为包含一个特殊的房间的建筑物,这个特殊房间同一时刻只能有一个客人(线程)。这个房间中包含了一些数据和代码。如果一个顾客想要进入这个特殊的房间,他首先需要在走廊(Entry Set)排队等待。调度器将基于某个标准(比如 FIFO)来选择排队的客户进入房间。如果,因为某些原因,该客户客户暂时因为其

2021-06-29 19:25:47 123 1

原创 【多线程系列】synchronized详解(2)

一、方法上的synchronized1、实例方法:class Test{ public synchronized void test() { }}//等价于class Test{ public void test() { synchronized(this) { } }}2、静态方法:class Test{ public synchronized static void

2021-06-25 22:56:39 112 2

原创 【多线程系列】Synchronized详解(1)

一、共享问题两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗?@Slf4j(topic = "c.Test01")public class Test01 { static int counter = 0; static Object lock = new Object(); public static void main(String[] args) throws InterruptedException { Thread t1

2021-06-25 20:45:05 183 2

原创 【多线程系列】线程的状态与常用方法详解

一、线程的状态1、线程状态,线程可以处于以下状态之一:NEW 尚未启动的线程处于此状态。RUNNABLE 在 Java 虚拟机中执行的线程处于这种状态。BLOCKED 被阻塞等待监视器锁的线程处于这种状态。WAITING 无限期等待另一个线程执行特定操作的线程处于此状态。TIMED_WAITING 等待另一个线程执行操作达指定等待时间的线程处于此状态。TERMINATED 已退出的线程处于此状态。一个线程在给定的时间点只能处于一种状态。 这些状态是不反映任何操作系统线程状态

2021-06-25 14:54:31 132 1

原创 【多线程系列】线程的创建与启动详解

一、创建线程下面两种方式相信一定非常的熟悉,这是我们常用的方式,下面就以它开头,对线程的创建和启动做一个详细的分析。也是希望通过分析这个过程来理解多线程。1、继承Thread的方式创建线程public class ThreadTest extends Thread { public void run(){ System.out.println("重写run方法"); } public static void main(String[] args) {

2021-06-24 21:15:04 245 1

原创 【SpringBoot系列】首页和模板引擎

一、欢迎页是如何映射?1、还是原来的办法:在WebMvcAutoConfiguration.java中找到welcomePageHandlerMappingpublic WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext,FormattingConversionService mvcConversionService, ResourceUrlProvider..

2021-06-24 11:35:56 85 1

原创 【SpringCloud系列】Gateway网关简介及使用

一、Gateway是什么Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用Zuul网关;但在2.x版本中,zuul的升级就是一直跳票,SpringCloud最后自己研发了一个网关代替Zuul。那就是 SpringCloud Gateway ,gateway是zuul 1.x版本的替代。Gateway是在Spring生态系统之上架构的API网关服务,基于Spring 5,Spring Boot2 和Project Reactor技术。Gateway旨在提供一种简单而有效的方式来对.

2021-06-15 23:30:30 5680

原创 【SpringBoot系列】自动装配原理

一、自动装配通过@SpringBootApplication扫描的包,会全部被springboot自动装配,并最终会指向“META-INF/spring.factories”文件,这个文件是一个核心自动装配文件,所有的东西都在这里面配置好了。每个XXXAutoconfiguration,都是容器中的一个主键,他们都有可能被加到容器中来做一些自动配置,通过上面的源码追踪,最后找到的文件就是下图的文件。二、思考:我们的application.yml和spri...

2021-06-11 21:27:40 1609

原创 【SpringBoot系列】配置文件

一、springboot配置文件1、application.properties 语法结构 :key=value 2、application.yml 语法结构 :key:空格 value 3、配置文件的作用:修改springboot自动配置的默认值,因为springboot在底层都给我们自动配置好了,如果要改他的默认值就需要通过配置文件进行修改。二、yaml初识1、概述YAML是"YAML Ain't a Markup Language"(...

2021-06-04 19:47:35 142 2

原创 【SpringBoot系列】SpringBoot运行原理初探

一、pom.xml1、父依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.3.RELEASE</version><relativePath/> <!-- lookup pa...

2021-05-24 17:03:21 79 6

原创 【SpringBoot系列】SpringBoot入门

一、springboot主要内容概览二、Spring Boot的主要优点: 为所有Spring开发者更快的入门 开箱即用,提供各种默认配置来简化项目配置 内嵌式容器简化Web项目 没有冗余代码生成和XML配置的要求 三、微服务架构微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLI...

2021-05-21 17:16:45 71 6

原创 【SpringMVC系列】拦截器

一、概述1、拦截器:AOP思想的具体应用 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 SpringMVC中的拦截器是由实现 HandlerInterceptor 或者继承 HandlerInterceptorAdapter 来实现的. SpringMVC拦截器的preHandle方法返回值是Boolean类型,所以条件够就放行,执行方法,而条件不足,前端无法知道是什么原因而被拦截,下面来解决这个问题。 .

2021-05-14 14:50:11 81 2

原创 【SpringMVC】JSON

JSON一、概述 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。 采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示..

2021-05-07 19:40:16 51 2

原创 【SpringMVC系列】Ajax

一、跳转方式1、ModelAndView对象根据view的名称和视图解析器调到指定的页面({视图解析器前缀}+viewName+{视图解析器后缀})<!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 前缀 --><p...

2021-04-24 21:14:40 81 2

原创 操作系统概论学习总结

我学习了那么多计算机的课程,操作系统学习的次数最多,难度相对较大,但是我对它是又爱又恨。爱它:我觉得它是一门伟大的课程,诞生才短短几十年,却融入了人们生活的方方面面。恨它:是因为它的难度,每次考试总能被它卡住,其实关键还是在于自己没有学好,看书还是没有看到位。认识全书的每一个字,但是未必理解其中的含义。书是需要看多遍,而且每次看感觉都有不一样的感觉。本次学习就有深刻的体会,时间虽然花的不多,但是因为有了前几次学习的积累,这次看书明显能感觉到之前看书中的很多东西没有看到;之前很多东西没有理解到。相信如果我有机

2021-04-13 11:35:31 269 3

原创 【SpringMVC系列】SSM框架整合

一、环境 IDEA MySQL5.7.X Tomcat9 Maven3.6 二、建立数据库建表CREATE DATABASE ssmbuild;CREATE TABLE books (bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT "书id" PRIMARY KEY,bookName VARCHAR(100) NOT NULL COMMENT "书名",bookCount...

2021-04-12 11:23:18 101 3

原创 【SpringMVC系列】数据处理和跳转

一、跳转方式1、ModelAndView对象根据view的名称和视图解析器调到指定的页面({视图解析器前缀}+viewName+{视图解析器后缀})<!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 前缀 -->...

2021-04-05 18:59:31 130

空空如也

空空如也

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

TA关注的人

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