有一些基础问题需要得到解答~~~
1:: Image[] imgSprites = new Image[10];
事实上我仅仅初始化了1, 3, 5, 7, 9号图片
那么序号为2, 4, 6, 8, 0的图片对象应该还是null,还会占用内存吗?
2:: 在MIDP 1.0中需要用到很多次DirectGraphics,
那是用一个全局变量 DirectGraphics dg好还是每次循环中画图时生成一个局部变量好?
如果采用全局变量,如何初始化?是不是在paint(Graphics g)中 每次都要
if( dg == null) {
dg = DirectUtils.getGraphics(g);
}
好像MIDP 1.0 中无法得到一个单独的Graphics对象从而在paint(Graphics g) 外初始化dg吧?
如果是采用局部变量的方式,那么每次生成一个局部变量得到的是不是同一个操作对象?但这样每次循环都会生成一个新的对象肯定会增加内存消耗不是?
希望知道大家在实际开发中都是怎么用的
问题点数:20、回复次数:2Top
1 楼homesos(熊猫贩子)回复于 2005-09-22 19:39:00 得分 5
Image数组中,如果你没有给Image对象赋值,不会占用内存,因为它没有内容。
使用全局变量比较好,这样不用老是生成销毁对象。Top
2 楼whycloud(云木)回复于 2005-09-23 08:22:10 得分 15
1。在JAVA中除了8大基本类型,其他所有得都属于引用类型,而引用类型得实质很类似C中得指针,所以如果数组初始化后,只是初始化了一列指针,当然不存在内存空间得问题。另外一点小建议,由于JAVA采用自动回收机制,你很难对其回收进行管理,所以在很多时候只要赋值为null即可,不用做太多操作,并且在J2ME中不过多得使用浮点数、三角函数一般没问题。
2。paint(Graphics g)这个方法中我们可以不用生成Graphics,在系统中会自动调用repaint()方法。而这个方法中会调用paint方法。所以这个对象得生成一般不去操作Top




