每日一问
焦子豪<<
这个作者很懒,什么都没留下…
展开
-
什么是多路复用
什么是多路复用 多路复用是一种技术,允许多个输入或输出流共享一个单一的通信信道或计算资源。通过多路复用,多个数据流可以同时在同一个通道上传输,提高了通信效率和资源利用率。在计算机网络中,多路复用常用于实现同时传输多个数据流,避免资源浪费和提高传输效率。:将时间分割成若干个时隙,不同数据流在不同时隙传输,实现多路复用。在传统的电话通信中广泛应用:将信道分成不同的频率带宽,每个数据流占据不同的频率带宽进行传输。在移动通信,卫星通信,广播电视上广泛应用:通过不同的编码技术将不同数据流区分开来,实现多路复用。原创 2024-03-14 21:55:15 · 477 阅读 · 0 评论 -
Queue 和 Stack 的区别
Queue(队列)和Stack(栈)都不提供迭代器,但Queue(队列)的元素可以通过特定的方法访问,而Stack(栈)由于其后进先出的特性,只允许访问栈顶的元素,因此无法进行遍历。Queue(队列)允许从队头和队尾分别访问元素,但一般只能在队头删除元素,在队尾插入元素。Queue(队列)的元素只能从队尾插入,从队头删除,保持了元素的顺序。Stack(栈)的元素只能从栈顶插入和删除,新插入的元素成为新的栈顶。(FIFO)的方式存储数据,即最先进入队列的元素最先被取出。Stack(栈)采用。原创 2024-03-13 21:45:01 · 423 阅读 · 0 评论 -
Vector 和 List的区别
而List下的 Linkedlist 则是基于双向链表实现的,其内存空间是不连续的。当集合元素数量增加时,Vector和List的扩容机制有所不同。Vector的内存空间是连续的,类似于数组,这使得它能够进行高效的随机存取操作,时间复杂度为O(1)。List则不是线程安全的,因此在多线程环境下使用时,需要进行额外的同步处理,否则可能导致数据不一致。List的扩容机制则更为灵活,它根据需要自动调整大小,通常扩容至原来的1.5倍。Vector是线程安全的,意味着在多线程并发访问时,它能够保证数据的安全性。原创 2024-03-13 21:36:34 · 357 阅读 · 0 评论 -
HashMap 底层,同时遍历+删除会出现什么问题?怎么解决
HashMap 底层,同时遍历+删除会出现什么问题?怎么解决?遍历HashMap时,如果删除元素,会触发这个异常,这是因为迭代器在遍历过程中维护了一个预期修改次数,而HashMap的修改会更新这个预期修改次数,当这个预期修改次数和期望值不一样时,会抛出。异常,这是因为HashMap的迭代器是快速失败的(fail-fast),当检测到结构性的改变(比如增加或删除元素)时会立即抛出异常。使用并发集合:使用线程安全的ConcurrentHashMap,原创 2024-03-09 22:54:24 · 492 阅读 · 0 评论 -
每日一问之Java中的类加载机制
Java中的类加载机制 Java中的类加载过程分为 加载、链接、初始化 三个步骤初始化:执行类的初始化代码,包括静态代码块和构造函数。验证:检查类的字节码是否符合Java的语法规范。准备:为类的静态变量分配内存并设置初始值。加载:将类的字节码文件加载到内存中。链接可以细化分成 验证、准备、解析。解析:将类的符号引用转换为直接引用。Java中的类加载过程分为。原创 2024-03-09 22:37:02 · 375 阅读 · 0 评论