自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (2)
  • 收藏
  • 关注

原创 rocketmq 中文文档链接

https://github.com/apache/rocketmq/tree/master/docs/cn

2020-06-15 20:54:16 519

原创 扩展-通过idea 中的Frames 来查看当前栈帧

假如有如下一个类,我们在idea 中可以通过后续的操作查看出栈入栈的情况。** 执行到了A方法,A方法入栈,之后的方法执行依次类推**

2024-07-28 17:23:56 204

原创 8. 运行时数据区-堆

一般Java程序中堆内存是空间最大的一块内存区域。创建出来的对象都存在于堆上。栈上的局部变量表中,可以存放堆上对象的引用。静态变量也可以存放堆对象的引用,通过静态变量就可以实现对象在线程之间共享。堆内存的调优堆空间有三个需要关注的值,used total max。used指的是当前已使用的堆内存,total是java虚拟机已经分配的可用堆内存,max是java虚拟机可以分配的最大堆内存。·如果不设置任何的虚拟机参数,max默认是系统内存的1/4,total默认是系统内存的1/64。在实际

2024-07-28 17:17:34 353

原创 7. 运行时数据区-栈

当一个方法被调用时,JVM会保存当前线程的程序计数器的值作为返回地址,这个值指示了在调用当前方法之前,线程正在执行的指令的下一条位置。,0代表注释掉的方法A,1代表变量i,2代表变量j,由此我们可以看出以变量"i"为例,i在第二行开始执行,也就是下方为1的位置,在第六行结束也就是下方为5的位置,所以这里的起始pc为2,长度为5。**序号:**对应局部变量表中变量的起始位置,也就是“槽”的位置,假如有一个变量为 ** i **则在局部变量表中的序号为0,则变量 i 在局部变量表中槽的位置为0。

2024-07-28 17:04:35 904

原创 6. 运行时数据区-程序计数器和栈帧

程序计数器也叫做PC寄存器,PC寄存器是用来存储指向下一条指令的内存地址,也即将将要执行的指令代码,由执行引擎读取下一条指令,在执行完毕当前指令之后,JVM的执行引擎会通过程序计数器获取下一条指令的地址来执行后续指令。当前类的字节码指令引用了其他类的属性或者方法时,需要将符号引用(编号)转换成对应的运行时常量池中的内存地址。动态链接就保存了编号到运行时常量池的内存地址的映射关系。Java虚拟机在运行Java程序过程中管理的内存区域,称之为。运行时数据区分为两大类,线程共享和线程不共享,

2024-07-28 16:53:39 414

原创 5. 双亲委派机制

ClassLoader中的loadClass方法分析// name字段:class名称// resolve: 是否执行链接阶段的代码,如果为true则执行链接阶段的相关代码// 加锁防止多线程情况下重复加载// 首先检查当前类是否已经被加载Class

2024-07-28 16:39:29 765

原创 4. 类加载器

将当前jar包放入jre/lib下之后启动类加载器会加载对应的jar包,不推荐这种方式,尽可能不要去更改JDK安装目录中的内容,因为Java虚拟机在加载的时候会对jar包的名称进行校验,名称必须符合一些规范,当不满足某些名称的规范的时候可能出现各种问题。然后输入,-Xbootclasspath/a:jar包目录/jar包名称,-Xbootclasspath后面的那个a 字符代表添加的意思。去掉了扩展类加载器,新增平台类加载器根据jdk9中的模块化的概念进行加载,剩余部分等待后续补充。

2024-07-28 16:35:04 877

原创 3. 类的生命周期

初始化阶段会执行字节码文件中clinit部分的字节码指令,这里的clinit 中cl 代表类(class),而init 代表初始化,所以这里代表的就是类的初始化,所以初始化阶段执行的就是字节码文件中的clinit部分的指令。这个有个问题,下面的代码时成员变量,如果非成员变量的情况下准备阶段是否也能在编译器就确定某些变量的值(应该是可以的,回头用Java命令确定一下)这段代码在准备阶段的值是0因为int 类型没有赋值之前的值默认都为0,而在初始化阶段才会把当前的真正将1的值赋值给value字段。

2024-07-27 23:56:41 1005

原创 2. Class 文件的组成

