黑马程序员技术交流社区
标题:
数组的初始化问题
[打印本页]
作者:
redlake
时间:
2015-4-29 22:39
标题:
数组的初始化问题
import java.util.Arrays;
class ArrayTest
{
public static void main(String[] args)
{
char[] arr= new char[6];
arr={'B','d','c','A','r','t'};
for (int i=0;i<arr.length ;i++ )
{
System.out.println(arr[i]);
}
System.out.println("------------------------");
Arrays.sort(arr);
for (int i=0;i<arr.length ;i++ )
{
System.out.println(arr[i]);
}
}
}
复制代码
如上代码,编译失败;不知道为什么这种初始化方式不对,难道数组是有固定的初始化方式的?还顺便问一句,char类型的默认初始化值是''吗?和null有什么区别?大家交流交流!
作者:
xiaowen_wu
时间:
2015-4-29 23:18
import java.util.Arrays;
class ArrayTest1 {
public static void main(String[] args) {
char[] arr = new char[6];
arr = {'B','d','c','A','r','t'};
/*
可以认为:
char[] arr = new char[6]{'B','d','c','A','r','t'};
这样写编译器会报错,原因在于编译器会认为数组限定的个数[6]
与实际存储的元素{'a','c','d','s','w','q'}个数有可能不一致,
存在一定的安全隐患
*/
for (int i=0;i<arr.length ;i++ ) {
System.out.println(arr[i]);
}
System.out.println("------------------------");
Arrays.sort(arr);
for (int i=0;i<arr.length ;i++ ) {
System.out.println(arr[i]);
}
}
}
/*
数组定义的几种格式:
A:int[] arr = new int[3];
B:int arr[] = new int[3];
C:int[] arr = new int[]{1,2,3};
D:int[] arr = {1,2,3};
char类型的默认初始化值是:'\u0000'
引用数据类型的默认初始化是:null,表示变量不引用任何对象
*/
复制代码
作者:
xiaowen_wu
时间:
2015-4-29 23:19
xiaowen_wu 发表于 2015-4-29 23:18
第十行改为 :与实际存储的元素{'B','d','c','A','r','t'}个数有可能不一致,
作者:
陈明佳
时间:
2015-4-30 09:39
你可以直接写char[] arr={ 'B','d','c','A','r','t'};
作者:
Chans_宇
时间:
2015-4-30 10:39
arr={'B','d','c','A','r','t'};这句话使得 char[] arr= new char[6]无意义,它其实是使arr数组变量名指向了另一个新数组,并且会存在2楼说的安全隐患问题,所以是不允许这样引用的,你要么给原数组赋值,要么用新的数组变量指向新生成的数组。
作者:
redlake
时间:
2015-5-13 19:35
xiaowen_wu 发表于 2015-4-29 23:18
很详细,谢谢!
作者:
YQliang
时间:
2015-5-13 20:45
char[] arr={ 'B','d','c','A','r','t'};才行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2