为什么 char[][] a = new char[5][]合法?数组创建的时候不是要指明大小吗? 如题,我们创建一维数组的时候必须指明大小,否则编译不通过。但是,标题中展示的情况为什么合法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class Test { public static void main(String[] args) { System.out.println("he said:\" I fall in love with her! \"."); }} 我个人的理解:这种情况可以看成一个长度为5的一维数组a,a的元素类型定义为数组对象,但是对象数组里面存的并不是对象本身,而是对象的引用,所以在创建这个长度为5的一维数组a的时候,其内部的数组元素并不需要实例化,那么也就不需要指定长度,只有在需要往a这个一维数组内部填充数组元素的时候,这个时候填充进去的数组才是需要实例化的,需要指定长度的。从这点分析,填充进去的数组的长度其实并不是唯一的,因为不管填进去的数组的长度是多少,终归他们都是数组类型,并不违反java语法。综上,声明一个二维数组,只需要指定第一个长度就可以了。 很简单定义二维数组的声明没办法给每一行初始化一个列数咯。但是你可以轻易地初始化需要多少行。当需要声明每一行列数的时候,你需要 a[0] = new char[element_num];或者 a[0] = {'a', 'b', 'c'} 一道关于java的基础知识题,请高手帮忙,谢谢 java地址簿的程序 初学者问题,揭帖迅速 请教一个Java Socket异步长连接客户端编程问题 请教各位大人关于简单的GUI与WindowListener的问题 如何能获得一个按钮的背景颜色?? 一个GUI的烤鸭程序, 可难坏我这个菜鸟了, 各位大虾帮一把吧, 多谢了. 请问在java中,main函数的问题,谢谢 如何将一个int转成byte? 继承中的成员从新定义的问题 ant脚本怎么直接调用项目里某个类的main方法 学生党一枚,学习java时遇到了一些搞不懂的问题,希望大家解答下,谢谢!
public static void main(String[] args) {
System.out.println("he said:\" I fall in love with her! \".");
}
}
这种情况可以看成一个长度为5的一维数组a,a的元素类型定义为数组对象,但是对象数组里面存的并不是对象本身,而是对象的引用,所以在创建这个长度为5的一维数组a的时候,其内部的数组元素并不需要实例化,那么也就不需要指定长度,只有在需要往a这个一维数组内部填充数组元素的时候,这个时候填充进去的数组才是需要实例化的,需要指定长度的。从这点分析,填充进去的数组的长度其实并不是唯一的,因为不管填进去的数组的长度是多少,终归他们都是数组类型,并不违反java语法。
综上,声明一个二维数组,只需要指定第一个长度就可以了。
或者 a[0] = {'a', 'b', 'c'}