java
文章平均质量分 82
忘川დ
智者不入爱河,冤种重蹈覆辙。
展开
-
RTL(ReentrantLock) 学习笔记
RTL(ReentrantLock) 可重入锁学习笔记什么是ReentrantLock 及其作用二级目录三级目录什么是ReentrantLock 及其作用ReentrantLock 基于 AQS(AbstractQueuedSynchronized),在并发编程中它可以实现公平锁和非公平锁来对资源进行同步,同时和synchronized一样,ReentrantLock支持可重入。ReentrantLock在调度上更灵活,支持更多丰富的功能。二级目录三级目录...原创 2021-12-02 17:07:32 · 951 阅读 · 0 评论 -
JVM内存分区笔记
JVM内存分区笔记JVM内存分区线程共享和线程隔离程序计数器虚拟机栈(Java方法栈)栈帧局部变量表(Local Variable)操作数栈(Operand Stack)动态连接(Dynamic Linking)返回地址(Return Address)本地方法栈方法区方法区概念方法区-类型信息常量池(Constant Pool)运行时常量池堆内存管理是JVM中的重要命题,当JVM对内存进行管理后降低了开发者的门槛,提高了程序的可维护性。注:内存区域和内存模型并不是一个概念,内存模型传送门。JVM内存分原创 2021-11-12 15:23:45 · 1757 阅读 · 0 评论 -
硬件内存模型&Java内存模型学习笔记
硬件&Java内存模型学习笔记硬件内存模型抽象结构单CPU模型多CPU模型缓存一致性问题缓存一致性协议指令重排问题Java内存模型抽象结构线程之间的通信三要素可见性原子性有序性硬件内存模型硬件内存模型的目标是为了让汇编代码能够运行在一个具有一致性的内存视图上。抽象结构单CPU模型cpu---->寄存器---->缓存---->内存(主存)多CPU模型模型可以在单CPU中运行,但是当计算机引入多CPU时,就会出现缓存一致性问题(数据不同步)。 如下图缓存一致性问题问题原创 2021-11-11 16:41:27 · 613 阅读 · 0 评论 -
Java类加载机制&类加载器学习笔记
Java类加载学习笔记类加载机制Java类生命周期类加载加载连接-验证连接-准备连接-解析初始化Java类加载器类加载器的分类Hotspot JVM具体实现视频链接:https://www.bilibili.com/video/BV14U4y1L75q?spm_id_from=333.999.0.0Java文件执行过程:Java文件通过javac编译成.class文件(字节码文件)。JVM加载字节码文件,运行时解释器将字节码解释为机器码来执行。在整个程序运行期间,即时编译器会针对热点代码将改部分字节码原创 2021-11-09 19:00:29 · 503 阅读 · 0 评论 -
Java线程模型学习笔记
Java线程模型学习笔记线程线程模型是什么线程和进程OS两种CPU状态OS指令划分特权级别内核态&用户态区别三种线程模型一对一多对一多对多Java线程调度线程线程模型是什么因为Java字节码运行在JVM(Java虚拟机)中,JVM运行在各个OS(操作系统)上,所以当JVM想要进行线程创建和回收的操作时,必须要调用OS的相关接口。JVM线程与OS线程之间存在某种映射关系,这两种不同维度的线程之间的规范和协议,就是线程模型。JVM线程对不同OS原生线程进行了高级抽象,使使用者不需要关注下层细节原创 2021-11-08 15:31:23 · 330 阅读 · 0 评论 -
AQS 同步框架学习笔记
AQS(AbstractQueuedSynchronizer) 学习笔记思路同步管理框架设计思路细节实现xx思路同步管理框架设计思路目标: CAS只能原子的修改内存上的一个值,然而实际的业务场景中,需要同步的资源却是以对象的形式进行封装,如何利用CAS的特性对对象资源进行同步通用性:下层实现透明的同步机制,与上层业务解耦利用CAS的原子性,修改共享标志位:如果标志位为空,则表示当前资源空闲,如果标志位部位空,则表示当前资源正在被使用,线程需要等待等待队列:阻碍其他线程的调用细节实现xx原创 2021-11-02 18:27:46 · 357 阅读 · 0 评论 -
JAVA 策略模式实践应用
JAVA 策略模式应用实践记录问题场景问题分析策略模式应用问题场景问题分析策略模式应用原创 2021-08-10 17:49:37 · 372 阅读 · 1 评论 -
HashMap 要点详细记录
HashMap 要点详细记录HashMap基础hash方法put方法扩容机制HashMap基础HashMap存储结构为数组、链表、红黑树(JDK1.8)。HashMap由节点Node<K,V>组成。HashMap只允许一个key为null和“”,且若为null,hash值会被赋为0,若为“”空字符串,hash值本来就是0。若数组某个节点上的Node>=7,则会将链表进化为红黑树,反之若节点<6则会由红黑树退化为链表。HashMap线程不安全,ConcurrentHash原创 2021-03-03 18:32:09 · 411 阅读 · 5 评论 -
API v3版微信支付 验签
API v3版微信支付 验签关于验签构造验签名串根据证书进行验签关于验签微信平台证书可以对响应进行验签,也可以对回调的请求进行验签,是同一套。构造验签名串验签串儿的格式如下。应答时间戳\n应答随机串\n应答报文主体\n /** * 构造验签名串 * * @param wechatpayTimestamp HTTP头 Wechatpay-Timestamp 中的应答时间戳 * @param wechatpayNonce HTTP头 Wechatpay-Nonce 中原创 2021-01-18 16:09:07 · 2971 阅读 · 1 评论 -
API v3版微信支付平台证书获取与自动更新
API v3版微信支付平台证书获取与自动更新关于微信平台证书获取平台证书证书自动更新首次下载证书关于微信平台证书微信支付开发有两份证书:一份是商户证书,可以使用商户平台证书私钥对请求进行签名,微信服务器进行验签可以验证请求者的身份;另一种证书是微信平台证书,是由微信服务器使用私钥对响应签名之后,我们自己的服务器使用平台证书对响应进行验签,从而可以验证响应的合法性。获取平台证书微信官网有对应的API可以获取平台证书,请求之前也需要进行相应的签名,响应的数据大致如下。若有新旧证书更替,则可能不止一条证原创 2021-01-18 13:04:03 · 8054 阅读 · 1 评论 -
API v3版微信支付开发(JAVA)
java微信支付开发开发前准备签名请求平台证书验签响应接口调用开发前准备在进行开发前需要准备一些参数。签名请求调用接口之前需要对请求进行签名,保证安全平台证书接口响应之后需进行验签,验签就需要微信支付平台证书。验签响应在获取完平台证书之后就可以对响应进行验签了。接口调用接口响应的数据有可能是加密数据,需要相应的进行解密...原创 2021-01-15 17:44:49 · 2430 阅读 · 4 评论