class文件魔数就是指class文件开头的ca fe ba be 联合起来是咖啡馆的意思,魔数(Magic Number)用于辨别当前文件是否是JavaClass 文件,例如:将class 文件的后缀".classJPEG 图像文件:FF D8 FFPNG 图像文件:89 50 4E 47 0D 0A 1A 0AGIF 图像文件:47 49 46 38 39 61 或 47 49 46 38 37 61BMP 图像文件:42 4D。

2024-07-27 23:09:49 841

原创 jvm 发展历程

*本地接口(JIT):**本地调用已经被编译的方法,例如:常见的C++ 方法,执行引擎负责调用本地接口。**运行时数据区:**用于存放加载到内存中的字节码的区域。**执行引擎:**即时编译,解释器,垃圾回收器等。将字节码文件加载到jvm 当中。

2024-07-27 22:59:17 169

原创 Redis缓存双删(使用Redis如何保证数据库和缓存之间的同步)

该策略的问题是,如果Redis 修改成功了,数据库没有修改成功,导致数据不一致。:该策略的问题是如果数据库更新成功了Redis 修改失败了,也会导致不同步的问题。

2024-05-13 16:42:50 447

原创 通过泛型处理excel空行问题

【代码】通过泛型处理excel空行问题。

2023-07-26 10:03:26 236

原创 spring 手动开启事务

【代码】spring 手动开启事务。

2023-03-08 10:45:17 1714 1

翻译 解决mysql 报错only_full_group_by

参考:mysql - What are the benefits of only_full_group_by mode? - Stack Overflowhttps://stackoverflow.com/questions/45484068/what-are-the-benefits-of-only-full-group-by-mode在网上找了一大堆答案,都说直接禁用掉only_full_group_by没有从根本上理解为什么mysql 要默认开启only_full_group_by,所以这里先来分析一

2022-12-05 20:43:43 423

原创 代码优化技巧

这是个人在写代码时的一个优化心得,可以让代码更清晰,更具可维护性。

2022-11-23 18:35:55 608

原创 spring 6.0 构建报错 找不到符号 InstrumentationSavingAgent

将spring-context.为什么改成api 而不是。

2022-11-04 09:25:22 282

原创 open jdk 下载方式

Archived OpenJDK GA Releases

2022-11-03 19:44:43 2022

原创 个人写代码的几个要点

保证业务清晰度,比如:一段逻辑要完成判空和过滤两种情况的写法,分开写当别人看的时候会很清晰,合在一起用lambda写看起来逻辑不太清晰那直接选择第一种方式,当然相反也是一样,如果使用lambda 清晰,分开写不清晰,则使用lambda降低代码风险,比如:某段代码这样写可能会产生空指针异常的风险,但是另一种写法完全不存在这种风险,则选择另一种

2022-11-03 10:03:53 235

原创 查看spring boot每个版本更新的内容

Home · spring-projects/spring-boot Wiki · GitHubSpring Boot. Contribute to spring-projects/spring-boot development by creating an account on GitHub.https://github.com/spring-projects/spring-boot/wiki

2022-11-01 16:56:50 408

原创 国内较好的技术网站

Thoughtworks洞见。

2022-10-18 17:02:55 167

原创 leet code 刷题----两数相加

【代码】leet code 刷题----两数相加。

2022-10-11 09:37:28 177

原创 未更改定时任务默认线程池大小导致的定时任务阻塞问题

最近线上出现了一个奇怪的问题,由于业务需要,我们通过定时任务进行定时excel 导入操作,但是常常会出现一些定时任务在某些时间段不执行的问题,由于业务需要,这里的定时任务都设置五分钟执行一次,但是事实并非如此,定时任务并没有五分钟执行一次,甚至间隔几个小时,都不执行一次,刚开始我以为是因为定时任务没有执行完成,不会进行下一次执行。spring boot 的@Scheduled定时任务,同一时间段的定时任务只会执行一个,其余的会被阻塞等待_轻尘×的博客-CSDN博客。

2022-08-22 15:40:04 385

原创 通过反射获取注解和字段,并判断字段是否是对象

代码】通过反射获取注解和字段,并判断字段是否是对象。

2022-07-20 12:04:43 832

原创 Postgres SQL 的json 数据优势和劣势

