10 2020 档案
摘要:权益需求对接中,公司跟第三方公司合作,有时我们可能作为甲方,提供接口给对方,有时我们也作为乙方,调对方接口,这就需要API使用签名方法(Sign)对接口进行鉴权。每一次请求都需要在请求中包含签名信息, 以验证用户身份,不然任何人都可以调我们公司的接口,会导致安全隐患。 思路:在接口请求参数都带上ap
阅读全文
摘要:JVM 内存结构、Java 内存模型,这是两个截然不同的概念,但是很容易混淆。我们就先从整体上概括一下这两者的主要作用: JVM 内存结构和 Java 虚拟机的运行时区域有关; Java 内存模型和 Java 的并发编程有关。 为什么需要 JMM(Java Memory Model,Java 内存模
阅读全文
摘要:用命令行的方式找到死锁 本地环境下,如果程序发生死锁后,首先cmd进入${JAVA_HOME}/bin/中,输入jps命令,就可以查看到当前 Java 程序的 pid,找到死锁类的pid后执行jstack命令+空格+死锁类的 pid,就可以获取线程获取锁的信息。 截取一部分和死锁相关的有用信息 常见
阅读全文
摘要:公司最近想使用响应式技术的新开发技术架构 后端:WebFlux+R2BDC+WebClient+DatabaseClient+Reactive Transaction+Reactive Redis 什么是响应式编程? 响应式编程(reactive programming)是一种基于数据流(data
阅读全文
摘要:谈谈你对锁的理解? 在并发编程中有两个重要的概念:线程和锁 多线程是一把双刃剑,它在提高程序性能的同时,也带来了编码的复杂性。 锁的出现就是为了保障多线程在同时操作一组资源时的数据一致性,当我们给资源加上锁之后,只有拥有此锁的线程才能操作此资源,而其他线程只能排队等待使用此锁。 你知道哪几种锁?分别
阅读全文
摘要:几乎所有的 Java 面试都是以 String 开始的,String 源码属于所有源码中最基础、最简单的一个,对 String 源码的理解也反应了你的 Java 基础功底。 String 是如何实现的?它有哪些重要的方法? 以主流的 JDK 版本 1.8 来说,String 内部实际存储结构为 ch
阅读全文