Eternity_null
2015-09-30 06:42
采纳率: 75%
浏览 2.3k
已采纳

# java字符串二维数组创建对象个数的问题

在java中运行这一句代码:
String[][] str = new String[3][4];
假设是第一次运行,在内存中会产生多少个对象?请说明理由,不要说一个单纯的数字.谢谢.

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • havedream_one 2015-09-30 15:05
    已采纳

    由于没有初始化,数组中都是null,即没有产生新对象,只有一个二维数组对象

    已采纳该答案
    打赏 评论
  • 箫声若紫烟 2015-09-30 06:47

    是一个么?使用new在堆内存中创建了一个对象。

    打赏 评论
  • 毕小宝 2015-09-30 09:50

    我觉得单纯的这个二维数组的定义来说,只是生成了一个array对象。
    编写demo

     public class CsdnDemo {
        public static void main(String[] args) {
            String[][] str = new String[3][4];
        }
    }
    

    通过javap反编译可以看到:
    图片说明
    而数组中的每个元素都是指向string的引用的,而String的创建方式是常量还是new String()的也会影响最终对象的个数的。
    可以肯定的是,只有一个二维数组的引用,真正对象的个数还要看你对各个元素赋值的方式,那么这就归结为String定义时到底创建了几个对象的问题了。

    打赏 评论
  • snailplus 2015-09-30 15:10

    只有一个对象,它是数组对象【String[][]】,里面还没有放置任何元素,就没有其他对象。
    ps:我认为这跟是否String数组无关,单纯数组实例化概念。

    打赏 评论
  • _H_JY 2015-10-07 03:17

    由于没有初始化,数组中都是null,即没有产生新对象,只有一个二维数组对象

    打赏 评论

相关推荐 更多相似问题