内存分析3.docVIP

  • 2
  • 0
  • 约4.18千字
  • 约 4页
  • 2018-07-01 发布于河南
  • 举报
内存分析3

Java程序内存主要分为了2个部分,包括 stack segment(栈内存区)、heap segment(堆内存区)。? ??? 在分析Java程序内存分配情况时,我们从下面这个经常被使用的例子开始吧。? ??? 下面程序将打印什么呢?? ??? Java代码?? String?s1?=?new?String(abc);?? String?s2?=?new?String(abc);?? System.out.print(s1.equals(s2));?//?1?? System.out.print(s1?==?s2);?//?2?? ??? 可能大家心中已经有答案了,第1条语句打印的是true,第二条语句打印的false,没错,正如大家所想,打印结果就是这样。那么,大家是否知道为什么第2条语句打印的是false呢?让我们来看看这个程序中的数据在内存中分配的情况吧。? ??? 首先,我们分析第一条语句String s1=new String(abc);? ??? 其实这条语句是下面两条语句的缩写,? ??? String s1; //1? ??? s1=new String(“abc”); //2? ??? 1. 在栈内存中定义一个名为s1的对String类的对像引用变量? ??? 2. 在堆内存开辟了一块空间用于存放字符串“abc”,将1定义的引用变量s1指向该空间。? ?

文档评论(0)

1亿VIP精品文档

相关文档