自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

初心不改

前路漫漫,当克己,当慎独。

  • 博客(400)
  • 资源 (2)
  • 问答 (7)
  • 收藏
  • 关注

原创 关于Velocity模板语言(.vm文件)中,如何表示数据的数据类型?

【代码】关于Velocity模板语言(.vm文件)中,如何表示数据的数据类型?

2024-04-18 18:37:15 114

原创 关于FastJson转换map集合为json字符串解析时格式出错的问题

在Java中使用Fastjson将包含Map类型key的Map集合转换为String时,如果直接使用Fastjson的JSON.toJSONString()方法,可能会因为JavaScript的安全性限制(例如对象的key必须是字符串)而在前端JavaScript解析时出现问题。因为当 转换时,,不符合时,会在转换后出现引号丢失的问题。在JS端解析时会报错。

2024-04-18 10:45:08 298 1

原创 JS中写了selected属性,但是浏览器页面元素没展示selected,然而选项值确实默认选中了,是为什么?

在React中,selected属性并不会直接显示在DOM元素上,因为React使用虚拟DOM来管理和更新UI。当你在React组件中设置selected属性时,React会在内部的虚拟DOM中记录这个属性,并在需要时使用它来更新实际的DOM。然而,虽然selected属性可能不会直接显示在DOM元素上,但它的效果(即选中的选项)仍然会在浏览器中显示。所以,即使你在浏览器的元素检查器中看不到selected属性,但只要你在React组件中正确地设置了它,选中的效果就会在页面上显示。

2024-04-16 15:25:30 256

原创 多选下拉框数据溢出父页面高度被截断

