首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java
订阅
范特西依然
更多收藏集
微信扫码分享
微信
新浪微博
QQ
32篇文章 · 0订阅
横扫阿里、滴滴、美团后,3年经验的Java后端妹子整理出这份厚厚的面经!
这次面试的公司有一点点多,主要是因为毕业后前两份工作找的都很草率,这次换工作就想着,emm,毕业三年了,该找个工作好好沉淀几年了。 一周后一面的面试官问我还考虑京东不,如果考虑的话,就进行后续。当时已经有了更好的offer,就说不考虑了,希望以后有机会再合作,所以没有后续了) …
面试官:“你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?”
hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个散列码的作用是确定该对象在散列表中的索引位置,如果有看我的上一篇文章 什么是散列表,那么这里的散列码就相当于上文中根据首字母查询散列表例子中 人名关键字k在散列表中的具体地址。hashCo…
Java中的伪共享
CPU的缓存是以缓存行(cache line)为单位进行缓存的,当多个线程修改不同变量,而这些变量又处于同一个缓存行时就会影响彼此的性能。例如:线程1和线程2共享一个缓存行,线程1只读取缓存行中的变量1,线程2修改缓存行中的变量2,虽然线程1和线程2操作的是不同的变量,由于变量…
「课代表」帮你总结了全网最全的Redis知识点
本来是没这期的,按道理更新也应该是在周一更新消息队列的幂等,分布式事务相关的文章,但是这篇暖男我实在忍不住了,不是发自己的文章,是帮课代表发一下,她本科是北京交通大学,也是电子科技大学的研究生。 她看了我的系列,做了个笔记📒,我一看,偶买噶 !。 这是什么仙女啊,这是我第一次…
《我们一起进大厂》系列-秒杀系统设计
之前写了很多Redis相关的知识点,我又大概回头看了下,除了比较底层的东西没写很深之外,我基本上的点都提到过了,我相信如果只是为了应付面试应该是够了的,但是如果你想把它们真正的吸收纳为己用,还是需要大量的知识积累,和很多实际操作的。 就我自己而言Redis在开发过程中实在用得太…
并发容器之ArrayBlockingQueue和LinkedBlockingQueue实现原理详解
1. ArrayBlockingQueue 简介 在多线程编程过程中,为了业务解耦和架构设计,经常会使用并发容器用于存储多线程间的共享数据,这样不仅可以保证线程安全,还可以简化各个线程操作。例如在“生产者-消费者”问题中,会使用阻塞队列(BlockingQueue)作为数据容器…
CAS原理分析及ABA问题详解
CAS即Compare And Swap的缩写,翻译成中文就是比较并交换,其作用是让CPU比较内存中某个值是否和预期的值相同,如果相同则将这个值更新为新值,不相同则不做更新,也就是CAS是原子性的操作(读和写两者同时具有原子性),其实现方式是通过借助C/C++调用CPU指令完成…
深入剖析LongAdder是咋干活的
LongAdder是JDK8添加到JUC中的。它是一个线程安全的、比Atomic*系工具性能更好的"计数器"。 LongAdder本身没有成员变量,其值的变更实际上是由父类Striped64管理的。 Striped64通过两个成员变量来管理value,分别是base和cells…
《我们一起进大厂》系列-消息队列基础
所以就有这期了哈哈。 总之这个建议对我很有用,或者你有什么写作的建议都可以去GitHub https://github.com/JavaFamily 上面有我的联系方式,可以加我微信悄悄跟我说。 惊!!!老师你怎么知道的,我看了他的系列根本停不下来啊。 噗此,这也叫问题?别人用…
《我们一起进大厂》系列-分布式事务、重复消费、顺序消费
没错小伙子还是我,上次话说一半你就溜了,这次我非得好好的问问你。 消息重复消费是使用消息队列之后,必须考虑的一个问题,也是比较严重和常见的问题,帅丙我在开发过程中,但凡用到了消息队列,我第一时间考虑的就是重复消费的问题。 就比如有这样的一个场景,用户下单成功后我需要去一个活动页…