首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
底层
订阅
华富的学习分享
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
『面试的底气』—— 实现一个Promise
异步行为是 JavaScript 的基础,但以前的实现不理想。在早期的 JavaScript 中,只支持定义回调函数来表明异步操作完成。串联多个异步操作是一个常见的问题,通常需要深度嵌套的回调函数(俗称 “地狱回调” )来解决。 为了解决地狱回调这个问题,ES6 根据 Prom…
闲谈Zookeeper一致性协议--ZAB
今天先简单聊聊ZAB协议,个人认为搞懂ZAB协议和Leader选举算法的关系和流程对于深入认识Zookeeper是一个比不可少的环节。 zookeeper是一个很热门的分布式框架,熟练掌握ZK的基本使用、分布式锁的实现以及相关场景的运用是必不可少的。鄙人有幸在Shopee的面试…
史上最全的Java并发系列之并发编程的挑战
其实我们要讲的并发系列,也就是讲上图的内容来的。 并发编程的目的是为了让程序运行得更快。启动更多的线程并不一定就能让程序最大限度地并发执行。 希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战。比如 减少上下文切换的方法有 无锁并发编程、CAS算法、使用最少线程 和 使…
程序员除了会CRUD之外,还应该知道什么叫CQRS!
今天主要跟大家分享一下什么是 CQRS,以及在项目中如何去使用。 我们平常最熟悉的就是三层架构,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。然后通过业务层来处理业务逻辑,将处理结果封装成DTO对象返回给控制层,再通过前端渲染。反之亦然。 这里基本…
迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的最清楚的好文章(建议收藏)
假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据。 如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTTP响应,然后继续往下执行。 这个时候你问别人,刚刚代码发起的这个请求是不是一个同步请求,对…
教你用java字节码做点有趣的事之脱敏插件
本篇是本系列的最后一篇,在这篇中教你用ASM实际开发中做一些可用的东西。包括之前说的如何修改toString,完成一些脱敏。 上一篇字节码之ASM教你了如何去修改字节码?相信看过的同学已经对如何修改字节码已经有一定印象了,但是这里有个问题,上一节我们是通过读取.class文件在…
教你用Java字节码做点有趣的事(二)之ASM
本篇是本系列的第二篇,主要介绍什么是ASM,以及如何使用ASM。 如果没有阅读之前的教你用Java字节码做点有趣的事,还请阅读一下,因为需要上一章的部分需求。 在上节我们知道,通过javac编译生成之后生成的是字节码,但是我们可能会有一些需求,比如需要AOP切面,事务的统一管理…
Java实现终止线程池中正在运行的定时任务
最近项目中遇到了一个新的需求,就是实现一个可以动态添加定时任务的功能。说到这里,有人可能会说简单啊,使用quartz就好了,简单粗暴。然而quartz框架太重了,小项目根本不好操作啊。当然,也有人会说,jdk提供了timer的接口啊,完全够用啊。但是我们项目的需求完全是多线程的…
volatile原理技术知识整理
volatile是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于synchronize高效,而常常跟synchronize配合使用。 一. Java内存模型 主存存放线程需要操作的变量,但线程并不直接操作主存。 每个线程读取主存变量都…