(在我的具体实例中,下拉框与表格页面都为Tabs ——> TabPane 所包含。故下拉框高度超出页面高度总会隐藏/截断。去掉这两个组件包含,下拉框恢复浮动在页面上方不会被遮挡,给定页面最小高度,下拉框不超出页面也更美观。

2024-01-15 17:25:54 530

原创 React ant table警告:Each child in a list should have a unique “key“ prop.

React Ant table表格每一行都需要一个唯一标识来确保不重复,如果不加该属性,就会出现这个警告。

2024-01-09 14:37:38 870

转载 Error: Maximum update depth exceeded. This can happen when a component repeatedly calls setState....

本文转载于:https://blog.csdn.net/qq_45149366/article/details/119890627。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用。加括号代表这个函数立即执行,不加括号代表保存了一个指向函数的指针,等触发点击事件的时候才会执行这个函数。时,就会发生这种情况。React 限制嵌套更新的数量以防止无限循环。我这里在render中调用函数写错了,要么写成。直接调用,要么价格箭头函数。

2023-12-26 11:22:52 450

转载 java List转String,逗号分隔

2、将逗号分隔的字符串转换为List。1、将list转化为逗号分割的字符串。3、将字符串中的字符替换。

2023-11-29 10:54:13 3646

原创 集合的removeIf方法

如下:删除list中的字符串 “123”

2023-11-17 14:00:22 755

转载 微服务架构 VS SOA架构

而微服务架构,在另一方面,是更适合于较小和良好的分割,基于Web的系统。最后,我们可以得出结论,因为它们服务于不同的目的,微服务和SOA确实是不同类型的体系结构。微服务架构中的前缀“微”是指内部组件的粒度,意味着它们必须比SOA架构的服务往往要小得多。面向服务的架构不太关于如何对应用程序进行模块化构建,更多的是关于如何通过分布式、单独维护和部署的软件组件的集成来组成应用程序。乍一看,微服务架构似乎谈论的是与SOA相同的事情。可以说,两种架构比起不同的架构有更多的相似之处,然而,它们是两种不同类型的架构。

2023-09-23 16:58:49 306

转载 Spring的控制反转、依赖注入、循环依赖

调用者无需主动获取被依赖对象,调用者只需要被动接受Spring容器为调用者的成员变量赋值即可(只要配置一个<property.../>子元素,Spring就会执行对应的setter方法为调用者的成员变量赋值)。反转资源获取的方向。应用程序原本是老大,要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,被动的等待IoC容器来创建并注入它所需要的资源了。Spring容器管理容器中的Bean之间的依赖关系,Spring使用一种被称为“依赖注入”的方式来管理Bean之间的依赖关系。

2023-09-18 21:41:10 128

转载 SQL优化案例2

转载于:https://zhuanlan.zhihu.com/p/528190925。

2023-09-18 21:00:39 170

转载 SQL调优案例1

是最常用的场景之一,但也通常也是最容易出问题的地方。重写为 JOIN 之后,子查询的选择模式从 DEPENDENT SUBQUERY 变成 DERIVED,执行速度大大加快,从7秒降低到2毫秒。比如下面 UPDATE 语句,MySQL 实际执行的是循环/嵌套子查询(DEPENDENT SUBQUERY),其执行时间可想而知。在前端数据浏览翻页,或者大数据分批导出等场景下,是可以将上一页的最大值当成参数作为查询条件的。不难看出子查询 c 是全表聚合查询,在表数量特别大的情况下会导致整个语句的性能下降。

2023-09-18 20:17:59 81

转载 算法案例:如何判断链表有环?

于是我们从链表头、相遇点分别设一个指针,每次各走一步,两个指针必定相遇,且相遇第一点为环入口点(慢指针走了n步,第一次相遇在c点,对慢指针来说n=s+p,也就是说如果慢指针从c点再走n步,又会到c点,那么顺时针的CB距离是n-p=s,但是我们不知道s是几,那么当快指针此时在A点一步一步走,当快慢指针相遇时,相遇点恰好是圆环七点B(AB=CB=s))。例如这样的链表:A->B->C->D->B->C->D, 当遍历到节点D的时候,我们需要比较的是之前的节点A、B、C,不存在相同节点。是0+1+2+3+…

2023-08-29 09:25:23 103

原创 区分什么是Java内存模型(JMM)和 JVM运行时数据区

Java的内存区域和内存模型是不一样的东西,内存区域是指JVM 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。

2023-08-26 15:55:52 786

原创 JVM运行时数据区

此后经过分析指令,执行指令。在上面工作都完成之后,从虚拟机的视角来看,一个新的对象已经产生了,但从 Java 程序的视角来看,对象创建才刚开始,在上面工作都完成之后,从虚拟机的视角来看,一个新的对象已经产生了,但从 Java 程序的视角来看,对象创建才刚开始, 方法还没有执行,所有的字段都还为零。对象的创建在虚拟机中是一个非常频繁的行为,哪怕只是修改一个指针所指向的位置,在并发情况下也是不安全的,可能出现正在给对象 A 分配内存,指针还没来得及修改,对象 B 又同时使用了原来的指针来分配内存的情况。

2023-08-26 15:54:51 643

转载 面试题:如何进行jvm调优?有过经验吗讲讲

之所以说内存存在碎片化现象就是根据 used 和 capacity 的数据得来的,上面说了元空间的分配以 chunk 为单位,即使一个 ClassLoader 只加载1个类,也会独占整个 chunk,所以当出现 used 和 capacity 两者之差较大的时候,说明此时存在内存碎片化的情况。真正的问题是,程序猿在错误的地方和错误的时间花了太多的时间担心效率问题;当然,更重要的是,大部分的应用 QPS 都不到10,数据量不到几万,这种低压环境下,想让 JVM 出问题,说实话也挺难的。

2023-08-23 16:05:09 785

原创 linux下系统问题排查基本套路

top 查找cpu占用高的进程ps 找到对应进程的pidtop -H -p pid 查找cpu利用率较高的线程printf ‘%x\n’ pid 将线程pid转换为16进制得到 nidjstack pid |grep ‘nid’ -C5 –color 在jstack中找到对应堆栈信息进行分析。

2023-08-23 11:53:20 676

转载 转载:Java线上问题如何排查处理?

当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程。注意:上面两个YGCT,FGCT是新生代和老年代各自执行的gc的总的时间,如果需要算Full GC平均时间,则需要用FGCT/FGC,如果平均时间大于1s,则需要考虑优化了.然而,在某些情况下日志反应不了对应的问题,我们就需要自己进行排查,也是本篇文章所写目的所在.在排查时主要有三个步骤,机器层面,进程层面和线程层面.

2023-08-23 11:06:34 157

转载 OOM异常与jvm参数调优

复杂和高并发下的服务,必须保证每次 gc 不会出现性能下降,各种性能指标不会出现波动,gc 回收规律而且干净,找到合适的 jvm 设置。可以适当调大年轻代容量,让大对象可以在年轻代触发 yong gc,调整大对象在年轻代的回收频次,尽可能保证大对象在年轻代回收,减小老年代缩短回收时间.java堆用于存储对象实例,我们只要不断的创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,就会在对象数量达到最大堆容量限制后产生内存溢出异常。(1).jps -l:找到当前进程id.

2023-08-23 10:54:14 432

转载 Java线上问题排查思路处理流程及定位工具

Java 语言是当前互联网应用最为广泛的语言,作为一名 Java 程序猿,当业务相对比较稳定之后平常工作除了 coding 之外,大部分时间(70%~80%)是会用来排查突发或者周期性的线上问题。由于业务应用 bug(本身或引入第三方库)、环境原因、硬件问题等原因,Java 线上服务出现故障 / 问题几乎不可避免。例如,常见的现象包括部分请求超时、用户明显感受到系统发生卡顿等等。尽快线上问题从系统表象来看非常明显,但排查深究其发生的原因还是比较困难的,因此对开发测试或者是运维的同学产生了许多的困扰。

2023-08-22 18:00:17 1919

原创 【多线程】 —— 线程池

线程池就是事先将多个线程对象放到一个容器中,当使用的时候就不用 new 线程而是直接去池中拿线程即可,节省了开辟子线程的时间,提高的代码执行效率。在JDK的java.uti.concurrent./executors类中提供了生成多种不同线程池的静态方法然后调用他们的 execute 方法即可。这 4 种线程池底层 全部是 ThreadPoolExecutor 对象的实现,阿里规范手册中规定线程池采用 ThreadPoolExecutor 自定义的,实际开发也是。

2023-08-20 09:19:49 144

原创 为什么一定要用ThreadPoolExecutor创建线程池?

线程池的创建方式总共分为两大类:手动使用 ThreadPoolExecutor 创建线程池和自动使用 Executors 执行器创建线程池的方式。其中使用 Executors 自动创建线程的方式,因为线程个数或者任务个数不可控,可能会导致内存溢出的风险,所以在创建线程池时,建议使用 ThreadPoolExecutor 的方式来创建。

2023-08-19 18:12:17 119

转载 LinkedList插入数据效率和ArrayList对比

1 在尾部插入数据时,数据量较小时LinkedList比较快,因为ArrayList要频繁扩容,当数据量较大时ArrayList比较快,因为ArrayList扩容是当前容量1.5倍,大容量扩一次就能提供很多空间,而LinkedList每次add时候会new Node当数据量大时,这里就会耗时较多了。3 插入越往中间,LinkedList效率越低,因为它遍历获取插入位置是从两端往中间搜,index越往中间遍历越久,因此ArrayList的插入效率可能比LinkedList高。

2023-08-18 10:45:05 637

转载 转载:JAVA中intern()方法的详解

转载于:很多童鞋可能在Java考试中或者笔试中遇到String字符串比较相等的问题,今天就来谈一谈在JAVA虚拟机中,有运行时数据区,包含线程共享的:堆,方法区 和线程隔离的:程序计数器,Java虚拟机栈,本地方法栈.其中方法区包含一块取域,叫做常量池,因为型被用到的频率高,所以HotSpot将它放入了常量池.

2023-08-17 17:02:13 94

原创 为什么wait/notify必须与synchronized一起使用?

面试常常说使用wait、notify、notifyAll必须在同步代码块里也就是和synchronized一起用,为啥呢?在Java中,,即同一时刻只能有一个线程执行被synchronized关键字包裹的代码块或方法。这样可以。,直到其他线程调用相同对象的notify()或notifyAll()方法来唤醒它。当一个线程调用wait()方法时,它,允许其他线程进入临界区并执行相关操作。。如果有多个线程等待,只能唤醒其中一个线程,具体唤醒哪个线程是不确定的。,让它们。

2023-08-17 16:37:35 277

转载 SOA、微服务、无服务架构

仅作记录。Service-Oriented Architecture,面向服务的架构。面向服务的架构是一次具体地、系统性地成功解决分布式服务主要问题的架构模式。了解SOA架构前,先了解三种比较有代表性的服务拆分的架构模式,这些架构模式是演化过程的中间产物,也是SOA架构出现的必要前提。

2023-08-13 10:17:53 249

转载 转载:SOA架构概述

SOA(Service-Oriented Architecture,面向服务的架构)是一种在计算机环境中设计、开发、部署和管理离散模型的方法。SOA不是一种新鲜事物,它是在企业内部IT系统重复构建以及效率低下的背景下提出的。在SOA模型中,所有的功能都被定义成了独立的服务,所有的服务通过服务总线(ESB)或流程管理器来连接。

2023-08-13 10:15:31 102

原创 Kafka API与SpringBoot调用

Spring 是通过 KafkaTemplate 来完成对 Kafka 的操作的。@Autowired// 从配置文件读取自定义属性// 由于是提交数据,所以使用Post方式Spring 是通过监听方式实现消费者的。Spring Kafka 是通过 KafkaListener 监听方式来完成消息订阅与接收的。当监听到有指定主题的消息时,就会触发@KafkaListener 注解所标注的方法的执行@Component。

2023-08-12 16:23:32 1080

原创 消息中间件 —— 初识Kafka

消息 Message网络中的两台计算机或者两个通讯设备之间传递的数据。例如说:文本、音乐、视频等内容。队列 Queue一种特殊的线性表(数据元素首尾相接),特殊之处在于只允许在首部删除元素和在尾部追加元素(FIFO)。入队、出队。消息队列 MQ消息+队列,保存消息的队列。消息的传输过程中的容器;主要提供生产、消费接口供外部调用做数据的存储和获取。Kafka是分布式的发布—订阅消息系统。它最初由LinkedIn(领英)公司发布,使用Scala语言编写,与2010年12月份。

2023-08-12 10:55:23 1849

转载 转载:Linux下安装JDK

linux的使用过程中,总是要使用jdk的,有的linux系统自带的openjdk,总是不太好用;链接:https://pan.baidu.com/s/1hr5CsGz8oms85B6tOmzRTA?使用命令解压: tar -xvf jdk-8u341-linux-x64.tar.gz。2、发现有输入:rpm -qa | grep java 检测jdk的安装包,3、接着进行一个个删除包,输入:rpm -e --nodeps +包名。我这里是放在了/opt目录下,也推荐放在/usr/local目录下。

2023-08-09 10:38:06 87

原创 Kafka与Zookeeper版本对应关系

其中2.11表示的是Scala的版本,因为Kafka服务器端代码完全由Scala语音编写。”-“后面的1.1.1表示的kafka的版本信息。遵循一个基本原则,Kafka客户端版本和服务端版本应该保持一致,否则可能会遇到一些问题。可以根据源码包或者安装包来确认对应的zookeeper版本是哪个。支持的是3.4.10的zookeeper版本。kafka_2.11-1.1.1.jar包。依赖zookeeper版本为3.4.10~(与下文无关,仅作了解)

2023-08-09 10:04:24 4884

转载 转载:Nacos和Eureka的区别

Eureka client在默认情况每隔30s想Eureka Server发送一次心跳,当Eureka Server在默认连续90s秒的情况下没有收到心跳, 会把Eureka client 从注册表中剔除,再由Eureka-Server 60秒的清除间隔,把Eureka client 给下线。一个Eureka中分为eureka server和eureka clint,其中eurka server是作为服务的注册与发现中心,eureka client既可以作为服务的生产者,又可以作为服务的消费者。

2023-08-08 14:59:57 95

转载 转载:SpringCloud与Dubbo的区别

Spring Cloud 的功能很明显比 Dubbo 更加强大,涵盖面更广,而且作为 Spring 的旗舰项目,它也能够与 Spring Framework、Spring Boot、Spring Data、Spring Batch 等其他 Spring 项目完美融合,这些对于微服务而言是至关重要的。企业中对于微服务监控有一套东西,叫做APM。,在 Spring Source 的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础原理有足够的了解。

2023-08-08 14:36:33 56

原创 进阶:Docker容器管理工具——Docker-Compose使用

容器的管理工具,会带来更大的便利。docker层面,希望每一个服务都是一个容器,通过管理这些容器的发布,实现各种服务的编排。

2023-08-07 21:27:20 357

原创 Docker 发布一个springboot项目

使用docker部署项目到linux(超详细)另外,还可参考如下文章(随意,可看可不看):1、使用docker-maven-plugin插件将项目编译为docker镜像到远程linux服务器2、idea docker插件打包上传maven项目3、maven进行docker打包与推送。

2023-08-07 19:16:26 755

原创 案例:Docker 镜像的创建及使用(commit与dockerfile方式)

docker会缓存已有的镜像层,构建镜像时,如果某镜像层已经存在,就直接使用,无需创建,如果不希望在构建镜像时使用缓存,可以在docker build命令中加上–no-cache参数。在执行dockerfile时,如果因为某种原因执行到某个指令失败了,也能够得到前一个指令成功执行构建出的容器,可以运行新的镜像,手动运行那条失败的指令,从而定位失败的原因。docker理念里,容器启动时,应当为它指定主业是什么,如nginx容器主业就是nginx代理服务,tomcat容器就是web服务等等。

2023-08-07 16:10:27 1482

转载 Docker中 RUN、CMD 与 ENTRYPOINT 三者的区别

在说CMD、RUN 和 ENTRYPOINT的区别前,先来说说Dockerfile,Dockerfile 是构建容器镜像的方式之一,其通过一系列的指令参数来完成镜像的构建,而这些参数正是包含了 CMD,、RUN、COPY、ADD 和 ENTRYPOINT 等一系列指令。因此在实际应用中我们更多都是通过 Dockerfile 来完成镜像的构建。接下来列举一些 Dockerfile 常用的指令。

2023-08-07 14:59:56 202

原创 centos7 yum源安装出错及更新问题

问题解决,可以继续使用yum搜索或安装咯~

2023-08-06 21:23:49 538

原创 Docker 数据管理

为什么要有数据管理?这种情况下,每次的更新部署非常方便,但是这样一来所有的数据就需要持久化存储到宿主机里。就引出了docker的数据管理知识。

2023-08-06 20:02:48 638

转载 Docker运行tomcat镜像且主机访问

除了到dockerhub的官网上搜索tomcat镜像外还可以在linux上使用命令来搜索tomcat镜像(不过我建议用上面的方式搜索镜像,因为关于镜像的信息会更加详细和明朗)11、外网访问主机2222端口(主机ip:端口号,若访问不了请检查安全组和防火墙是否开放了相应的端口,没开放安全组和防火墙的端口外网是访问不了主机指定端口的)4、下载tomcat镜像(因为没指定tomcat的版本,所以下载的是最新的tomcat镜像)端口是tomcat的默认端口,当访问主机的。下载tomcat版本为8.5的镜像。

2023-08-06 17:21:19 287

arm-zeromq.tar.gz

gityhub官网下载的libzmq这个版本源码在linux下交叉编译生成的可执行程序、静态库、动态库。交叉编译器是 arm-linux-gneuabihf,本机是64位,即x86_64-pc-linux-gnu

2021-04-27

jsoncpp.rar

win10下VS2017适用,其余平台没尝试过

2021-03-17

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

TA关注的人

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