首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
技术库
订阅
never_stop
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
一文带你理解Java锁们:乐观锁,悲观锁,公平锁,轻量级锁,锁粗化...
乐观锁时常抱有乐观的想法,即默认读多写少,且遇到并发写入的可能性低。所以不会直接上锁,而是在每次更新的时候,比较版本号,如果版本号一致,则更新,如果不一致,则失败进行重读。 CAS 就是一种常见的乐观锁实现。他包含3个参数CAS(V,E,N),V表示被更新的变量,E表示旧的预期…
AQS解析与实战
前段时间在面试,发现面试官都有问到同步器AQS的相关问题。AQS为Java中几乎所有的锁和同步器提供一个基础框架,派生出如ReentrantLock、Semaphore、CountDownLatch等AQS全家桶。本文基于AQS原理的几个核心点,谈谈对AbstractQueue…
记一次生产事故:30万单就这样没了!
你好,我是彤哥。 昨天晚上下班回家,在地铁上,老大突然打来电话,B系统生产环境响应缓慢,影响了A系统的使用,几万小哥收不了单,大概有30万单卡住了,你去帮忙定位一下。 我8点半左右到家,立马上线入会。 我入会的时候,已经有同事在帮忙定位了,俗话说的好,重启能解决80%的问题,如…
java安全编码指南之:异常处理
一起来看看吧。 先上个图,看一下常见的几个异常类型。 所有的异常都来自于Throwable。Throwable有两个子类,Error和Exception。 Error通常表示的是严重错误,这些错误是不建议被catch的。 Exception表示的是应用程序希望catch住的异常…
【优雅的避坑】-从验证码生成代码的优化到JVM栈和堆
实际业务中用验证码进行登录、注册等场景非常普遍,基本上现在的应用都会有这个功能,Java中已为我们提供了Math.random()以及Random类。 假如业务上要求我们生成一个「6位数字」的验证码,相信大家都能搞出来,用随机数函数,加上一些手段很容易就能构造出一个验证码。 我…
【优雅的避坑】new HashMap(list.size())指定size就能完全避免扩容带来的额外开销了吗?
所以,集合初始化时,指定集合初始值大小能提升性能。 由于我们无法直接调用hashMap的capacity()方法,因此使用反射来查看每添加一个元素,它的容量变化,以此来监测hashMap的扩容次数。 为什么会酱紫呢?带着上面的三个发现,来看一下HashMap的扩容机制。 int…
异步化组件的场景选型及实现
在我们日常的开发过程中经常会碰到无血缘关系的流水账逻辑(数据补全, 通知逻辑等), 这个时候我们通常会采用异步化的方式去处理从而加快响应速度. 与此同时, 伴随着上下游依赖的服务变多, 对应的可能也会产生一系列的问题包括不限于问题难以排查, 性能难以保证等. 在闲鱼也不例外: …
深入理解Java的动态编译
笔者很久之前就有个想法:参考现有的主流ORM框架的设计,造一个ORM轮子,在基本不改变使用体验的前提下把框架依赖的大量的反射设计去掉,这些反射API构筑的组件使用「动态编译」加载的实例去替代,从而可以得到接近于直接使用原生JDBC的性能。于是带着这样的想法,深入学习Java的动…
通过运行小型酿酒厂解释Web服务器(译)
在这个微型酿酒厂,您的目标是向酒吧,酒类商店和超级市场出售大量啤酒。您有各种各样的客户,这些客户每周或每月都会有大笔订单。 这意味着客户会经常向您的销售团队打电话或发送带有请求的电子邮件。在互联网上,这被称为客户端。客户端不会与请求的网络的其他成员共享其任何计算能力。它只是要求…
如何构建你自己的 JVM (1) 解释器
一些相关的概念, 汇编指令, JVM 字节码指令. 指令一般很简单, 描述了一个具体的操作. 比如 mov &ex, 1 => 将整数 1 放到寄存器 ex 里. bpush 1 => 将 byte 1 放到操作数栈顶. 简单来说寄存器就是个 Map. 可以根据寄存器地址(ke…