logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

427的java基础八股(深拷贝,浅拷贝,引用拷贝)

本文介绍了Java中三种对象拷贝方式:引用拷贝、浅拷贝和深拷贝。引用拷贝直接复制对象引用地址,与原对象共享同一实例;浅拷贝创建新对象并复制基本类型值,但引用类型字段仍共享;深拷贝创建完全独立的新对象。实现方式上,浅拷贝需重写clone()方法,深拷贝可通过递归clone或序列化实现,后者要求所有嵌套类实现Serializable接口。特别指出String在浅拷贝中的特殊表现,以及Object.cl

文章图片
#java#jvm#开发语言 +2
427的java基础八股(string,string buffer,string builder)

摘要:String、StringBuffer和StringBuilder主要存在三个核心差异:1) 可变性 - String不可变,后两者可变;2) 线程安全 - String天然线程安全,StringBuffer通过synchronized实现线程安全,StringBuilder非线程安全;3) 性能 - StringBuilder最快,StringBuffer次之,String最差。优化建议包

文章图片
#java#开发语言#后端 +1
427的java集合八股(ConcurrentHashmap)

摘要:ConcurrentHashMap在JDK1.7采用分段锁机制,通过Segment数组实现并发控制,每个Segment独立扩容;JDK1.8改为数组+链表/红黑树结构,使用CAS和synchronized实现线程安全。1.7版本通过两次哈希定位到Segment和桶位置,写操作仅锁定对应Segment;1.8版本引入ForwardingNode协助扩容,put过程包含CAS尝试、同步锁和树化判

文章图片
#java#开发语言#后端 +1
427的java集合八股(HashMap)

摘要:HashMap在JDK1.8后采用数组+链表+红黑树结构,当链表长度≥8且数组长度≥64时转为红黑树。put流程包括哈希计算、数组检查、节点插入和扩容判断。扩容机制通过位运算高效计算新下标,容量为2的幂次方确保均匀分布。JDK1.8将头插法改为尾插法,避免了多线程下的死循环问题。HashMap是非线程安全的,建议并发场景使用ConcurrentHashMap。默认负载因子0.75平衡了空间和

文章图片
#java#开发语言#后端 +3
427的java基础八股(如何利用Redis实现一个分布式锁)

Redis分布式锁实现方案摘要:Redis分布式锁通过SETNX+EXPIRE或SET扩展命令保证原子性,利用Redisson实现自动续期、可重入等功能。核心机制包括:1)Watchdog自动续期;2)PubSub+信号量实现等待/唤醒;3)MultiLock解决主从一致性问题,需在所有独立节点加锁成功;4)RedLock算法确保高可用(N/2+1节点成功)。高级特性包括公平锁、读写锁等,适用于不

文章图片
#java#开发语言#redis +4
427的Redis八股(Caffeine 面经)

本文系统整理了Caffeine缓存相关的面试知识点,包含七个核心模块:1)基础原理与特性;2)与其他缓存组件的对比分析;3)核心机制如性能优化、淘汰策略;4)优缺点评估与选型建议;5)缓存一致性问题解决方案;6)多级缓存架构设计;7)缓存命中率优化方法。重点剖析了Caffeine的高效实现原理、与Guava/Redis的差异、内存管理机制等关键技术问题,为缓存系统设计提供了全面的参考框架。

文章图片
#java#开发语言#redis +4
427的Caffeine八股(Caffeine)

摘要:Caffeine是基于Java8的高性能本地缓存库,采用W-TinyLFU算法实现优于传统LRU/LFU的缓存命中率。它支持多种缓存策略(容量/时间/引用)、异步加载和事件监听,提供Cache、LoadingCache和AsyncLoadingCache三种核心使用场景。W-TinyLFU通过频率草图(Count-MinSketch)实现高效频率统计,采用窗口缓存保护新数据,并通过分层迁移规

文章图片
#java#开发语言#后端 +3
427的java基础八股(Redis常用数据类型)

Redis提供了多种高效的数据结构:String采用SDS动态字符数组,防止缓冲区溢出;Hash使用压缩列表或哈希表存储键值对;List支持链表操作;ZSet通过跳表+哈希表实现有序集合,跳表相比B+树更适合内存操作,复杂度更低;Set存储唯一元素。扩展类型包括位图、基数统计、地理空间和消息流。这些数据结构针对不同场景优化,如String支持二进制安全存储,ZSet通过分层链表实现高效查询,跳表相

文章图片
#java#开发语言#redis +4
点评项目深入改造-------日常学习笔记

本文档详细介绍了基于Kafka实现的异步秒杀系统设计方案。针对秒杀场景高并发、数据一致性等核心痛点,采用Redis+Lua脚本进行原子校验和预扣库存,通过Kafka实现异步解耦,并结合本地消息表确保消息可靠发送。消费端采用事务包裹业务逻辑,配合手动ACK机制保证消息可靠消费。文档还总结了全流程中的7个关键问题及解决方案,包括JMeter压测异常、消费端报错等。最终系统实现了流量削峰和数据一致性目标

文章图片
#学习#java#开发语言 +3
427的Kafka基础八股(持续更新)

摘要:本文系统介绍了Kafka分布式消息队列的核心组件和工作原理。重点讲解了Broker节点、Topic主题、Partition分区等核心概念,以及生产者发送消息的分区选择策略和ACK机制。同时详细阐述了Broker的多副本存储架构、消息同步流程,以及消费者消费消息的推拉模式、分区分配策略和Offset提交机制。通过深入解析Kafka的底层设计,帮助读者全面理解这一高性能分布式消息系统的运作机制。

文章图片
#java#开发语言#kafka +4
    共 13 条
  • 1
  • 2
  • 请选择