- 博客(193)
- 收藏
- 关注
原创 HashMap的put方法执行过程
根据Key通过哈希算法与与运算得出数组下标如果数组下标位置元素为空,则将key和value封装为Entry对象(JDK1.7中是Entry对象,JDK1.8中是Node对象)并放⼊该位置如果数组下标位置元素不为空,则要分情况讨论a. 如果是JDK1.7,则先判断是否需要扩容,如果要扩容就进⾏扩容,如果不⽤扩容就⽣成Entry对象,并使⽤头插法添加到当前位置的链表中b. 如果是JDK1.8,则会先判断当前位置上的Node的类型,看是红⿊树Node,还是链表Nodeⅰ. 如果是红⿊树Node,
2024-02-22 11:03:14 401
原创 Java中重写与重载的区别
定义参数返回值发生位置编译时决定目的重载在同一个类中,方法名相同但参数列表不同的一组方法。参数列表不同,包括参数类型、参数个数、参数顺序返回值可以相同也可以不同。在同一个类中发生。编译器根据调用时的参数列表决定调用哪个重载方法。提供不同的方法重载,用于处理不同的参数类型、个数等情况。重写在继承关系中,子类重新定义父类中已经存在的方法。参数列表相同返回值必须相同。在继承关系中子类中发生。运行时决定,根据对象的实际类型决定调用父类方法还是子类方法。子类
2024-02-22 10:19:43 373
原创 RabbitMQ如何保证可靠
即:当消费者处理消息结束后,应该向RabbitMQ发送一个回执,告知RabbitMQ自己消息处理状态。因此大多数情况下我们需要将消息处理的代码通过try catch机制捕获,消息处理成功时返回ack,处理失败时返回nack.如果消费者再次执行依然出错,消息会再次requeue到队列,再次投递,直到消息处理成功为止。为了解决这个问题,从RabbitMQ的3.6.0版本开始,就增加了Lazy Queues的模式,也就是惰性队列。为了提升性能,默认情况下MQ的数据都是在内存存储的临时数据,重启后就会消失。
2024-02-16 10:21:14 1914
原创 springboot声明(创建)RabbitMQ交换机和队列
在之前我们都是基于RabbitMQ控制台来创建队列、交换机。但是在实际开发时,队列和交换机是程序员定义的,将来项目上线,又要交给运维去创建。那么程序员就需要把程序中运行的所有队列和交换机都写下来,交给运维。在这个过程中是很容易出现错误的。因此推荐的做法是由程序启动时检查队列和交换机是否存在,如果不存在自动创建。
2024-02-15 18:16:14 836
原创 RabbitMQ交换机
添加队列fanout.queue1。添加队列fanout.queue2。添加交换机harry.fanout。添加队列direct.queue1。添加队列direct.queue2。添加交换机harry.direct。添加队列direct.queue1。添加队列direct.queue2。添加交换机harry.direct。
2024-02-15 17:47:44 944 1
原创 Flink1.17.1消费kafka3.5中的数据出现问题Failed to get metadata for topics [flink].
【代码】Flink1.17.1消费kafka3.5中的数据出现问题Failed to get metadata for topics [flink].
2023-08-22 18:02:46 1411
原创 在 docker 中快速启动 Apache Hive
在伪分布式模式下,在Docker容器内运行Apache Hive,可以提供以下功能:快速启动/调试/为Hive准备测试环境。
2023-08-14 19:18:53 1806
原创 springboot笔记
创建一个实现接口的自定义过滤器类。// 初始化方法 } @Override public void doFilter(ServletRequest request , ServletResponse response , FilterChain chain) throws IOException , ServletException {// 在这里编写对请求的处理逻辑 // 继续调用过滤器链 chain . doFilter(request , response);// 销毁方法 } }
2023-07-21 11:37:57 115
原创 Linux 环境变量配置说明
不管是login shell还是non-login shell,启动时都会加载/etc/profile.d/*.sh中的环境变量。
2022-09-25 17:41:20 154
原创 MySQL 索引失效的情况
1. 在有索引的列上进行运算操作,索引失效。 2. 字符串类型字段使用时不加引号,索引失效。 3. 模糊查询时,尾部模糊匹配不会失效,但头部模糊匹配,索引失效。 4. 用 or 分割开的条件,如果其中一个列没有索引,那么涉及的索引都不会用到。 5. 如果 MySQL 评估使用全表扫描比索引快,索引失效。
2022-09-08 09:48:55 275
原创 MySQL 最左前缀法则
如果使用了联合索引,要遵循最左前缀法则。最左前缀法则是指查询从索引的最左列开始,并且不跳过索引中的列。如果跳过了某一列,索引后面的字段索引失效。联合索引中,出现了范围查询(< 、>),范围查询右侧的列索引失效。可以使用 >= 或
2022-09-08 09:42:38 425
原创 为什么 InnoDB 存储引擎选择使用 B+Tree 索引结构?
- 相对于二叉树,层级更少,搜索效率高- 对于 B-Tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储的键值减少,指针也跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低- 相对于 Hash 索引,B+Tree 支持范围匹配及排序操作
2022-09-07 17:44:46 275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人