java数组笔记,java入门数组基础
00-1010 1.方法的使用。方法的定义2。方法的重载2。数组的定义和使用1。数组的基本概念(1)数组的创建(2)数组的初始化(3)数组的遍历2。数组是引用类型(JVM的内存分配)3。参考变量4。数组复制函数5。for .二维数组的每次遍历。
目录
00-1010 Java中的方法相当于C语言中的函数。
方法的语法格式
//方法的定义
修饰符返回值类型方法的名称([参数类型参数]) {
方法体代码;
【返回返回值】;
}
[注意事项]
修饰符:这个阶段直接用public static来固定返回值类型:如果方法有返回值,返回值类型必须和返回的实体类型一致;如果没有返回值,必须写成void方法名:采用小驼峰命名参数表:如果方法没有参数,则在()中什么都不写;如果有参数,必须指定参数类型。多个参数之间用逗号分隔:方法内部要执行的语句在java中,方法必须用java写在类中,方法不能用java嵌套和定义,所以没有方法声明。
00-1010如果多个方法具有相同的名称和不同的参数列表,则该方法被称为重载。
public class test method { public static void main(String[]args){ add(1,2);//调用函数add(int,int) add(1.5,2.5);//调用函数add(double,double) add(1,3,5);//调用函数add (int,int,int)} public static int add (int x,int y){ return x y;}公共静态double add(double x,double y){ return x y;} public static double add(int x,int y,int z){ return x y z;} }[注意]
无论返回值类型是否相同,方法名称必须相同,参数列表必须不同(参数个数、参数类型和类型顺序必须不同)。
一、方法的使用
1、方法的定义
00-1010t []数组名=new T[N];
t:指示数组中元素的类型。
n:表示数组的大小。
int[]array 1=new int[10];//创建一个可以容纳10个int类型元素的数组double[]array 2=new double[5];//创建一个可以容纳5个double类型元素的数组String[]array 3=new double[3];//创建一个可以容纳3个字符串元素的数组
00-1010动态初始化:创建数组时,直接指定书中的元素个数。
int[]array=new int[10];//默认值为0。静态初始化:在创建时不直接指定数据元素的数量,而是直接指定元素的内容。
格式:T[]数组名={data1,datan };
int[] array1=new int[]{0,1,2,3,4,5,6,7,8,9 };double[] array2=new double[]{1.0,2.0,3.0,4.0,5.0 };String[]array 3=new String[]{ hell , Java ,!};[注意]
虽然在静态初始化中没有指定数组的长度,但是编译器会在编译时根据{}中的元素个数来确定数组的长度。静态初始化时,{}中的数据类型必须与[]之前的数据类型一致。静态初始化可以省略,省略下面的新T[]。也可以根据下面的C语言数量创建数组,但不推荐这样做。如果不确定数组的内容,使用动态初始化,否则建议使用静态初始化。如果数组未初始化,数组中的元素将使用默认值。
4>(3)数组的遍历通过for循环来遍历,在数组中可以通过length来获取数组长使用for-each遍历数组
int[] array={1,2,3};for(int x:array){ System.out.println(x);};//遍历array中元素,将元素放在x中进行打印
将数组以字符串的形式进行打印
Array.toString(array);//将数组以字符串的形式进行输出
2、数组是引用类型(JVM的内存分布)
方法区(Method Area)和堆(Heap)为所有线程所共享,每个线程拥有独立的虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)以及程序计数器。
程序计数器 (PC Register): 用来保存下一条执行的指令的地址虚拟机栈(JVM Stack):用来保存方法执行相关的一些信息:局部变量、操作数栈、动态链接、返回地址以及其他的一些信息。当方法运行结束后,栈帧就被销毁了,即栈帧中保存的数据也被销毁了。本地方法栈(Native Method Stack):虚拟机栈的作用类似. 只不过保存的内容是Native方法的局部变量。堆(Heap):使用 new 创建的对象都是在堆上保存。堆是随着程序开始运行时而创建,随着程序的退出而销毁,堆中的数据只要还有在使用,就不会被销毁。方法区(Method Area): 用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据. 方法编译出的的字节码就是保存在这个区域 。
3、引用变量
引用变量的0值为null,引用为空值时,不指向任何对象引用变量虚拟机栈中存储的是其在堆中空间的起始地址,通过改地址可以去操作对象。举例如下:
public static void func() { int[] array1 = new int[3]; array1[0] = 10; array1[1] = 20; array1[2] = 30; int[] array2 = new int[]{1,2,3,4,5}; array2[0] = 100; array2[1] = 200; array1 = array2; array1[2] = 300; array1[3] = 400; array2[4] = 500; for (int i = 0; i < array2.length; i++) { System.out.println(array2[i]); }}
创建数组array1,没有设置初始值,因此其为0;通过下标修改数组array1中元素为10、20、30;创建数组array2,初始值为1、2、3、4、5;通过下标方式将数组array2中前两个元素设置为100、200;array1=array2,既让array1去引用array2引用的数组的空间,此时array1和array2其实是一个数组;通过array1将2、3号元素修改为300、400;通过array2修改4号元素为500;此时打印array2的结果应为:100、200、300、400、500
4、数组拷贝函数
完全拷贝(Array.copyof)
int[] arr={1,2,3,4,5};int[] newarr=Array.copyof(arr,arr.length);
copyof方法在进行数组拷贝时,创建了新的数组此时arr和newarr引用的不是同一个数组范围拷贝(Array.copyofRange)
int[] newarr1=Array.copyofRange(arr,int i,int j);
拷贝从 i 下标的 j -1 下标的数组元素;
5、二维数组的for.each遍历
int[][]arr={{1,2,3,4},{5,6,7,8},{3,6,2,3}};for(int[] tmp:arr){ for(int x:tmp){ System.out.println(x); }}
二位数组就是特殊的一维数组
到此这篇关于java 方法与数组基础使用详解的文章就介绍到这了,更多相关java 方法与数组内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。