首页 > 面试资料 博客日记
Java中的队列与参数传递
2025-07-07 01:00:02面试资料围观775次
Java资料网推荐Java中的队列与参数传递这篇文章给大家,欢迎收藏Java资料网享受知识的乐趣
Java中的队列数据结构
定义:
队列(Queue)是一种先进先出(FIFQ)的线性数据结构
基本性质:
- 先进先出
- 主要操作
2.1 入队:向队尾插入元素
2.2 出队:从队首移除元素 - 只允许在队首删除,在队尾插入
- Queue 继承 Collection
常见用方法:
注意: add、remove、element操作时可能抛异常(队列为满或空)
实现类:
- LinkedList:双向链表,同时实现了List与Queue接口
- ArrayDeque:基于数组的双端队列:添加与移除元素较低复杂度
- Priority Queue :根据元素自然顺序或比较器决定队列顺序,基于优先级堆和无界优先级队列实现。
应用场景:
- 消息队列
系统间异步通信:生产者生产资料发送到队列中,消费者从队列中取出。 - 线程池任务调度
按照顺序执行任务,通常用队列存储待执行的任务 - 缓存淘汰策略
用于限制缓存大小,当缓存满时,通过队列的先进先出淘汰最早添加的元素。 - 网络请求调度
处理请求队列,按照先到先处理的顺序 - 广度优先搜索(BFS)
双端队列接口:
Deque 继承 Queue
实现类:LinkedList,ArrayDeque,LinkedBlockingDeque
三种用途:
- 普通队列:一段进一段出
- 双端队列:两端都可以进出
- 堆栈:push、pop、peek
Java参数传递
明确:Java只有值传递
两种类型
- 基本类型:传递的时值的副本。
- 引用类型:传递的是引用的“值”(即地址)的副本。
所以在方法中,改变形参的值(基本类型)或引用的值即指向其他地址(引用类型)调用者不会察觉。
面试一问:
Java中String作为参数传递时,传递的是值还是引用。
- String是对象,但是是不可变对象。
- 传递String参数时,传递的是引用的副本;但是因为String不变,方法内部的修改实际上是创建新对象,不会影响原来的变量也就是调用者感知不到,所以就好像是传递的是值的副本一样,其实是引用的副本。
文章来源:https://www.cnblogs.com/waterme123/p/18969649
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- SpringBoot--如何整体读取多个配置属性及其相关操作
- 个人网站一键引入免费开关评论功能 giscus
- Java开发笔记(一百五十五)生成随机数的几种途径
- 榨干 Claude Code 的 16 个实用小技巧(高端玩法,建议收藏!)
- NBA巨星詹姆斯表变老嫂子了?这锅Viggle Ai得背/Ai视频创作/Ai魔性视频创作/Ai优质视频创作
- Java简历、面试、试用期、转正
- 使用Apollo配置中心,**静态字段通过`@Value`的setter方法可以实现热更新**
- vivo Pulsar 万亿级消息处理实践(3)-KoP指标异常修复
- MybatisPlus使用详情
- G1收集器:JVM垃圾回收的新一代王者