- 博客(21)
- 收藏
- 关注
原创 小米日常实习一面
1.session和cookie的区别?2.ArrayList和linkedlist区别?3.hashmap的底层原理?4.解决冲突的方法?5.Comparator 和 Comparable知道吗?对集合进行排序是怎么做的?6.对对象的某个特性或属性进行排序你想怎么去实现它呢?7.写了个SQL(常见的左外连接查询) Redis基础命令中的setnx(返回值0 1 的区别)8.kafka的缺点?跟rabbitMQ和Rocket MQ对比?partition内部它保证消息是有序的吗。
2025-12-21 13:19:34
796
原创 聊聊超卖问题
在并发量大,数据量大的项目中,缓存的使用是不可避免的,但是用到缓存,就有一个很常见的问题,如何保证数据库与缓存中间件的数据一致性问题,这里以redis为例;在抢购前,可以将数据库库存同步到redis。
2025-11-16 15:33:41
135
原创 深入浅出聊聊synchronized
是一个同步关键字,在某些多线程场景下,如果不进行同步会导致共享数据不安全,synchronized 关键字就可以用于代码同步。主要有3种使用形式:修饰普通同步方法:锁的对象是当前实例对象;修饰静态同步方法:锁的对象是当前的类的Class字节码对象;修饰同步代码块:锁的对象是后面括号里配置的对象,可以是某个对象,也可以是某个类的.class对象;感觉很抽象,好,上代码!修饰普通同步方法不同的实例,锁就不一样,锁不共享,只能一个一个执行,实现同步操作;/**
2025-11-15 19:18:07
863
原创 Redis分布式锁:从理论到实践的全方位解析
它提供了很多分布式Java对象和服务,让开发者能够像操作本地对象一样操作分布式环境下的数据,使得操作操作更简单。但在分布式环境下,多个服务实例运行在不同的JVM中,这些本地锁就失去了作用。:在旧版Redis中,SETNX和EXPIRE是两个独立命令,可能设置成功但过期时间设置失败。:如果业务执行时间超过锁的过期时间,锁会自动释放,导致并发问题。:客户端崩溃时,锁最终还是会过期,不会永久死锁。在单机应用中,我们可以使用Java内置的。:在业务执行期间自动延长锁的过期时间。:自动设置锁的过期时间,防止死锁。
2025-11-09 20:34:18
317
原创 利用滑动窗口求解问题
滑动窗口算法是一种用于处理数组或链表问题的优化技术,通过维护一个动态的窗口来减少重复计算。适用于解决子串、子数组等问题,如“无重复字符的最长子串”或“最小覆盖子串”。
2025-10-18 16:40:45
341
原创 虾皮后端一面
hashMap是基于哈希表的Map接口实现,它使用键值对(key-value)存储数据,允许使用null键和null值;JMM (Java Memory Model,Java内存模型) 是一种抽象概念,它定义了Java程序中的各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量的底层细节.JMM的核心目标是解决多线程通信中的原子性,可见性,有序性问题.主内存:存储所有共享变量。工作内存:每个线程都有自己的工作内存,存储该线程使用到的共享变量的副本。
2025-09-27 23:53:02
742
原创 小米Java实习一面分享
内存泄漏(Memory Leak) 指的是程序中已经有不再使用的对象,由于某些原因无法被垃圾回收器GC成功回收,从而导致内存被无意义的占用.长此以往,可能引发内存泄漏,导致程序崩溃;“Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。在微服务架构中,它主要扮演了服务注册中心的角色,负责所有微服务的注册、发现和健康管理。1. 服务注册 (Service Registration) - 服务提供者角度流程服务提供者(比如一个)在启动时,会通过内嵌的SDK 向。
2025-09-20 18:55:17
723
原创 微服务核心知识点与面试准备
微服务架构将应用程序划分为一组小型、自治的服务,每个服务围绕特定业务能力构建,独立运行和部署,通过轻量级机制(如 HTTP API)通信。单体架构与微服务对比维度单体架构微服务架构关键点开发部署技术栈统一,部署效率低独立开发部署,迭代快强调敏捷性和持续交付可扩展性整体扩展,资源浪费细粒度扩展,成本低举例说明电商场景可靠性单点故障导致系统崩溃故障隔离结合熔断器和降级机制技术债务技术栈锁定灵活选择技术栈需权衡维护复杂性团队协作适合小团队适合跨功能团队引用康威定律。
2025-09-13 20:12:34
904
原创 docker部署前后分离项目----新手详细版
1.租用服务器,这里我以阿里云为举例: 服务器租好后,进入实例:2.点击右侧三个小黑点,进入更改实例密码(方便后续连接服务器)新建会话:连接成功进入黑窗口:这里后端我使用docker部署://docker 的安装就略过,建议要先学习一下docker的原理和基本指令;查看已有的镜像:下载mysql8镜像(这里以他举例)查看是否安装成功:设置密码: 注意这里第一个端口为宿主主机的端口,第二个为docker的端口,两者互相独立而不干扰,在外界访问时服务器时,先通过宿主机
2025-08-23 19:01:05
861
原创 Java 大厂 MySQL 面试精华题 + 高质量答案一、基础篇(高频率必考)
MySQL核心知识点解析:索引采用B+树结构,因其磁盘I/O友好、范围查询高效等优势;联合索引遵循最左匹配原则。事务特性ACID及隔离级别(默认可重复读)保障数据一致性,MVCC实现读写并发。日志系统中,binlog用于复制恢复,redolog确保持久性,undolog支持回滚,两阶段提交保证日志一致。高并发场景下,主从复制实现读写分离,10亿级数据表需通过分库分表、索引优化、缓存等策略提升性能。
2025-08-09 22:19:38
473
原创 Java实现多个数求解最小公倍数而不发生溢出问题
如果有多个数求解最小公倍数,当数据越来越偏大的情况,肯定是会发生溢出,java里的long类型也是如此;a * ba * blong所以java中要解决此类问题,只有采用BigInteger数据类型!
2025-07-10 19:14:55
214
原创 分享在阿里云部署web项目
11.回到开发工具,将数据库的配置信息的数据库密码改成服务器的数据库密码(只改这个哈),然后将项目打包,文件名就是你访问的路由之一,将打包的文件使用之前的xftp拖到服务器上Tomcat服务器的webapps目录下,在重启Tomcat服务器,在浏览器输入:http://公网ip:8080/打包的文件名 然后你的项目就能访问了。8.Mysql的安装需要注意,具体操作语句可以询问ai,但是要将先重置安装的mysql的密码,默认密码,和重置密码都建议保存一份;安装xftp传文件很方便,直接将文件拖动即可;
2025-06-21 23:10:30
372
原创 单调栈+多项式求和
这道题目,最难理解单调栈的地方是为什么是从右到前的顺序遍历,针对这道题目立即:如果从当前的元素再往后遍历,那就是需要用到双重循环,时间复杂度增加,正常是无法AC,所以倒着遍历,这样相当于回望走过的路,一下就能看到;你从右往左走:你已经见过后面所有人了,记住谁是矮的,下一个人可以问你就知道答案了!有1≤n≤106,∣x∣≤106,∣ai∣≤1061≤。你站在一排人里,想知道你后面第一个比你矮的人是谁。你从左往右走:你根本看不到你身后的矮子。输出一行一个整数,表示你的答案。+1,然后对于系数ai。
2025-06-14 22:16:46
176
原创 内部类讲解
Java 中允许在类的内部定义另一个类,称为“内部类”(Inner Class)。其主要作用是:封装辅助逻辑(逻辑上从属)访问外部类的私有成员简化代码结构,提升可读性“成员可访问,需外包;静态不依赖,只能看静;局部局限用完就没;匿名一次即弃,轻巧便捷。
2025-05-28 17:54:07
342
原创 JavaSE面试常考系列1
**`Callable`**:通常与 `ExecutorService` 一起使用,提交一个 `Callable` 任务后,会返回一个 `Future` 对象。- **`Runnable`**:`Runnable` 的 `run()` 方法不能抛出受检异常(checked exceptions),只能抛出非受检异常(unchecked exceptions)。- **`Runnable`**:`Runnable` 接口的 `run()` 方法不返回任何值,即 `void`。
2025-05-28 11:46:20
628
原创 学习笔记分享
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考和在功能上是相同的,但TimeUnit提供了更好的可读性和更直观的时间单位表示。在需要明确时间单位的场景下,推荐使用TimeUnit类的方法。ArrayList:数组实现,随机访问快,插入删除慢,内存占用小。LinkedList:链表实现,随机访问慢,插入删除快,内存占用大。根据具体的应用场景选择合适的列表实现可以显著提高程序的性能。
2025-05-14 22:15:30
839
原创 二维前缀和和差分算法讲解
子矩阵和: 28修改后的矩阵:1 2 34 15 167 18 19二维前缀和:通过累加左边、上边的值,减去重复计算的左上角部分,快速计算矩形区域的和。二维差分数组:通过在边界上加减增量,实现对矩阵的区间修改,最后通过前缀和还原矩阵。// 初始化矩阵{1, 2, 3},{4, 5, 6},{7, 8, 9}// 获取矩阵的行数和列数// 二维前缀和i <= m;j++) {// 查询子矩阵和。
2025-02-05 20:44:40
1742
原创 一些详细的GitHub检索技巧:
GitHub的高级搜索页面提供了可视化的界面,可以按各种因素过滤搜索,如仓库具有的星标数或复刻数等。:在GitHub首页的搜索框中直接输入关键词,如“机器学习”“Python项目”等,可找到包含这些关键词的仓库、代码等。:使用多个关键词组合搜索,如“数据挖掘Python”,可提高搜索结果的精准度。:按其许可搜索仓库,需使用许可关键词按特定许可或许可系列过滤仓库,如。,可找到README文件中出现“octocat”的仓库。,可匹配文件内容中出现“octocat”的代码。
2025-01-20 09:14:35
2220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