JDK1.2 以后,Java引用的概念进行了扩充,将引用分为Strong强引用、Soft软引用、Weak弱引用、Phantom虚引用四种(引用强度逐渐减弱),它们被用来标识对象在GC过程中的生命周期,使得虚拟机更合理地根据内存的大小和对象作用选择是否回收掉这些引用
# Python消息队列的用处 ## 概述 在软件开发中,消息队列是一种常用的通信方式,用于在不同的系统或组件之间传递消息。Python提供了多种消息队列的库,如RabbitMQ、Redis、ZeroMQ等,可以方便地实现消息队列功能。本文将介绍Python消息队列的用处,并指导如何使用Python来实现消息队列。 ## 流程图 ```mermaid flowchart TD A(创建
原创 2024-04-26 07:35:52
69阅读
阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示:从上图可以看到,通过一个共享的队列,可以使得数据由队列的一端输入,从另一端输出;常用的队列主要有以下两种:(当然通过不同的实现方式,还可以延伸出很多不同类型的队列,DelayQueue就是其中的一种)  先进先出(FIFO):先插入队列的元素也最先出队列,类似于排队的功能。从某种程序上来说这种队列体现了一种公平性
转载 2024-05-08 10:36:37
29阅读
Deque简介Deque是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。允许快速地访地随机访问,但是和vector这种将所有对象保存在一块连续的内存块不同,Deque是采用多个连续的存储块,并且在一个映射结构中保存对这些块及顺序的跟踪。向deque两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素相比vector更有效。Deque更像是对vector和list优
在一个GROUP BY 查询中,根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果进行UNION ALL操作。GROUPING SETS就是一种将多个GROUP BY逻辑UNION写在一个HIVE SQL语句中的便利写法。GROUPING SETS会把在单个GROUP BY逻辑中没有参与GROUP BY的那一列置为NULL值,这样聚合出来的结果,未被GROUP BY的列将显示为NU
大家好,我是煎鱼。最近我有一个朋友公司踩了不少消息队列(MQ)的坑,让人无奈不已。因此计划写 MQ 系列的技术文章,来科普更多这块的知识。目前 MQ 也是互联网应用中非常常用的基础组件了,面试特爱问。基本有一定规模的系统都能看见他的踪影。无论是 RocketMQ、Kafka、RabbitMQ 等,都围绕着根本的设计出发产生不同的高级功能,甚至可能是雷同的设计有 N 个名字。什么是 MQMQ 一般代
    C++ Deque(双向队列)是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比ve
