Java Random 随机数生成不安全,如果同时泄漏第一个和第二个随机数,那么后面的随机数序列可以被破解。 Java Random类使用线性同余生成器(Linear Congruential Generator)算法来生成伪随机数。所谓伪随机数是指,如果我们使用相同的种子(seed)来生成随机数序
我们这里讨论的单例模式(Singleton)是懒汉模式,即在实际需要的时候才开始初始化,双重检查锁是一种比较通用的懒汉单例模式的实现方式,所以这里我们从双重检查锁(Double Check Lock)说起。 第一个版本 下面这段代码是一个标准的双重检查锁,我们看下面这种写法会有什么问题? // si
前言 Go垃圾回收采用的是Mark&Sweep(标记清除算法),从v1.1开始Go就不断对它的垃圾回收算法进行优化,下面是具有里程碑意义的算法迭代过程 v1.0 整个过程STW(stop the world,即停止整个程序的运行) v1.3 分离Mark和Sweep,Mark阶段STW,S
C++ 设计模式 —— 桥接模式 0. 引用连接 本文主要的思路和代码,来自于对以下连接的学习和实现: 桥接模式 1. 引言 1.1 什么是桥接模式? 桥接模式的定义 桥接模式的作用 桥接模式,顾名思义,就像是一座连接两岸的桥梁。在软件开发中,我们可以将桥接模式看作是一座连接抽象部分和实现部分
作者简介:☕️大家好,我是Aomsir,一个爱折腾的开发者! 个人主页:Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏 当前专栏:Spring5应用专栏_Aomsir的博客 参考文献 孙哥suns说Spring5~学不会Spring? 因为你没找对人~孙帅 Sprin
本节我们将一起来实战完善分类接口、增加拖拽接口实现并采用redis来缓存门户端的分类树数据,废话不多说,开干。 API定义的调整 这里小卷强调下后台API定义的注意事项。API的定义一定要考虑前端交互的需要,该提供哪些参数,哪些参数可选,哪些参数不应该传,一定要清楚交互场景。 新增、修改分类DTO调
👼 前言 当使用Spring框架进行Java应用程序开发时,可能会遇到ConflictingBeanDefinitionException异常。 如: org.springframework.context.annotation.ConflictingBeanDefinitionException:
一元运算符之正负号 Java支持多种一元运算符,一元运算符中的“一元”是指一个操作数。我们初中学过的正负号就属于一元运算符,因为正负号后面只有一个数字。 正数使用+表示,其中+可以省略;负数使用-表示。如果变量的值是数值类型,也可以在变量前面加上正负号。 /** * 正负号的表示 * * @a
优化 EasyExcel 将 Excel 中海量的数据存入 Mysql 正常的Excel数据导入Mysql暂且不讲,本文主要讲的是关于效率的优化。 常用导入方式的缺点 一般我们会一次性读取Excel中的所有数据,循环塞入默认值(比如 create_user 字段等),然后调用 mybatis_plu
Envoy作为容器sidecar被注入应用Pod内的主要流程如下:主要的组件就是Listener和Cluster,Listener负责监控Downstream发送的请求,最终由Cluster来选择Upstream中的某个节点来处理该请求。 Envoy会从控制面或者静态配置中获取路由的集群信息,保存
Hello,小伙伴们大家好,今天给大家分享一下如何实现Redis的缓存预热。 技术栈: SpringBoot 3.0.2 Redis4 MySQL8 Mybatis-Plus 3.5.3.1 Druid 1.2.18 工具: lombok 什么是缓存预热? 缓存
队列模型和发布订阅模型 我们说到消息队里的时候总会提到消息队列的两种消息模型: 队列模型 发布订阅模型 本文重点探讨一下发布订阅模型的不同实现思路。 队列模型 早期的消息队列,就是按照数据结构的"队列"来设计,队列支持出队、入队操作并具有先进先出的特点。参考下面这个图,生产者(Producer)
本文整理了一份OOM内存泄露问题速查备忘录,详细见下文。 1、核心步骤 top、free、df三连,查看CPU、内存、磁盘的大致情况。 netstat -lp 查看端口占用情况。 导出内存dump文件: # 保存了堆内存现场 jmap -dump:format=b,file=heap.dump
一、背景 会员付费模式是互联网中常用的变现方式,并具有高用户忠诚度和粘性,帮助电商应用增加收入的优点。会员的销售模式,依赖于线下会销+线上直播+代理商电话销售的模式。为使用户有良好的用户体验,以及满足精细化运营的需求,如何在海量用户中筛选出有价值的用户成为会员转化运营工作的重点。 因此,本文采用
如何在Java中实现分布式缓存的一致性和容错机制分布式缓存是互联网高并发系统中常用的技术,它可以提高系统的性能和扩展性。然而,分布式缓存面临着一致性和容错的挑战。在本文中,我们将讨论如何在Java中实现分布式缓存的一致性和容错机制,并提供具体的代码示例。一、一致性机制在分布式环境下,缓存的一致性是非
如何在Java中实现高并发处理,需要具体代码示例高并发是当今互联网应用开发中的一个重要挑战,尤其是在处理大量并发请求时,如何提高系统的性能和稳定性成为开发者需要解决的关键问题。本文将介绍一些在Java中实现高并发处理的方法,并给出具体的代码示例。使用线程池线程池是Java中处理并发的一种常见方式,在
Java开发中常见的网络安全问题及解决方法摘要:随着互联网的普及,网络安全问题日益凸显。在Java开发过程中,我们需要考虑如何保护网络通信的安全性。本篇文章将介绍一些常见的网络安全问题,并提供相应的解决方法和代码示例。一、跨站脚本攻击(XSS)XSS攻击是指通过将恶意脚本注入到网页中,获取用户敏感信
如何在Java中实现分布式系统的数据复制和数据同步随着分布式系统的兴起,数据复制和数据同步成为保障数据一致性和可靠性的重要手段。在Java中,我们可以利用一些常见的框架和技术来实现分布式系统的数据复制和数据同步。本文将详细介绍如何利用Java实现分布式系统中的数据复制和数据同步,并给出具体的代码示例
Java开发中常见的代码错误和防范措施在Java开发过程中,我们常常会遇到各种各样的代码错误。这些错误可能会导致程序崩溃、数据丢失、安全漏洞等问题。为了避免这些问题的出现,我们需要了解一些常见的代码错误,并采取相应的防范措施。本文将介绍几种常见的Java代码错误,并提供相应的防范措施及代码示例。空指
如何在Java中实现分布式缓存的高可用和数据一致性在分布式系统中,缓存是提高性能和减少数据库压力的常用手段之一。然而,单点故障和数据一致性问题是使用分布式缓存时需要解决的两个主要挑战。本文将介绍如何在Java中实现分布式缓存的高可用和数据一致性,并提供具体的代码示例。一、高可用的实现使用一致性哈希算