区别:
- 1.==是Java运算符 equals()是Java方法
- 2.==判断的是两个变量或实例是否指向同一个内存空间。equals()判断的是两个变量或实例是否指向同一个内存空间,如果不是指向同一内存空间,那么再逐一判断两个变量或实例的字符[char]是否完全相同。
详解:
第一点,毋庸置疑,8解释。
直接验证第二点....
验证如下:
==判断的是两个变量或实例是否指向同一个内存空间
String stack = "**";
String heap = new String ("**");
- stack 没有New一个String对象,那么stack的创建过程是什么呢?
- heap New了一个对象,那么heap 的创建过程又是什么呢?
带着这两个问题,我们先了解一下堆栈和String Pool:
堆、栈都是Java在内存中存储数据的地方。
- 堆:运行时数据区,动态的创建创建对象时所用到的内存,动态分配内存大小,由于是动态的,所以存取比较慢。用来存储对象、包装类型