java中数组源代码 java数组源码解析

java 字符串数组作为参数传递结果未初始化我明白你的意思 。你是说result这个数组作为参数传递进去,在执行Converse方法后为啥还是null对吗 。其实是这样 。引用传递没错 。但是你忘记了一件事 。String [] result没有初始化,那么其实String [] result = null;所有成员变量会默认初始化,只不过引用型默认为null 。这样一来 , result=null 。相当于你在Converse(input,result)时传了null进去 。这时,pOutput=result,即pOutput=null,执行这一句pOutput = wordArray.split(" ")后pOutput指向了一个String[]对象不为null了,但是方法结束后pOutput就弹栈了就死了而result还指向null;因此当该方法结束后result还是null 。
用JAVA语言实现对数组[8,15,7,669,25,4,32]的非递减排序,求程序源代码及运行结果public static void sort(int[] num){
for (int i =0;inum.length-1;i++)
for(int j=i+1;jnum.length;j++){
if (num[i]num[j]){
tmp = num[i];
num[i] =num[j];
num[j]=tmp;
}
}
}
Java数组的length属性在JDK的源代码中何处定义的?length是数组中java中数组源代码的一个属性而已!
数组是固定的所以申明数组的时候就已经把java中数组源代码他的length的值设置过java中数组源代码了!
java中数组源代码你猜想的不错!
java中的数组语法一维数组
一、声明:
数组要先声明然后才能使用 。
语法:数据类型 数组名[ ];或数据类型[ ] 数组名;
数据类型既可以是基本数据类型也可以是引用数据类型,数组名可以是任意的合法变量名 。
如:
int [ ] score;
double height[ ];
String[ ] name;
注意 , 不可在数组名后的方括号内指定数组元素的个数 , 如int sum[10];是错误的 。
二、分配空间:
声明了数组只是得到了一个存放数组的变量,并没有为数组元素分配空间,不能够使用,因此要为数组分配空间,这样数组的每个元素才有一个空间进行存储 。
语法:数组名=new数据类型[数组长度];
其中,数组长度就是能够存放的元素个数 , 显然应该是大于0的整数 。
例如:
score=new int [30];
【java中数组源代码 java数组源码解析】height =new double[10];
name=new String [30];
也可以在声明数组时就给它分配空间 。
语法:数据类型 数组名[ ]=new数据类型[数组长度];
如:int sum[ ]=new int[100];
三、赋值:
给数组元素赋值 。有三种方法赋值 。
方法一
语法:数组名[下标值]=值;
例如:
score[0]=89;
score[1]=56;
score[2]=75;
方法二
每一次赋值时,只有下标在变,因此,可以使用循环给数组赋值 。
例如:
for (int index = 0; indexargs.length; index++) {
double num = Double.parseDouble(args[index]);
}
方法三
直接创建数组 , 将声明数组、分配空间和赋值合并完成 。
语法:数据类型 数组名[ ]={值1, 值2, 值3, …, 值n };
例如:使用下列方式来创建score数组
int score[]={60,75,64,73,45};//创建一个长度为5的数组score
同时它也等价于下面的代码:int score=new int[ ]{60,75,64,73,45};
注意,直接创建并赋值的方式一般在数组元素比较少的情况下使用 。它必须一并完成,如下代码是不合法的:
int[ ]score;
score={60,75,64,73,45};//错误?。?
二维数组
一、声明二维数组
语法:数据类型 数组名[ ] [ ];或数组类型[][]数组名;或数组类型[]数组名[];
例如:
float boy[][];
char array[][];
int array_name[ ][ ]; 或int [ ][ ] array_name; 或int [ ] array_name[ ];

推荐阅读