mengnan's blog

AQS

概述 AbstractQueuedSynchronizer抽象的队列同步器,用来构建锁或者其他同步器组建的基础框架,通过内置的CLH队列来完成资源获取线程的排队功能(为暂时还没有抢到锁的线程管理进入队列中,这个队列就是AQS的抽象表现),通过int类型的state来表示持有锁的状态,使用CAS对该同

aepbui aepbui 发布于 2024-08-25

synchronized锁升级

锁的原理 随着java1.6对synchronized的优化,减少了获取锁和释放锁带来的性能消耗而引入了偏向锁和轻量级锁,有些情况下它就不会那么重,锁的状态分为4种:无锁、偏向锁、轻量级锁、重量级锁,这几种状态会逐渐升级 对象在内存中的存储布局可以分为对象头、实例数据、对齐填充,对象头中就包含Mar

aepbui aepbui 发布于 2024-08-03

git校验提交

通过git clone等操作会在当前目录下生成.git隐藏文件 在hooks目录下,该目录下的所有名称带sample的都是钩子函数的模板文件 当我们在测试代码的时候很有可能为了测试或者临时添加一些代码进行调试,为了避免推送到线上可以启用该脚本 在项目下的 .git/hooks目录下,将你需要进行执行

aepbui aepbui 发布于 2024-07-10

线上代码优化

前情 公司项目使用的是七牛云存储图片,然后通过后置?参数来添加水印来裁剪、缩放、添加水印等操作,也就是数据库db中存储的url只有原始图片,目前只有问卷系统才能展示有水印的图片,新需求需要将压缩包打包的资源也要添加水印 解决方案是在打包前将所有资源追加水印后,最后再统一导出带水印的资源 但是七牛云是

aepbui aepbui 发布于 2024-07-08

PlantUML

前言 之前一直使用processon来画思维导图,但是需要付费.如果使用免费版本有存储限制,这些手动拖拽的工具很难对齐并且最近发现导出svg格式都需要会员了,所以果断遗弃 现在比较常用的图表工具分别是PlantUML和Mermaid.PlantUML使用一种类似于编程语言的语法,被各种IDE集成.而

aepbui aepbui 发布于 2024-06-29

JVM

学习JVM相关课程,自己总结的完整笔记分享一下 JVM的体系结构 简介 跨平台的语言 一次编写到处执行 跨语言的平台

aepbui aepbui 发布于 2023-04-06

Map源码学习

JDK1.7 以下内容针对JDK1.7版本,需要确保安装了JDK1.7 在IDEA中将项目设置Project SDK、Project language level等版本改为1.7 设置 Java Compiler中需要把Use compiler from module target JDK when

aepbui aepbui 发布于 2022-01-30

RabbitMQ

介绍 MQ意为消息队列或消息中间件,通过生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断从队列中获取消息,消息的生产和消费都是异步的,只关心消息的发送和接收,没有业务逻辑的侵入,实现了多个系统之间调用的解耦,通过高效的消息传递机制和平台无关的数据交流,基于数据通信来进行分布式系统集成

aepbui aepbui 发布于 2021-04-04

Nacos

Nacos Nacos是阿里巴巴的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案 官方文档 优点 服务发现与服务健康检查

aepbui aepbui 发布于 2021-02-19

微信小程序记录

获取本机蓝牙适配器状态,可以由此判断手机是否打开蓝牙 获取蓝牙适配器状态 正在搜索,是否可用 关闭蓝牙设备搜索,因为所搜比较耗费系统资源 寻找到新设备(通过MAC地址判断) 与设备建立连接... 获取蓝牙设备所有主服务中 获取蓝牙特征值中 (读写等) 发送数据 进度字符串转换为ArrayBuffer

aepbui aepbui 发布于 2021-01-18