以前一直没注意,现在才突然发现了, 也许是自己基础不够扎实。
我在声明int数组的时候
int[] num;
int[] num = {};
都是对的,对于第二种方式中,可以得到num.length;
现在就有个问题了,就是如何动态确定num数组的维数
例如 int[10] num= {};这种写法在编译过程中就通不过,于是我就用了 int[] num = new int[10];这在编译和执行中都没问题.
但是我个人觉得基本数据类型,跟他们的封装类不同,例如 int-->Integer
new Integer[10],我没意见
但
new int[10]
总觉得不妥,于是上网查了一下,很多人都在用 new int[length];
但也有人说这中写法是不对的想问问大家,这种动态声名基本类型数组,正确的做法呢?
我在声明int数组的时候
int[] num;
int[] num = {};
都是对的,对于第二种方式中,可以得到num.length;
现在就有个问题了,就是如何动态确定num数组的维数
例如 int[10] num= {};这种写法在编译过程中就通不过,于是我就用了 int[] num = new int[10];这在编译和执行中都没问题.
但是我个人觉得基本数据类型,跟他们的封装类不同,例如 int-->Integer
new Integer[10],我没意见
但
new int[10]
总觉得不妥,于是上网查了一下,很多人都在用 new int[length];
但也有人说这中写法是不对的想问问大家,这种动态声名基本类型数组,正确的做法呢?
解决方案 »
- 有关FusionCharts的问题
- 求助。。Hibernate 3.3.2 与3.5有什么区别,对于学习和工作影响大吗
- 寻找java特殊类
- httpclient 连接某网站需要登陆时抛IOexception 可能是什么原因
- enctype="multipart/form-data" 的问题
- JSP设计语音问题,高手来啊
- 100分求助birt报表问题
- JSP 学习问题系列
- 各位老大都进来看看吧,搞了一天还没搞好,急求救,在线等待,分不够在加!!!!!
- 问一个问题,在jsp中以<%! %>生命的方法在页面种如何调用,算类方法,还是对象方法,急
- 正则表达式的问题??
- 求tomcat5.5中数据库连接池的配置
这就是正确的做法。如果这种写法不放心,我们写成:
int[] num;
num = new int[10];这实际上和:
Date now;
now = new Date();
没有差异。要知道,在java中,数组 是 作为对象对待的。所以,int[] num只是一个句柄而已,实际的内存是在new的时候被分配的。
int[10] num= {};
我想楼主还没搞懂数组定义的规定吧。为什么第二种会编译不通过呢》先了解下数组的声明格式:数据类型+[]+变量名=XX 或者 数据类型+变量名+[]=XX,
[]是代表此变量为数组,而长度是后面定义的。而你写的int[10] num= {};意思是想初始化数组的长度吧,但写法是错误的,可以这么写,int [] num=new int[10];或int [] num={1,1,1,1,1,1,1,1,1,1};
只是说在初始设置时指定一个固定维数
但是不确定用int[] num = new int[length] 好不好
维数一般使用的是一维或者二维
要是长度,楼主的意思是不是
public void test(int length){
int[] num = new int[length]
...
}
这种动态分配数组空间。
如果是的话这样做是可以的,理论如4楼所说:int[] num是在栈中分配1个空间,new int[length],则是在堆中分配的,分配的大小就是length,而test方法在执行前就已经接到这个length参数,所以是没有问题的。