内存结构:Java程序在运行时,需要在内存中分配空间。为了提高运算效率,又对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。 栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。堆内存:数组和对象,通过new建立的实例都存放在堆内存中。每一个实体都有内存地址值实体中的变量都有默认初始化值实体不在被使用,会在不确定的时间内被垃圾回收器回收方法区,本地方法区,寄存器
崔MQ 发表于 2014-7-14 13:03
aa和bb引用的都是"abc"这个常量,但是aa和bb是不同的内存地址,而==是数值比较,如果你用aa.equal(bb)那么 ...
blue_sky 发表于 2014-7-14 11:08
看下面两个例子,你就明白了;
1. String str1 = "abc";
System.out.println(str1 == "abc");
琳以沫 发表于 2014-7-14 16:11
你前面说aa,bb的值是一样的,后面说“==”是数值比较,那这样因该“==”输出的结果为True;而比较内存地 ...
blue_sky 发表于 2014-7-14 11:08
看下面两个例子,你就明白了;
1. String str1 = "abc";
System.out.println(str1 == "abc");
徐非 发表于 2014-7-14 12:51
2楼讲得很详细。
正好刚看到毕老师的数组部分的视频,讲到内存结构,结合笔记说说我个人的理解,不对的地方 ...
肖晨 发表于 2014-7-14 16:25
一个是变量,一个是地址,怎么能是一回事呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |