logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Log4j漏洞原理及修复

*JNDI(Java Naming and Directory Interface–Java)**命名和目录接口 是Java中为命名和目录服务提供接口的API,通过名字可知道,JNDI主要由两部分组成:Naming(命名)和Directory(目录),其中Naming是指将对象通过唯一标识符绑定到一个上下文Context,同时可通过唯一标识符查找获得对象,而Directory主要指将某一对象的属性

文章图片
#log4j#java
Java volatile的作用

当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。而普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什么时候被写入主存是不确定的,当其他线程去读取时,此时内存中可能还是原来的旧值,因此无法保证可见性。另外,通过synchronized和Lock也能够保证可见性,synchronized和Lock能保证同一时刻只有一个

文章图片
#java
Redisson看门狗机制

网上redis分布式锁的工具方法,大都满足互斥、防止死锁的特性,有些工具方法会满足可重入特性。如果只满足上述3种特性会有哪些隐患呢?redis分布式锁无法自动续期,比如,一个锁设置了1分钟超时释放,如果拿到这个锁的线程在一分钟内没有执行完毕,那么这个锁就会被其他线程拿到,可能会导致严重的线上问题。既然存在锁过期而任务未执行完毕的情况,那是否有一种可以在任务未完成时自动续期的机制呢,几年前在redi

文章图片
#java#redis
Springboot启动过程详解

这是一个扩展功能,callRunners(context, applicationArguments) 可以在启动完成后执行自定义的run方法;有2中方式可以实现:a、实现 ApplicationRunner 接口b、实现 CommandLineRunner 接口接下来我们验证一把,为了方便代码可读性,我把这2种方式都放在同一个类里面import org。

文章图片
#spring boot#后端#java
vue2和vue3的区别

1、vue2的双向数据绑定利用了es5的api object.definepropert(),而vue3中使用了es6的api proxy;2、vue3支持碎片,而vue2不支持;3、 vue2使用选项类型api,而vue3使用合成型api;4、建立数据,vue2把数据放入data属性中,而vue3使用setup()方法;5、vue3有teleport组件,vue2没有。

文章图片
#vue.js#前端#javascript
GraalVM介绍:云原生时代的JVM

GraalVM是 Oracle 开源的一款通用虚拟机产品,官方称之为 Universal GraalVM,是新一代的通用多语言高性能虚拟机。它可以运行多种编程语言,如Java、JavaScript、Python等,并提供了即时编译(JIT)和AOT编译(AOT)的支持。GraalVM还支持在不同语言之间互相调用,以及嵌入到其他应用程序中使用。这使得GraalVM成为一个非常强大和灵活的工具,可以满

文章图片
#云原生#jvm#java
Prometheus与Zabbix的对比

总结:Zabbix更适合于物理机/虚拟机的监控。Prometheus更适合容器的监控,对于目前来说,大部分都是Docker或者K8s容器,如果公司所在逐渐往容器方向发展,建议还是采用Prometheus。

文章图片
#prometheus#zabbix
Vue项目安装axios报错

Vue安装axios报错,很大一部分情况是依赖冲突

#vue.js#npm#javascript
Vue项目安装axios报错

Vue安装axios报错,很大一部分情况是依赖冲突

#vue.js#npm#javascript
vite项目报错:在没有 “node“ 模块解析策略的情况下,无法指定选项 “-resolveJsonModule“。

vite搭建react项目,在tsconfig.json文件报错在没有 “node” 模块解析策略的情况下,无法指定选项 “-resolveJsonModule”。

文章图片
#react.js
    共 11 条
  • 1
  • 2
  • 请选择