黑马程序员技术交流社区
标题:
静态初始化方式?
[打印本页]
作者:
江远云
时间:
2012-3-18 13:22
标题:
静态初始化方式?
元素类型[] 数组名=new 元素类型[]{元素,元素,……}没具体指明操作几个元素,此时他又如何在堆内存中判断应该要产生多大的内存空间呢,静态,难道是说它不是放在堆内存在?
作者:
刘元明
时间:
2012-3-18 13:51
首先我想说的是静态不是放在堆内存中,而是放在方法区,
当你没指明数组具体长度时,系统会先给你分配一定空间,如果出现不够用情况它会再次给你分配直到够用为止。
作者:
丁佼
时间:
2012-3-18 14:53
元素类型[] 数组名=new 元素类型[]{元素,元素,……};
这个只是格式,具体使用时写出来一般是这样:
String[] i = new String{"abc","def","ghi","jkm"}; 这样的,
而不是 String[] i = new String{"abc","def","ghi","jkm",.......};
静态初始化就是在声明时直接写明内部包含的元素,在句型里写“……”是为了表示可以写任意多个元素,也就是说,实际写出来的元素个数有有限的,占用多大的空间也就是确定的了。
作者:
贠(yun)靖
时间:
2012-3-18 23:23
元素类型[] 数组名=new 元素类型[]{元素1,元素2,……}
你这是给数组创建对象的时候就初始化 数组中的元素列表里面有多少个元素 数组就有多大 比如你里面放了 元素类型[] 数组名=new 元素类型[]{元素1,元素2}
那么这个数组的长度就是2 这就是确定值了 相当于是显示初始化了
而 元素类型[] 数组名=new 元素类型[2] 是隐士初始化 如果是int类型的话 里面初始值是0,0
内存存数空间是 栈区 堆区 (方法,非静态,静态,常量池)区 静态肯定在最后这个区的静态区存储的
作者:
盛祖华
时间:
2012-3-19 00:59
它修饰的成员都和类的加载有关,JVM运行时不会将所有的类加载到内存中,因为无法确定程序中要使用哪些。数组元素个数不确定时,系统会分配足够的空间让其使用,至到这个对象没有任何引用可以到达时,生命周期结束,成为垃圾,然后被系统回收。
作者:
泮和顺
时间:
2012-3-19 15:51
元素类型[] 数组名=new 元素类型[]{}//如果不指定具体元素也不指定长度编译会失败的 数组就是这个特性 他是要更加数组元素类型和元素个数来开辟空间的额 并没有静态的那个意思
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2