同样以上方的订单为例,因为一个订单可能绑定了多个商品,由于不是关系型的表结构,我们如果想要订单详情中的某个商品信息,我们必须经历如下步骤:这是我们不得不面对的一个问题,因为如果我们忽略处理某个字段,可能导致前端找不到某个字段,所以我们保存到数据库时必须保证对象中的某个字段即使为空,在生成Json后字段的值至少是null或者空字符串仍然是以上面的订单和订单详情为例,如果我们只想查询某个订单的订单详情,甚至对订单详情做分页查询,就必须新建表了,如果存在一些特殊的需求,修改了订单详情,那同样要考虑到是否需要改变订

2022-07-01 17:53:32 1926

原创 mysql 的 in 不一定不走索引

很早之前就听别人说in 不走索引,但是一直没证实过,昨天在工作中用到了in所以在上班的时候突发奇想,使用mysql 的explain 关键字看下一条sql走不走索引,sql 如下所示: 如上图所示,这里用到了in,但是这条sql 还是走了索引,如下图:为什么会这样?参考这篇文章:MySQL中in到底走不走索引?_一个技术渣渣的博客-CSDN博客_in走不走索引explain介绍mysql中explain关键字可以模拟MySQL优化器执行SQL语句,是一个可以很好的分析SQL语句或表结构的性能瓶颈。ex

2022-06-29 10:01:27 3857

原创 Redis 锁设计

最近同事做一个微信支付的功能,其中微信回调,用到了MQ 防止重复消费的问题,我们做了多重判断,第一重使用redis 锁防止数据被微信的回调多次修改数据库,保证一条数据只修改一次,并配合支付状态来保证消息不会被重复消费,我们的支付状态存在以下几个状态:当微信进行回调的时候,我们先通过redis 进行锁住,来保证数据在同一时间只有一个请求在修改,如果当前支付状态为未消费(默认为未消费),修改为已入列并放入消息队列,消费成功后状态改为已支付,来保证MQ 不会被重复消费,其中在Redis 锁的部分我们遇到了一些问题

2022-06-09 14:54:22 478

原创 面试技巧之你还有什么问题要问我的

和面试官谈论面试要了解的内容:1. 技术组组织架构,可以通过组织架构知道该公司有没有厉害的人,只有存在比较厉害的人自己才有可能快速进步2. 用到的技术栈,有哪些,主要是了解通过这些技术栈我可以学到那些内容如何将这些问题形成文字向面试官提问:您好,我这边有些疑问想问下您:1. 目前我们技术部门的整体结构是怎样的2. 除了您上次说的脱离了Spring 体系,形成了自我的体系之外,目前项目当中还用到了那些技术3. 预计未来会引入那些技术除此之外有一些技巧:1. 我入职后是跟着您么2.

2022-03-08 08:17:22 382

原创 马士兵JVM 精讲笔记(一)

计算机语言(机器语言)可以通过0和1生成机器指令,将指令输入到cpu 来执行,通过机器指令计算机可以实现各种各样的功能,而机器语言又分为操作码和操作数,假如:int a = 1;生成的机器码为(下面是随便输的):101010(操作码) 10101010101011011111(操作数)其中就包含了操作码和操作数,在内存当中每一个基础执行单元为8位,1byte(字节)等于8bit(位),而int a 是四字节,所以在内存当中开辟空间的时候会在内存中开辟4byte的空间,而在开辟内存的过程中

2022-02-17 17:37:01 681

原创 Jenkins 重启出现Error 403 No valid crumb was included in the request

我在使用jenkins 时禁用了jenkins 本身的Redis 导致了报错,之后发现是redis 没有启动导致的,启动Redis 后恢复正常

2022-01-11 18:02:09 1035

原创 Spring boot 启动报:Do not use @ for indentation

这个问题的产生是因为在使用idea 的maven 进行编译的时候,没有将其视为变量,而是作为字符串进行的编译,导致target 中的application.yml 文件中的active 的值为:@activatedProperties@,如下所示:正常情况下,当maven 进行编译时,会将yml 文件中的多环境配置变量更换为指定的配置值,例如:我的默认配置值是dev 则上图中的yml 文件中的@activatedProperties@将在编译后变为dev,如下所示:而产生这个问题的原因就是打

2022-01-10 16:17:24 4735 1

原创 frp + nginx 内网穿透https nginx 配置

亲测可用#user nobody;worker_processes 1;error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;pid /usr/local/webserver/nginx/nginx.pid;events { worker_connections 1024;}http { include .

2021-12-28 16:50:19 2861

转载 jenkins pipeline 无法后台启动

在普通的shell环境中,nohup,并且& 某个程序后,会抛到后台执行,在退出当前shell环境后,程序依然可以执行。但是在Jenkins的pipeline中,通过nohup,且使用&之后,step结束后,执行的程序还是会退出,导致程序起不来。1)export JENKINS_NODE_COOKIE=dontKillMe很重要,pipeline在退出node{}的时候,会默认清理自己发出的每个shell命令,即使使用了nohup。2)后台执行java程序,一定要加上{-Dhudson

2021-12-17 21:26:38 775

原创 token 为什么可以防止CSRF 攻击

token 是被开发者发送给后端的,攻击者如果无法获取到token 是无法通过后端服务器的校验的但是cookie 不同,只要在同一个浏览器,浏览器就会自动将cookie 放入请求头中,如果用cookie 做登录验证,例如:小明登录了csdn, 此时小明突然想到了一件事情,登录了另一个网站,而这个网站被不知名的人埋入了一些请求,这些请求是当其他人进入该网站,则请求csdn 友好的帮助访问者发布一篇文章,假如csdn 使用的是cookie做登录判断,小明访问该网站时触发了该请求,浏览器会自动将coo

2021-12-03 18:32:06 2328 1

转载 Java基础类:Modifier(修饰符类)

Modifier(修饰符类)这个类会对Java的public、private 等修饰符进行解析

2021-11-23 09:36:11 715

原创 机票系统相关知识

黑屏释义详细解释各航空公司的机票价格可以显示在统一的票价监控系统上。由于显示界面是黑底绿色,因此被称为黑屏。在黑屏里的任何操作都是通过输入命令代码来完成的。机票黑屏系统刷新速度比较快,但操作人员要经过专业培训,不然很难完成出票。简单解释各航空公司的机票价格可以在统一的票价监控黑屏系统上(由于屏显背景为黑色,行业习惯称之为“黑屏”)一览无余黑屏系统(eTerm系统)介绍eTerm系统是专门用于国内民航行业领域内的订位操作的系统。几乎国内所有的航空公司都用的是这个系统...

2021-11-06 18:13:28 4777

原创 linux 下安装mysql 问题

2021年10月31日mysql 第一次安装后输入密码报错 在安装mysql 的过程中总会报一些奇奇怪怪的问题,一种是密码的问题,这种情况直接删除data 文件夹重新初始化data 文件,但是已上线的mysql 不能这样做 初始化data 后不显示初始化后的密码 那么这个时候一定是my.conf 配置出错,先使用下面的配置,后重新初始化data目录(重新初始化的时候一定要重新删除data 文件夹,否则会导致初始化失败),如果还报错,在考虑其他问题,下方的配置是试过多次的没问题 [mysq.

2021-10-31 22:06:30 252

原创 微信官方Util Map 转xml

/** * 将Map转换为XML格式的字符串 * * @param data Map类型数据 * @return XML格式的字符串 * @throws Exception */ public static String mapToXml(Map<String, String> data) throws Exception { org.w3c.dom.Document document = WXPayXmlUt.

2021-10-12 15:00:37 343

原创 docker 获取容器id

docker ps | grep "$filename" | awk '{print $1}'

2021-09-28 15:01:41 1702

原创 vue 枚举类

class Enum { constructor(key,val) { this.#key = key; this.#val = val; } /** * 枚举类型的key */ #key; /** * 枚举类型的值 */ #val; get val() { return this.#val; }}export class SystemMessageEnum { #map = new Map(); constructor() .

2021-09-27 21:59:40 3548

原创 常用正则表达式

实体类替换/** 注释 */ 为@ApiModelProperty("注释")正则搜索表达式:(/\*\*)(.*)(\*/)正则替换表达式:@ApiModelProperty\("($2)"\)

2021-09-17 15:38:26 144

java反编译.rar

其中包含了多个java反编译文件,个人尝试过Luyten准确度较高,但是如果是中文,显示的将是Unicode编码,在网上对其进行转译

2019-08-12

如何在linux系统下装oracle

十分详细的linux虚拟机下装载oracle 11g,亲测可用如果好用给个好评...

2019-02-25

空空如也

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

TA关注的人

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