自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 详解ReentrantLock---公平锁与非公平锁

https://blog.csdn.net/ljz2016/article/details/77696671https://blog.csdn.net/qq_42001445/article/details/108429202https://blog.csdn.net/m47838704/article/details/80013056其中AbstractOwnableSynchronizer是提供了设置占用当前锁的线程信息的方法,主要的锁的实现还是在AbstractQueuedSynchr

2021-08-04 10:34:30 276

原创 Rocket MQ如何保证消息顺序消费

文章参考:https://www.cnblogs.com/hzmark/p/orderly_message.htmlhttps://www.zhihu.com/question/30195969消息中间件中的顺序消息什么是顺序消息有了上述的基础之后,我们回到本篇文章的主题中,聊一聊消息中间件中的顺序消息。顺序消息(FIFO 消息)是 MQ 提供的一种严格按照顺序进行发布和消费的消息类型。顺序消息由两个部分组成:顺序发布和顺序消费。顺序消息包含两种类型:分区顺序:一个Part

2021-08-02 17:23:17 3467

原创 mysql索引

聚簇索引与非聚簇索通俗点讲聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据 非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中时,速度慢的原因澄清一个概念:innodb中,在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引

2021-07-28 17:11:05 94

原创 String intern方法

请说intern方法。和猜测下面代码的运行结果。 public static void main(String[] args) { String str1 = new StringBuffer("58").append("tongcheng").toString(); String str2 = new StringBuffer("ja").append("va").toString(); System.out.println(st

2021-07-13 17:50:25 131

原创 redo undo log

1 undo及redo如何记录事务1.1 Undo + Redo事务的简化过程 假设有A、B两个数据,值分别为1,2,开始一个事务,事务的操作内容为:把1修改为3,2修改为4,那么实际的记录如下(简化): A.事务开始. B.记录A=1到undo log. C.修改A=3. D.记录A=3到redo log. E.记录B=2到undo log. F.修改B=4. G.记录B=4到redo log. H.将redo log写入磁盘。 I.事务提交1...

2021-06-24 10:51:24 91

原创 杂题

beanFactory factoryBean 的区别https://www.jianshu.com/p/05c909c9beb0装饰者模式NIOredis为什么单线程也能支撑高并发redis的持久化

2021-05-25 10:34:24 64

原创 一条更新语句的执行过程

更新语句的流程跟查询语句大体相同:1.连接数据库 ——连接器的工作2.在一个表上有更新的时候,跟这个表有关的查询缓存会失效3.分析器会通过词法和语法解析知道这是一条更新语句4.优化器决定要使用哪个索引(更新也需要先查找到目标行)5.执行器负责具体执行,找到需要更新的行,然后更新。与查询流程不一样的是,更新流程涉及两个重要日志模块:redo log(重做日志)和binlog(归档日志)。其中redo log是innodb引擎独有的,而binlog是server层的日...

2021-05-19 18:29:29 191 1

原创 理透jvm基础

JVM基础(一)JVM的工作流程https://zhuanlan.zhihu.com/p/111369585JVM基础(二)JVM的内存分区https://zhuanlan.zhihu.com/p/111370230JVM基础(三)一个对象的创建过程https://zhuanlan.zhihu.com/p/142614439JVM基础(四)垃圾回收算法https://zhuanlan.zhihu.com/p/112018694JVM基础(五)垃圾收集器http...

2021-05-08 11:16:20 56

原创 B树&B+树&InnoDB为何采用B+树

B树(B-tree)概念:B树和平衡二叉树稍有不同的是B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用者B树和B+树的数据结构,让我们来看看他有什么特点;规则:(1)排序方式:所有节点关键字是按递增次序排列,并遵循左小右大原则;(2)子节点数:非叶节点的子节点数>1,且<=M ,且M>=2,空树除外(注:M阶代表一个树节点最多有多少个查找路径,M=M路,当M=2则是2叉树,M=3则是3叉);(3)关键字数:枝节点的关键字数量大于等于cei.

2021-05-02 09:53:51 531

原创 一文搞懂JVM内存结构

查看这篇博客就可以了https://blog.csdn.net/rongtaoup/article/details/89142396

2021-05-01 19:29:40 93

原创 leetcode数组部分

题目一题目描述给定两个排序整数数组nums1和nums2,将nums2合并为一个排序数组nums1。nums1和nums2中初始化的元素数量分别为m和n。您可以假设nums1有足够的空间(大小大于或等于m + n)来容纳nums2中的其他元素public void merge(int[] nums1, int m, int[] nums2, int n) { //合并后最后一个数的索引为m+n-1 int i = m-1...

2021-05-01 18:24:30 94

原创 java中的常量池

JVM 的运行时数据区主要包括:堆、栈、方法区、程序计数器等。方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码。更具体的说,静态变量+常量+类信息(版本、方法、字段等)+运行时常量池存在方法区中。常量池是方法区的一部分常量池中存储编译器生成的各种字面量和符号引用。字面量就是Java中常量的意思。比如文本字符串,final修饰的常量等。方法引用则包括类和接口的全限定名,方法名和描述符,字段名和描述符等。常量池有什么用 ?优点:常量池避免了频繁的创建

2021-05-01 09:51:06 200

原创 存储结构优化

Redis出网流量过高 和 实例的缓存内存占比过大容易引起OOM?原因当前(本地缓存)广告数据adCacheVo的投放商家存的是0101字符串过大,rangeBinStr存储方式是:以当前最大storeID为String长度,存储当前所有门店ID;adCacheVo以广告位Key存储了所有创意的广告数据,该key的最大可达20M,导致了Redis出网流量和实例堆内存占比过大;春节期间,OOM的dump文件,rangeBinStr大概占比99%+Redis出网流量原始方案门

2021-04-26 12:35:16 154 2

原创 线上问题回溯-Redis连接数打满

Redis连接数打满通过日志查看redis无法连接了,通过查看redis服务得知redis的连接数满了,超过了最大连接数。省略定位问题过程,直接讲造成问题的原因:日志打印造成redis连接数不断增长出现问题的代码:try { // 执行策略处理器 logger.info("AtlasFetchAdServiceImpl.getActiveAds entry.getValue={}", JSONObject.toJSONString(entry.getValue(),ne

2021-04-26 12:22:59 3344

原创 leetcode题目

动态规划部分:爬楼梯问题(斐波那契)题目描述假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶解...

2021-04-25 10:05:25 75

原创 面试-如何设计一个高并发 高可用的系统

1

2021-04-24 10:46:55 845 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除