- 博客(7)
- 收藏
- 关注

原创 java浅谈线程安全之锁
在java锁的知识中,我们首先要知道分布式锁和本地锁的概念。1、本地锁:在单进程的系统中,存在多个线程去同时操作某个共享变量时,就需要使用本地锁,最常用的关键字:synchronized2、分布式锁:在分布式系统中,我们知道会有多台服务器同时部署一个大项目,这样就是多进程对应的多线程问题。分布式情况下(多jvm),线程A和线程B很可能不在同一JVM中,这样本地锁无法解决问题,这个时候分布式锁就出现了。常用技术方案:目前作者已经使用过Redis+Lua脚本、使用redis中setnx指令、使用red
2021-09-03 16:16:22
1924
8
原创 Java简单实现栈和队列(附代码和理论知识)
文章目录1、栈2、队列数据结构之栈和队列数组和链表是线性表的物理存储结构:即顺序存储和链式存储,栈和队列都属于线性表的逻辑存储结构。上面这句话啥意思?我们知道常见的数据结构中有一个线性表,线性表包括:数组、链表、栈、队列。物理存储结构:数据在物理存储空间上选择集中存放还是分散存放,如数组(顺序存储结构)、链表(链式存储结构)。逻辑存储结构:数据之间的逻辑关系,需要借助物理存储结构进行设计以体现出数据之间的逻辑关系。如:栈、队列、树、图。上面的那些不利于理解的话我们可以简单理解为:物理存
2021-09-22 16:06:56
622
3
原创 java简单实现单向链表的头插法和尾插法(附代码)
为什么要学习数据结构和算法:package task8;/** * 简单模拟单向链表的头插法和尾插法,并遍历打印测试 * @param <T> */public class SingleList<T> { int size = 0; Node<T> head = new Node<>(); /** * 尾插法,打印出来的元素是正序 * @param e * @return */
2021-09-17 17:38:45
408
4
原创 Mq的幂等性问题分析和基本处理
前景介绍:在看这篇文章之前我先说说几个我在RocketMq使用中总结的问题,如有错误,请联系我删除谢谢。消息的发送失败和消费失败大多数都是网络原因和服务器内存问题。但是消费者消费消息失败除了以上原因外,还关系到我们在消费的方法中是否会产生异常,一旦产生异常,消费者就会给broker返回ack为0的应答,那么这个消息就会存在broker里面不会被剔除,并且会触发消息的重试机制,只到返回ack为1的应答。知道上面这个知识后我们来思考一个问题,消费者消费失败后触发重试机制,这样就产生了重复消费.
2021-09-15 11:37:58
2947
3
原创 RocketMq报错 :No route info of this topic : test-topic
一、问题描述在搭建好rockemq的本地环境后,运行mq的测试案例报如下错误,看报错是topic创建失败!上图原因:Broker 禁止自动创建Topic,且用户没有通过手动创建此Topic,或者broker 和 Nameserver网络不通;二、解决方案百度一哈的时候发现如下解决方案:在mq的conf目录下的broker.conf文件中加入如下图配置、然后重新启动mq我们发现还是不行。。。这个时候继续搜索资料发现是不是broker和nameserver网段不通,我们发现broker默认启动
2021-08-29 12:55:38
5693
2
原创 java内部类的学习
1. 内部类的分类内部类就是在一个类中又定义一个类。静态内部类:static修饰的内部类。普通内部类:不用static修饰的内部类。局部内部类:在类中方法内定义的内部类。2.内部类的基本语法3.内部类的特点内部类可以访问其所在类的属性(包括私有属性),内部类创建自身对象需要先创建其所在类的对象。普通内部类里面不能定义static属性和方法原因:普通内部类的存在依赖于外部类的对象,static随着类的加载而加载,产生了冲突。静态内部类可以定义staticsta
2021-08-18 18:26:40
115
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人