作者:三少爷敖丙面试开始一个风度翩翩,穿着格子衬衣的中年男子,拿着一个满是划痕的mac向你走来,看着铮亮的头,心想着肯定是尼玛顶级架构师吧!但是我们看过暖男敖丙的系列,腹有诗书气自华,虚都不虚。小伙子之前问了你这么多Redis的知识,你不仅对答如流,你还能把各自场景的解决方案,优缺点说得这么流畅,说你是不是看过敖丙写的《吊打面试官》系列呀?惊!!!老师你怎么知道的,我看了他的系列根本停不下来啊。呵
MQ全称为Message Queue, 消息队列(MQ)是应用程序“对”应用程序的通信方法。MQ:生产者者往消息队列中写消息,消费可以读取队列中的消息。MQ的好处有很多:好处一:解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束
我们有时候会在中间件的事务码SMQ2即Inbound队列查看器里观察到以CSA开头的队列: 这些队列的作用是什么呢?在SAP community上已经有很多朋友提出了相同的问题,也有专家在下列两个连接里给予了解答: http://scn.sap.com/thread/2056716 http://scn.sap.com/thread/2079157 简单地说,每次CRM系统里的object发生
原创 2021-07-14 15:03:56
61阅读
我们有时候会在中间件的事务码SMQ2即Inbound队列查看器里观察到以CSA开头的队列: 这些队列的作用是什么呢?在SAP community上已经有很多朋友提出了相同的问题,也有专家在下列两个连接里给予了解答: "http://scn.sap.com/thread/2056716" "http:
原创 2021-10-22 09:45:48
41阅读
几个关于MQ的问题1.为什么要使用 MQ?2.使用了 MQ 之后有什么优缺点?3.怎么保证 MQ 消息不丢失?4.怎么保证 MQ 的高可用性? 1.为什么要使用 MQ?其实MQ 的场景有很多,但是比较核心的有3个:异步处理、削峰填谷、应用解耦。异步处理:用户注册后,需要发送注册邮件和注册短信。假设注册信息加入数据库需要30ms,发送注册邮件需要40ms。发送注册短信需要50ms。总共需要的时间就
RAID磁盘阵列(Redundant Array of Independent Disks)是一种在多个硬盘驱动器之间分布或复制数据的技术,旨在提高数据存储性能、可靠性和容量。RAID技术通过在多个磁盘上分布数据以提高性能,或通过复制数据以提高冗余性来保护数据。 在Kubernetes(K8S)集群中使用RAID磁盘阵列可以增加存储性能和可靠性,确保应用程序运行的稳定性和持久性。下面我们将详细讲
原创 2024-04-28 11:45:31
73阅读
学习了新的知识,记录一下,以下均为个人理解。消息队列我们为什么要使用消息队列,消息队列有什么好处呢?在现实生活中,一个操作往往会引起系统的一系列反应,但这些反应有的可能并不是我需要去关心的核心操作。以在PS商店购买游戏为例子,在确认支付账户扣款成功之后,电子邮箱还会收到一封邮件提示你的账号刚刚购买了某个游戏。发送邮件的时间有长有短,甚至可能发送失败,但是我购买这个游戏的操作并不会收到它的影响,我只
# Java引用的用途 在Java中,弱引用是一种比较特殊的引用类型,它的生命周期相对较短,当被垃圾回收器检测到只具有弱引用的对象时,就会立即回收该对象的内存。弱引用通常用来解决内存泄漏的问题,实现一些高级的功能,比如缓存、监听器等。 ## 弱引用的定义 在Java中,可以通过`java.lang.ref.WeakReference`类来创建弱引用。以下是创建弱引用的示例代码: ```
原创 2024-06-26 07:05:00
131阅读
1. 概念1. 强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java 虚拟机宁愿抛出 OutOfMemoryError 错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。2. 软引用(SoftReference)如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存
# Java 双向队列的好处 ## 概述 在Java中,双向队列(也叫双端队列)是一种具有队列和栈的性质的数据结构,可以在队列的两端进行操作。在这篇文章中,我将向你介绍Java双向队列的好处,并指导你如何实现它。 ## 流程图 ```mermaid flowchart TD A[创建双向队列] --> B[向队尾添加元素] B --> C[向队头添加元素] C -->
原创 2024-05-26 05:39:10
33阅读
在创建索引时,可以指定一些选项,通过使用这些选项,可以优化索引的性能。这些选项包括FILLFACTOR选项、PAD_INDEX选项和SORTED_DATA_REORG选项。使用FILLFACTOR选项,可以优化插入语句和修改语句的性能。当某个索引页变满时,SQL SERVER必须花费时间分解该页,以便为新的记录行腾出空间。使用FILLFACTOR选项,就是在叶级索引页上分配一定百分比的自由空间,以
转载 2023-11-16 07:13:19
39阅读
java8新特性:二,方法引用方法引用(method reference)通过方法的名字来指向一个方法。方法引用可以使语言的构造更紧凑简洁,减少冗余代码。方法引用使用一对冒号 :: 。1 函数式接口@FunctionalInterface@FunctionalInterface interface Supply<T>{ T get(); }查看源码:从概念上讲,函数式接口只有一
转载 2023-08-19 15:30:35
66阅读
一、概述1. 引入方法引用是在Java8中引入的新特性,使用方法引用可以进一步的简化Lambda的一些基本操作。我们知道在JavaScript中方法也是对象,也就是说,我们可以直接对方法进行传递,方法可以作为某个函数的参数。Java的方法引用也是类似的思想,使用方法引用可以对方法的引用进行传递,然后由接受的方法底层进行执行。方法引用使用的一般方式如下:List list = Arrays.asLi
  • 1
  • 2
  • 3
  • 4
  • 5