黑马程序员技术交流社区

标题: 字符串 [打印本页]

作者: 崔增阳    时间: 2014-4-8 15:44
标题: 字符串
本帖最后由 崔增阳 于 2014-4-9 15:58 编辑

stirng s=null  和  stirng s="" 有什么区别?
作者: 许庭洲    时间: 2014-4-8 15:51
1. string str = null是不给它分配内存空间,而string str=\"\"给它分配长度为空字符串的内存空间。
2. string str = null没有string对象, string str =""有一个字符串对象。
作者: shangxin    时间: 2014-4-8 16:52
String s是一个声明,你可以把它看成是声明了一个引用;=null/=""是赋值,或者你可以看成是实例化。 在这个前提下,String s = null就是说,你将s这个引用指向了内存中一个空地址(没任何东西,null),而String s = ""则是表示你将s的引用指向了一个空字符串(有一个字符串对象,而且它的值是0长度的字符串)。
作者: 伪善者。    时间: 2014-4-8 16:55
null是没有分配内存 ""是分配了空间 赋值为空
作者: 一片白    时间: 2014-4-8 16:58
NULL 表示一个引用也就是没有指向任何引用
""表示一个空的字符串,它是以'\0'做结束的


作者: 爱吃桃子的猫    时间: 2014-4-8 23:11
打个比喻 “你什么都没说”
string s="" 是你没说任何话
string s = Null 是你没法说话
首先,string s是一个声明,你可以把它看成是声明了一个引用;s是一个string类的引用,string s = Null 表示它不指向任何字符串对象,你将s这个引用指向了内存中一个空地址(没任何东西,null),string s=""你将s的引用指向了一个空字符串(有一个字符串对象,而且它的值是0长度的字符串)如果调用s.length()之类的方法,s为null时会抛出NullPointerException,而""则能进行正常的计算。
作者: 袁晓俊    时间: 2014-4-9 00:47
前面的在内存空间不分配内存,二后面的一个是需要在存储空间分配一个空字符空间。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2