bright_qian
码龄9年
关注
提问 私信
  • 博客:4,635
    4,635
    总访问量
  • 8
    原创
  • 2,216,980
    排名
  • 2
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2015-11-01
博客简介:

bright的博客

查看详细资料
个人成就
  • 获得9次点赞
  • 内容获得3次评论
  • 获得9次收藏
创作历程
  • 2篇
    2021年
  • 4篇
    2020年
  • 2篇
    2019年
成就勋章
TA的专栏
  • java
    5篇
  • 并发编程
    2篇
  • jvm
    4篇
  • RESTful API
    1篇
  • 消息中间件
    1篇
  • Pulsar
    1篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 服务器
    linux
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

并发编程锁原理总结

ReentrantLockReentrantLock主要利用CAS+AQS(AbstractQueuedSynchronizer)队列来实现。它支持公平锁和非公平锁,两者的实现类似。CAS:Compare and Swap,比较并交换。CAS有3个操作数:内存值V、预期值A、要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。该操作是一个原子操作,被广泛的应用在Java的底层实现中。在Java中,CAS主要是由sun.misc.Unsafe这个类通过JNI调用CPU底层
原创
发布博客 2021.05.04 ·
321 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

synchronized原理和锁膨胀过程

对象头HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据, 如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等等,这部分数据的长度在32位和64位的虚拟机(暂 不考虑开启压缩指针的场景)中分别为32个和64个Bits,官方称它为“Mark Wor
原创
发布博客 2021.04.26 ·
308 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RESTful API设计规范

REST简介在2000年,罗伊·菲尔德(Roy Fielding)提出了代表性状态转移(REST)作为设计Web服务的体系结构方法。REST是一种用于构建基于超媒体的分布式系统的体系结构样式。REST独立于任何底层协议,不一定与HTTP绑定。但是,大多数常见的REST实现使用HTTP作为应用程序协议,并且本指南重点介绍为HTTP设计REST API。使用HTTP的RESTful API的一些主要设计原则URL设计避免在URI中使用动词,应该采用“动词 + 名词”的设计结构。这是因为HTTP动词应足以
原创
发布博客 2020.05.15 ·
308 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

内存溢出和内存泄漏的区别

内存溢出(out of memory)程序运行过程中申请的内存大于系统能够提供的内存,导致无法申请到足够的内存。JAVA堆溢出异常测试创建的OOMObject对象太多,在进行垃圾回收之前对象数量达到了最大堆的容量限制。/** * VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError * * @author bright */...
原创
发布博客 2020.03.21 ·
295 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深入理解JVM-CAS原子操作

前言在学习JVM对象创建的时候,碰到一个问题,对象创建在虚拟机中时非常频繁的行为,即使仅仅修改一个指针所指向的位置,在并发情况下也并不是线程安全的,可能出现正在给A对象分配内存的时候,指针还没来得及修改,对象B又同时使用了原来的指针来分配内存的情况,解决这个问题,其中又一个方案,就是使用CAS配上失败重试的方式保证更新操作的原子性。下面我们一起学习以下CAS的原理。乐观锁与悲观锁我们都知道,...
原创
发布博客 2020.03.18 ·
730 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

深入理解JVM-自动内存管理

自动内存管理前言Java内存区域与内存溢出异常运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存OutOfMemoryError异常前言从Java的第一个版本诞生到现在已经有二十余年的时间,白驹过隙,沧海桑田,转眼已过了四分之一个世纪,在图1-3所示的时间线里,我们看到JDK的版本已经发展JDK13。这二十多年里诞生过无数与Java相关的产品、技术与标准...
原创
发布博客 2020.03.18 ·
704 阅读 ·
4 点赞 ·
0 评论 ·
1 收藏

为什么使用消息中间件

文章目录为什么要使用消息中间件使用消息中间件考虑点保证消息高可用防止消息重复消费保证消息的顺序性为什么要使用消息中间件解耦A服务调用B,C服务,后续后其他服务接入地方,A服务始终要改。举个例子:A触发了一个扫码事件,扫完码之后,会有模板推送(调用了B服务)、跳转到某一个页面(调用了C服务)。后面假如你还想产生其他事件,A服务会越调越多,A服务依赖其他服务也会越来越多。而有了消息中间件,我...
原创
发布博客 2019.07.16 ·
400 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

Pulsar IO之CDC Debezium Connector

文章目录背景DebeziumPulsar IO入门启动MySQL启动Pulsar standaloneDebezium connector订阅Pulsar topic,监听MySQL数据变化修改MySQL数据参考背景在业务系统中,会涉及到多个数据源的数据流转,例如在线系统的数据流转到分析系统、流计算系统、搜索引擎、缓存系统、事件处理系统等。如图所示:Debezium官网地址:https...
原创
发布博客 2019.07.15 ·
1566 阅读 ·
2 点赞 ·
2 评论 ·
2 收藏

java_ee_api

发布资源 2017.09.16 ·
zip