A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 漠陌 中级黑马   /  2015-8-22 00:50  /  452 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



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()比较的是外在。用博大精深的中文讲就是:一个相同,一个相似。

3 个回复

倒序浏览
cat73 黑马帝 2015-8-22 06:15:41
沙发
无论是哪个,都会在栈内占用4个或8个字节(取决于JVM的位数),null的不在堆内占用空间,""在堆内分配了一些空间去存储一个空字符串。
回复 使用道具 举报
不太准确
回复 使用道具 举报
一个是内存地址,一个是字符串,自然不一样!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马