package com.test;public class Test_1 {
public static void main(String[] args) 
{
String test1 = new String("test this word");
String test2;
int test3;
test3 = 10;
String test4 = null;
test2 = "";
test4 = "为test4这个字符串赋值";
test2 = "改变字符串   test2 的值";
System.out.println(test1 + test2 + test3 + test4);
}
}在以上代码中,String test2;这样是否占用了内存空间?String test4 = null; 呢?
String test2; 和 String test4 = null; 的区别在那里?
我在调试的时候,会发现,String 类型的对象未赋值的情况下是不会有独立id。
在MyEclipse调试的时候,变量那个视图中的id是指的什么?望各位高手予以指导。
第一次发帖,请大家多多指导啊。

解决方案 »

  1.   

    我个人的理解:
    String test2;这样是否占用了内存空间?:占内存
    String test4 = null; 呢:占内存
    只是第一种方法不安全,test4是安全的。String test1 = new String("test this word");
    test1变量指向"test this word"内存区域,如果再赋值test1=null;
    "test this word"内存区域变为垃圾,由JVM负责回收
    而test1变量仍然占内存
      

  2.   

    在以上代码中,String test2;这样是否占用了内存空间?--已经占用了,默认值是null
    String test4 = null; 呢? --已经占用了
    String test2; 和 String test4 = null; 的区别在那里?--理论上讲几乎是一样的。
    我在调试的时候,会发现,String 类型的对象未赋值的情况下是不会有独立id。
    在MyEclipse调试的时候,变量那个视图中的id是指的什么?--指向内存地址
      

  3.   

    至于这个内存,你可以参考一下我的博客中《JAVA基本数据类型》的运算一文中对JVM的分析