黑马程序员技术交流社区
标题: str=null与String str=""的区别 [打印本页]
作者: 漠陌 时间: 2015-8-22 00:50
标题: str=null与String str=""的区别
1、说明Java中String str=null与String str=""的区别?
String str = null 表示声明了一个String对象的引用str,但是没有为其分配内存空间。
String str = "" 表示创建了一个长度等于0的空字符串,并在内存中为其分配了内存空间。
String str = new String("tw"); str在内存中有两个对象,1.堆内存有一个 new Sting 2.常量池中有一个字符串。
2、使用运算符"= ="和方法equals() 进行比较对象的区别?
使用"= ="算符比较基本数据类型时,比较的是值相等;使用"=="算符比较对象时,比较的是内存地址和内容。
使用equals()方法 比较对象时,比较的是对象的内容,与地址无关,如果没有重写equals()方法就直接调用的是Object的equals()方法。
"=="比较的是外在和内涵;equals()比较的是外在。用博大精深的中文讲就是:一个相同,一个相似。
作者: cat73 时间: 2015-8-22 06:15
无论是哪个,都会在栈内占用4个或8个字节(取决于JVM的位数),null的不在堆内占用空间,""在堆内分配了一些空间去存储一个空字符串。
作者: zhao1991 时间: 2015-8-22 08:46
不太准确
作者: kevin986745 时间: 2015-8-22 08:47
一个是内存地址,一个是字符串,自然不一样!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |