空格“ ”

空字符串“”

1、类型:“”是一个空字符串(String),长度为0,占内存在内存中分配一个空间,可以使用Object对象中的方法。(例如:“”.toString()等)

2、内存分配:表示声明一个字符串类型的引用,其值为“”空字符串,这个引用指向str1的内存空间。

null

1、类型:null是空引用,表示一个对象的值,没有分配内存,调用null的字符串的方法会抛出空指针异常。(例如:str1.endsWith(str2); java.lang.NullPointerException)

2、内存分配:表示声明一个字符串对象的引用,但指向null,也就是说没有指向任何内存空间。

例: String str1 = ""; //str1对应一个空串,声明对象的引用
String str2 = null; //str2引用为空

String str3 = new String(); //str3将指向具体的String实例,默认值为“”

注意:str1和str3被实例化,而str2没有实例化,但str1和str3所指的地址不同,但值一样,都为空。

null不是对象(空引用),“”是对象,故比较的时候应该是if(str1.equals(""))和if(str2 == null),也即对象用equals()比较,null用等号比较。正确的写法是先判断是不是对象,如果是,再判断是不是空字符串。

补充说明:1、Java中类的对象都是用句柄来访问的, 类似于C中的指针。

2、Java中有两个判断相等的方法:“==”和equals()方法,前者是根据地址来比较,只有地址和值都相等,这两个变量(引用类型)才相等;后者比较的是变量的值,只要值相等,两者就相等。

3、在Java中变量和引用变量是存在栈中(stack),而对象(new出来的)都是存放在堆中(heap)。

例如:String str = new String("abc");//str存放在stack中,abc这个值存放在heap中,并指向其分配的内存空间。

Java 空格“ ”、空字符串“”和null区别相关推荐

  1. Java进阶(二十一)java 空字符串与null区别

    java 空字符串与null区别 1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串, ...

  2. java 空串占用内存吗_java空字符串“”和null区别

    空字符串"" 1.类型:""是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object中的方法(.toString()等) 2 ...

  3. java中String值为空字符串与null的判断方法

    Java空字符串与null的区别 1.类型        null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null.        ""表 ...

  4. Java空字符串和null

    转载 Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null.        ""表示的是一 ...

  5. 空字符串和null有什么区别

    空字符串和 null 有很大的区别. 空字符串是一个长度为 0 的字符串,它是一个有效的字符串,代表着没有任何内容. 而 null 则表示没有任何值,不是一个有效的字符串,也不代表任何意义.它指向了一 ...

  6. mysql 替换空值_MySQL查询用空字符串替换NULL

    MySQL查询用空字符串替换NULL 如何用空字符串替换select中的NULL值?输出" NULL"值看起来不是很专业. 这是非常不寻常的,根据我的语法,我希望它能正常工作.希望 ...

  7. kettle默认情况下把空字符串当作NULL处理

    kettle默认情况下把空字符串当作NULL处理,这个问题在sqlserver会存在,最终只好找到修改配置的办法: 在C:\Users\用户名.kettle目录中找到kettle.properties ...

  8. 空字符串、NULL、空格串的区别

    1.表示区别 string str1 = "";    //空字符串      str1.length() 等于 0 string str2 = null; //NULL stri ...

  9. c语言中null和空格的区别,空字符串(“”)和null和空格字符串( )的区别

    null表示的是一个对象的值,而并不是一个字符串. 例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串,也就是说它的长度为0,但它是一个字符串. ...

最新文章

  1. 【怎样写代码】对象克隆 -- 原型模式(三):原型模式
  2. SAP RETAIL MM41 不能将Class分配给商品主数据
  3. 新外贸110%加速度,阿里巴巴国际站力推百亿投资计划
  4. 前端学PHP之面向对象系列第四篇——关键字
  5. 明晚直播预告丨Oracle 19c避雷经验分享
  6. arduino点阵声音频谱_Arduino基础入门篇19—点阵屏
  7. 怎么创建java项目?新建java项目的步骤
  8. 线性方程组(高斯消元)
  9. c语言更正错误,c语言出错invalid operands to binary %
  10. Android系统-MTK_android12默认横屏
  11. 墨卡托坐标转GPS坐标
  12. C# 复制Word(复制全部内容、部分内容、页眉页脚)
  13. vue -V 执行失败 檔案名稱、目錄名稱或磁碟區標籤語法錯誤。
  14. 深度学习(3)——softmax回归
  15. Spring Boot+JOOQ(一)基本环境搭建
  16. 【PaperReading】Prevalence and patterns of higher-order drug interactions in Escherichia coli
  17. Thoughtworks XStream介绍
  18. 信息系统项目管理师 - 项目集管理
  19. Couldn't find preset es2015 relative to directory
  20. 浮动(浮动和清除浮动)

热门文章

  1. Xshell的使用方法(初学者)
  2. 苹果保修期多久_手机的寿命究竟有多久,您的换机周期是否会等到手机报废呢?|手机|电池|安卓手机...
  3. 【124】JavaScript获取下一个、上一个兄弟节点
  4. 最短路计数(入门最短路)
  5. 【雅思】金山词霸-单词学习(41-80)
  6. android 6.0 SystemUI源码分析(1)-SystemUI介绍
  7. 08 - 文章详情页面
  8. 内部软件技术文档怎么做?
  9. UE4 Engine Fix-找回4.24后失去的Matinee
  10. 3.8 JS 制作无间断图片循环滚动效果