null和""这两个有什么区别啊? a==null;a.equals("");这两个有什么区别怎么用啊?[size=18px] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 null是空对象。""是一个字符串,只不过字符串是空的而已。 应该是a=null,是指变量a的值为空;a="",是指给变量a赋了一个空字符串。一般你的变量要在整个类中调用,就会先声明a=null,然后再方法中实例化。a="" 就是直接给a赋值了""。 null 是一个空引用。"" 是一个空字符串。 null就是空的,""是空字符串,里面没有字符,变量里面存储有在内存中开辟的地址,==是比较两个变量的在内存中存储的地址是否相等,equals是比较两个变量的值。 可以把null想象成一种数据类型,而""是字符串类型的!!! null是object无 ""是字符串 这里主要还是从c语言的指针去理解,因为在java里屏蔽了指针的概念,而是采用指向一说。当null时,表示当前对象不具备指向的地址位置,也就是说没有所指引对象,即可认为当前对象为一个:虚;而""则是表示指向地址存在,但是地址内的内容没有。 ""是长度为0的字符串,可按字符串处理。NUll是对象,按对象处理。希望对你有用。 ""是空字符串,也是一个对象,null是空,不指向任何对象 可以理解成:NULL 就是不存在。"" 就是存在,但是值是空。 你可以这样子理解null和""1、Null首先是个对象,""是个字符串2、狭义理解:用你口渴了,喝水理解的话:Null就是你根本就没有杯子,""意思是有杯子但是没有水。其实杯子专业说就是内存地址。 我看大家都说的对了,我就举个例子吧!String a = null ; String b = "" ;System.out.println(a + "q" + "w");(结果:会报空指针异常)System.out.println(b + "q" + "w");(结果: qw )很明显,a表示的是空对象,没有指向任何的对象;b表示的是一个没有任何内容的字符串,但其还是一个对象;用charAt验证也是很明显的。 这个我上面13楼说是一个对象是不对的,因为对象是被引用的所持有的,应该这样说a和b都是变量,在a = null和b = “” 时,会在内存中给b一个内存空间来存放数据(尽管是空数据,也会分配内存),但是不会给a分配内存 null是一个空引用,没有在内存开辟空间;而“”已经在内存开辟空间了,只是一个长度为零的空串,没有在内存放值而已。 这个,只单单从编程角度不好分析哦 ... 假设:内存有两个单元,分别是:0x0012ff64和0x0012ff80其中0x0012ff64中什么也没有而这0x0012ff80里面包含了一个字符串类对象所在地址,这个字符串对象中只单单包含了“”,即一个空字符串。那么,你的 a == null,就想当于把 0x0012ff64 放进了 a的单元里而a.equal("");则相当于a与0x0012ff80所指字符串对象的数据进行比较,比较其是否等价 ... ---------------大概就这么回事,班门弄斧啊,现丑了 ... 用法:所有的Object都可以初始化为null,即Object o =null;而String s=""是初始化为空字符串 null 就相当于 你有个实体对象 比如 书包 你里面没放东西。"" 这个玩意 是根本什么都没有 null是java里面最大的对象,所有对象引用都可以指向null(Object oo = null)。所谓:“无生有,一生二,二生三,三生万物”。'无'在java中就是null,'有'可以看做0.'一生二'就是完成一次加法0-->1;'二生三'就是完成一次进位01-->10;'三生万物'就是说有了加法、有了进位就可以产生无穷尽的数。""只是一个字符串类型的对象而已。 所有对象类型都可以是null(空),也就是常说的 “万法皆空”。String s = null,其实只是一个"色即是空的"例子。你是空、我也是空。有钱是空、没钱也是空。哈哈!以上只是个人的一点理解,若说的不对,请指教。 请java高手指点 long型转换为int越界以后再转回long的问题 急求Java RTSP服务器端 代码 java 正则表达式问题 java.lang.NullPointerException 很急!iReport-0.2.2+jasperreports-0.5.0生成excel问题,请各位高手多帮忙!!! 面向对象编程和面向过程有那些不同 下面这段程序是判断数据库里的表是否具有主键的一个方法。 散分了,求各位觉得好的Java的电子书! 给分3 JAVA初学者请教各位大神 如何让EDT线程工作完后再运行主线程
a="",是指给变量a赋了一个空字符串。
一般你的变量要在整个类中调用,就会先声明a=null,然后再方法中实例化。
a="" 就是直接给a赋值了""。
==是比较两个变量的在内存中存储的地址是否相等,equals是比较两个变量的值。
1、Null首先是个对象,""是个字符串
2、狭义理解:用你口渴了,喝水理解的话:Null就是你根本就没有杯子,""意思是有杯子但是没有水。其实杯子专业说就是内存地址。
String a = null ; String b = "" ;
System.out.println(a + "q" + "w");
(结果:会报空指针异常)
System.out.println(b + "q" + "w");
(结果: qw )
很明显,a表示的是空对象,没有指向任何的对象;
b表示的是一个没有任何内容的字符串,但其还是一个对象;
用charAt验证也是很明显的。
a和b都是变量,在a = null和b = “” 时,会在内存中给b一个内存空间来存放数据
(尽管是空数据,也会分配内存),但是不会给a分配内存
内存有两个单元,分别是:0x0012ff64和0x0012ff80
其中0x0012ff64中什么也没有
而这0x0012ff80里面包含了一个字符串类对象所在地址,这个字符串对象中只单单包含了“”,即一个空字符串。那么,你的 a == null,就想当于把 0x0012ff64 放进了 a的单元里
而a.equal("");则相当于a与0x0012ff80所指字符串对象的数据进行比较,比较其是否等价 ... ---------------
大概就这么回事,
班门弄斧啊,现丑了 ...
所有的Object都可以初始化为null,即
Object o =null;
而String s=""是初始化为空字符串
所谓:“无生有,一生二,二生三,三生万物”。'无'在java中就是null,'有'可以看做0.
'一生二'就是完成一次加法0-->1;'二生三'就是完成一次进位01-->10;'三生万物'就是说有了加法、
有了进位就可以产生无穷尽的数。
""只是一个字符串类型的对象而已。
String s = null,其实只是一个"色即是空的"例子。
你是空、我也是空。有钱是空、没钱也是空。哈哈!
以上只是个人的一点理解,若说的不对,请指教。