当前位置: 首页 > news >正文

Java数组的应用场景

目录

一、保存数据

二、作为函数的参数

        2.1. 参数传基本数据类型

        2.2. 参数传数组类型(引用数据类型)

三、 作为函数的返回值 


一、保存数据

public static void main(String[] args) {int[] array = {1, 2, 3};for(int i = 0; i < array.length; ++i){System.out.println(array[i] + " ");}}

二、作为函数的参数

        2.1. 参数传基本数据类型

 public static void main(String[] args) {int num = 0;func(num);System.out.println("num = " + num);}public static void func(int x) {x = 10;System.out.println("x = " + x);}// 执行结果
x = 10num = 0

                发现在func方法中修改形参 x 的值, 不影响实参的 num 值。 

        2.2. 参数传数组类型(引用数据类型)

public static void main(String[] args) {int[] arr = {1, 2, 3};func(arr);System.out.println("arr[0] = " + arr[0]);}public static void func(int[] a) {a[0] = 10;System.out.println("a[0] = " + a[0]);}// 执行结果
a[0] = 10arr[0] = 10

                发现在func方法内部修改数组的内容, 方法外部的数组内容也发生改变. 因为数组是引用类型,按照引用类型来进行传递,是可以修改其中存放的内容的。 

        总结:

        所谓的 "引用" 本质上只是存了一个地址. Java 将数组设定成引用类型, 这样的话后续进行数组参数传参, 其实 只是将数组的地址传入到函数形参中. 这样可以避免对整个数组的拷贝(数组可能比较长, 那么拷贝开销就会很大)      

三、 作为函数的返回值 

        获取斐波那契数列的前N项

 public class TestArray {public static int[] fib(int n){if(n <= 0){return null;}int[] array = new int[n];array[0] = array[1] = 1;for(int i = 2; i < n; ++i){array[i] = array[i-1] + array[i-2];}return array;}public static void main(String[] args) {int[] array = fib(10);for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}}}

完!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 音频剪辑软件哪个好用?五大音频剪辑软件分享
  • Chrome快捷键提高效率
  • Vue 3 + Pinia 实现网页刷新功能
  • 在js中判断对象是空对象的几种方法
  • MySQL库表的基本操作
  • uniapp 页面跳转传参:父页面监听子页面传过来的数据
  • linux下串口通信相关知识
  • 避免CSRF攻击的方案
  • 数据炼金术:用Python爬虫精炼信息
  • CSDN AI-WEB-1.0 攻略
  • C++基础语法:析构函数
  • 【现代操作系统】1. intro
  • Java中的主要设计模式
  • ubuntu18.04下安装nvidia3090显卡驱动
  • 数据结构----栈
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 2017届校招提前批面试回顾
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Linux中的硬链接与软链接
  • passportjs 源码分析
  • python 学习笔记 - Queue Pipes,进程间通讯
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 聚簇索引和非聚簇索引
  • 深入浏览器事件循环的本质
  • 写给高年级小学生看的《Bash 指南》
  • 用 Swift 编写面向协议的视图
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (007)XHTML文档之标题——h1~h6
  • (07)Hive——窗口函数详解
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (31)对象的克隆
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (分布式缓存)Redis持久化
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (转)EOS中账户、钱包和密钥的关系
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET/C# 使用反射注册事件
  • .NetCore部署微服务(二)
  • .NET成年了,然后呢?
  • .net通用权限框架B/S (三)--MODEL层(2)
  • @Responsebody与@RequestBody
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [18] Opencv_CUDA应用之 基于颜色的对象检测与跟踪
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [APIO2015]巴厘岛的雕塑
  • [BT]BUUCTF刷题第9天(3.27)
  • [CLR via C#]11. 事件
  • [G-CS-MR.PS02] 機巧之形2: Ruler Circle
  • [Json.net]快速入门