JAVA并发编程


JAVA并发编程 反射和代理 反射和动态代理使用场景非常广。 动态代理:动态代理是Java的一种机制,可以在运行时创建一个代理对象,而不需要在编译时就确定代理类。 反射是指在运行时检查类的信息(如方法、属性、构造函数等)并操作它们的能力。 场景场景有: AOP切面 懒加载 权限控制 日志记录 远程代

HashMap从零分析源码


HashMap全解 1. HashCode为什么选择31作为乘数 HashCode是32位的有符号数 public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[]

ArrayList源码分析


ArrayList源码分析和队列(数组为基础的数据结构) 数组是一个经常使用的数组结构,存储形式一般分为顺序存储和链式存储,区别在于顺序存储占用一块连续内存空间,而链表是由一个个点组成。 这里我们详细分析一下ArrayList,及List的一个实现类,也是实际过程中使用较多。 ArrayList采用

大营销分布式系统--从零开始实现数据库分库分表组件


大营销分布式系统--从零开始实现数据库分库分表组件 随着业务的发展,营销系统的数据量和访问量会不断增加。单个数据库和表会成为系统的瓶颈,导致查询速度变慢、系统响应延迟增加,甚至可能引发数据库的崩溃。所以如何提高数据库的读写性能和扩展能力来处理不断增加的数据库请求和数据量成为一个问题。单个数据库和表物

大营销分布式系统--用户奖品记录列表优化


大营销分布式系统--用户奖品记录列表优化 作为大营销系统的用户奖品记录表,主要由两个场景会被使用,第一个场景即用户在抽奖结束之后查询自己获得的奖品,第二个场景即任务扫描机制对用户奖品表中还未发放的奖品进行定期发放(系统端、全表扫描)。 本文主要讨论在用户查询奖品的性能优化。 用户奖品表:(Id, U

同一台服务器安装多个JumpServer服务


同一台服务器安装多个JumpServer服务 背景:理论上来说单个JumpServer也能做到权限隔离,但为了保证服务器完全分为两个集群分别使用,保证其中一个集群完全不可见,采用在同一个服务器部署两个jumpserver服务。 目前使用的Jumpserver直接使用1panel的自动部署,第二个参考

Redis实战三:基于Redis实现优惠券秒杀(黑马点评)


Redis实战三:基于Redis实现优惠券秒杀 全局ID生成器 全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具,具有唯一性、高可用、高性能、递增性、安全性。 使用Redis完成全局自增 , 自增工具类 @Component public class RedisIdWorker {

Redis实战二:基于Redis实现缓存(黑马点评)


Redis实战二:基于Redis实现缓存(黑马点评) 在做商户缓存时,一个商户实体类可以作为String进行Redis存储,我们只需要做Json到String直接的转化。 @Override public Result queryById(Long id) { // 1.

Redis实战一:基于Redis实现短信登录(黑马点评)


Redis实战一:基于Redis实现短信登录(黑马点评) 基于Session实现登录流程 发送验证码 @Override public Result sendCode(String phone, HttpSession session) { // 1.校验手机号

苍穹外卖技术点学习(一)


苍穹外卖技术点学习 1. Nignx实现反向代理和负载均衡 不使用Nignx的场景下,前端请求的接口直接对接后端的端口存在不安全,耦合度高等问题。使用Nignx进行反向代理将前端发送的请求动态转发到后端服务器 请求的接口地址: http://localhost:8080/admin/employee