2 newbie00 newbie00 于 2017.01.07 14:54 提问

急求解答java中 null和""的区别?

我知道null在内存堆中没有开辟空间 而"" 是在内存堆中开辟了空间 存在一个空对象。我想知道的是实际判断一个文本框时代表的是什么意思?是空格和什么都不输入的区别吗?图片说明

6个回答

u010528826
u010528826   2017.01.07 15:05

你自己都说了:null在内存堆中没有开辟空间 而"" 是在内存堆中开辟了空间 存在一个空对象。
==null是先判断你的empName存不存在(即有没有分配内存),如果不存在你后面empName.equals就会出NPE。
empName.equals("") 这个表示empName存在(即分配了内存)了,但是什么都不输入的情况。
而输入空格取道的应该是 " " 这样,所以你这里最好先trim一下

u010528826
u010528826 对的,防止出现NPE
11 个月之前 回复
newbie00
newbie00 图片上代码的意思是排除null 的情况吗?
11 个月之前 回复
welan123123
welan123123   2017.01.07 15:08

不是,不输入和输入空格显示的都是空,但是不输入时ength=0且内容为空,输入空格时length不等于0且内容不为空。
你要是想判断是否全为空格,那就把空格去掉在判断length

sheldon178
sheldon178   2017.01.07 15:23

一个是什么都没有(null),一个是没有内容的字字符串(“”)。

LD0807
LD0807   2017.01.07 15:40

null是空对象,“”是空字符串。前者直接拿来使用会报错,后者可以拿来进行一些操作。

Ljc354145901
Ljc354145901   2017.01.07 17:51

null就是什么都没有,""是一个字符串

chenl_
chenl_   2017.01.09 07:37

一个就像没有房子,一个就像有房子但是没住人

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!