1. int[] a = new int[3];
2:String[] str1 = new String[3]
3:String[] str2 = {"1","2","3"}
请问,a, str1, str2 分别是在堆还是栈中.
如果a str1都在堆中,我想让下面的strArray数组存在栈中,下面的语句改怎么改写。
String[] strArray = new String[size];
for (int i = 0; i < size; i ++){
    strArray[i] = "xxx";
}不能写成:String[] strArray = {"","",""}; 我不知道size的大小.

解决方案 »

  1.   

    不知道什么意思哦,我也不是很懂
    我理解的是引用在栈中,内容在堆中,而字符串用“”直接创建的话在常量区吧
    你创建的数组引用strArray在栈中,你的意思是把数组的具体变量值放到栈中吗
    ...等下面的高手
      

  2.   

    自己的理解:
    基本类型是分配在栈中,例如:int a, String s = "";
    对象类型分配在堆中:例如:Object obj, String s = new String();
    new创建的对象是在堆中,但对int[] a = new int[3]表示怀疑,是在堆中???接下来参数的问题:不通过new怎么创建数组String[size] (即是:不想此变量存在堆中,太耗内存,有70000多此数据需要处理)
      

  3.   

    堆中的数据是不能够直接访问的,只能通过引用访问。
    int[] a = new int[3]
    应当是存放在栈中·
      

  4.   

    堆中的数据是不能够直接访问的,只能通过引用访问。
    int[] a = new int[3]
    应当是存放在栈中·
      

  5.   

    堆中的数据是不能够直接访问的,只能通过引用访问。
    int[] a = new int[3]
    应当是存放在栈中·