Hi!欢迎光临陕西省的权威思科、华为、Oracle、红帽、深信服、微软认证培训中心!
| 029-88235527
您现在所在位置:首页 > 新闻资讯 > 最新资讯 >

java数组作为方法参数传递及作为方法返回值

发布日期:2019-09-05 17:10:01点击次数:

分享到:
  今天西安鸥鹏培训机构小编分别介绍java数组定义、java数组作为方法参数传递及java中数组作为方法返回值的内容,希望各位小伙伴看完此文,能够掌握java数组的定义,参数传递,返回值,下面就随小编一起看看吧。

java数组作为方法参数传递及作为方法返回值
  一、数组的定义

  方式一:

  格式:数组存储的数据类型【】数组名字=new数组存储的数据类型【长度】;

  数组存储的数据类型:创建的数组容器可以存储什么数据类型。

  【】:表示数组。

  数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。

  new:关键字。

  数组存储的数据类型:创建的数组容器可以存储什么数据类型。

  【长度】:数组的长度,表示数组容器中可以存储多少个元素。

  注意:数组有定长的特性,长度一旦指定,不可更改。

  例如:int[]arr=newint[5];

  方式二:

  格式:数据类型【】数组名=new数据类型【】{元素1,元素2,元素3...};

  注意:给定了具体的元素就不能给定长度。

  例如:int[]arr=newint{23,4,54,324,2};

  方式三:

  格式:数据类型【】数组名={元素1,元素2,元素3...};

  例如:int[]arr={12,34,5446,5,45};

  二、数组的访问

  直接输出数组名,显示的是数组的地址,如下面示例代码中[I@50cbc42f

  索引:每一个存储到数组的元素,都会自动拥有一个编号,从0开始,这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。

  通过索引访问数组中的元素:

  数组名【索引】,获取出数组中的元素

  数组名【索引】=数组,为数组中的元素赋值。

  定义一个空数组,动态初始化创建的数组,java会有默认值

  int[]的默认值是0,double[]默认值是0.0,boolean[]的默认值是false

  int[]arr2=newint[4];

  System.out.println(arr2[0]);//0

  double[]arr3=newdouble[4];

  System.out.println(arr3[0]);//0.0

  boolean[]arr4=newboolean[4];

  System.out.println(arr4[0]);//false

  数组的长度属性:每个数组都具有长度,而且是固定的,获取数组的长度格式:数组名.length,数组的最大索引值为:数组名.length-1

  publicclassArrayDemo{

  publicstaticvoidmain(String[]args){

  //定义数组

  int[]arr={10,20,30,40};

  //直接输出数组

  System.out.println(arr);//[I@50cbc42f

  //通过索引获取数组元素

  System.out.println(arr[0]);//10

  System.out.println(arr[1]);//20

  System.out.println(arr[2]);//30

  System.out.println(arr[3]);//40

  System.out.println("------------");

  //通过索引修改数组元素

  arr[2]=100;

  System.out.println(arr[0]);//10

  System.out.println(arr[1]);//20

  System.out.println(arr[2]);//100

  System.out.println(arr[3]);//40

  System.out.println("--------------");

  /*

  定义一个空数组,动态初始化创建的数组,java会有默认值

  int[]的默认值是0,double[]默认值是0.0,boolean[]的默认值是false

  */

  int[]arr2=newint[4];

  System.out.println(arr2[0]);//0

  double[]arr3=newdouble[4];

  System.out.println(arr3[0]);//0.0

  boolean[]arr4=newboolean[4];

  System.out.println(arr4[0]);//false

  }

  }

  三、数组原理内存图-内存概述

  内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。

  java虚拟机要运行程序,必须要对内存进行空间分配和管理。

  四、java虚拟机的内存划分

java数组作为方法参数传递及作为方法返回值

  JVM的内存划分

  方法栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行。(即方法进栈执行)

  堆内存:存储对象或者数组,new来创建的,都存储在堆内存。(看到new就想到存储在堆内存中)

  方法区:存储可以运行的class文件。

  本地方法栈:JVM在使用操作系统功能的时候使用,和我们开发无关。

  寄存器:给CPU使用,和我们开发无关。

  五、数组作为方法参数

  数组作为方法参数传递,传递的参数是数组内存的地址值。

  publicclassArrayDemo01{

  publicstaticvoidmain(String[]args){

  int[]arr=newint[]{11,22,33,44,55};

  System.out.println("arr="+arr);//arr=[I@58ceff1

  printArray(arr);//arr=[I@58ceff1传递的是地址值

  }

  /*

  定义方法,用于打印int类型数组中的内容

  返回值类型:打印完了就可以了,不需要返回值,void

  参数列表:打印哪个数组不确定,作为参数列表

  输出作为参数,实际传递的是地址值

  */

  publicstaticvoidprintArray(int[]a){

  System.out.println("a="+a);//a=[I@58ceff1

  //遍历数组

  for(inti=0;i<a.length;i++){

  System.out.println(a[i]);

  }

  }

  }

  六、数组作为方法返回值

  数组作为方法的返回值,返回的是数组的内存地址

  publicclassArrayDemo02{

  publicstaticvoidmain(String[]args){

  int[]a=getArray();

  System.out.println("a="+a);//a=[I@58ceff1

  for(inti=0;i<a.length;i++){

  System.out.println(a[i]);

  }

  }

  /*

  数组可以作为返回值类型

  */

  publicstaticint[]getArray(){

  int[]arr=newint[]{11,22,33,44,55};

  System.out.println("arr="+arr);//arr=[I@58ceff1

  returnarr;

  }

  }