首页 / 标签TAG / SPRINGFORALL

# java

围绕 java 的技术文章与经验分享。

共 1048 篇文章

Spring Boot 快速实现 IP地址解析

前言 在前一节的学习中,慕歌分享了如何构建自己的小型日志用于记录一些关键性的信息,监测用户的登录状态等… 在这一节中慕歌将就上一节中关于ip 的点进行详细的讲解,带大家在spring boot 项目中获取请求的ip与详细地址,我们的很多网站app 中都已经新增了ip 地址显示,大家也可以用在自己的开发中,显得更高级。 引入 如果使用本地ip…

利用RocketMQ解决分布式事务

一、什么是分布式事务 1、问题场景 单服务操作多数据库情况 多服务操作单数据库情况 多服务操作多数据库,服务a和服务b之间相互调用情况 2、事务的特性 原子性、一致性、隔离性、持久化 3、常见的分布式解决方案 3.1 二阶段提交(2PC)…

20亿手机号存储检索去重

最近看到 一个20亿手机号存储检索的问题,这里做一下记录,方便学习 1、场景描述 在20亿个随机整数中找出某个数m是否存在其中,并假设32位操作系统,4G内存。 1byte=8bit 1kb=1024byte 1mb=1024kb 1gb=1024mb java中 int类型占用4个字节=4*8=32bit 如果将20亿个整数放入内存中,需要占用多少内存?…

Java面试总结

1. HashMap 1.8与1.7的区别 (1) 扩容因子默认为什么是0.75 如果扩容因子过高,空间利用率提高但是哈希冲突概率增加;如果扩容因子过低,会造成频繁扩容,哈希冲突概率降低,但是空间利用率变低。选择0.75是基于泊松分布,是时间和空间成本上寻求的一种折中选择 (2)为什么链表长度为8要转化为红黑树 首先和 hashcode…

Spring Boot中如何解决Redis的缓存穿透、缓存击穿、缓存雪崩?

缓存穿透 什么是缓存穿透 缓存穿透指的是一个缓存系统无法缓存某个查询的数据,从而导致这个查询每一次都要访问数据库。 常见的Redis缓存穿透场景包括: 查询一个不存在的数据:攻击者可能会发送一些无效的查询来触发缓存穿透。 查询一些非常热门的数据:如果一个数据被访问的非常频繁,那么可能会导致缓存系统无法处理这些请求,从而造成缓存穿透。…

Spring Boot + Docker 实现一次构建到处运行

一、容器化部署的好处 Docker 作为一种新兴的虚拟化方式,它可以更高效的利用系统资源,不需要进行硬件虚拟以及运行完整操作系统等额外开销。 传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。…