原文出处:Java 中关于String的空对象(null) ,空值(empty),空格

定义

空对象: 
String s = null;

空对象是指定义一个对象s,但是没有给该对象分配空间,即没有实例化该对象,因此,空对象在调用所有对象方法时候都会抛出异常,如s.length(), s.isEmpty()等方法。

空值: 
String k = "";

空值是指一个字符床对象已经实例化,即系统已经给该变量分配了空间,只是对象的内容为空。

空格: 
String n = " ";

是指一个字符对象已经实例化,对象的内容为空格。

判断 
对于上述三种情况,如何判断一个字符变量属于上述类型,下面主要介绍下方法:

空对象判断: 
判断一个字符变量是否是null ,使用 逻辑判断 等于(==)与null对象比较,代码表达式如下:

s == null; (真的是null)

注意: 空对象不能使用诸如equals(), isEmpty()等对象方法,因为它未被实例化。

空值判断:

判断空值可有三种方式: 
    (1)equals方法比较的是两个对象的内容是否相同,可用表达语句:k.equals("") ; 
      (2)  length()方法是查看某个字符串对象的字符个数,可用表达式判断:k.length() == 0 ;

(3)  isEmpty()方法是判断某个字符串对象字符个数时候为0,可用表达式判断:k.isEmpty() ;

例如:判断队列已经创建出对象,则不用null。再判断对象是否为零,因此用isempty()

空格判断: 
空格内容为一个空格,虽然在输出显示时候和空值一样,都是空的,但是在系统里面的内存机制不一样的,空格字符串表示该对象的内存空间里面有内容,是空格,字符个数是1,因此,在使用如下方法时候结果如下:

n.length() 的输出值为1, n.isEmpty()输出为false。

判断语句: n.equals(" ") ;

(转)Java 中关于String的空对象(null) ,空值(empty),空格的更多相关文章

  1. Java中的String到底占用多大的内存空间?你所了解的可能都是错误的!!

    写在前面 最近小伙伴加群时,我总是问一个问题:Java中的String类占用多大的内存空间?很多小伙伴的回答着实让我哭笑不得,有说不占空间的,有说1个字节的,有说2个字节的,有说3个字节的,有说不知道 ...

  2. Java中的mutable和immutable对象实例讲解

    1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改. 不可变数据类型:其内部的操作不会改变内部的值,一旦试图 ...

  3. Java基础知识强化101:Java 中的 String对象真的不可变吗 ?

    1. 什么是不可变对象?       众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对 ...

  4. java中的string对象深入了解

    这里来对Java中的String对象做一个稍微深入的了解. Java对象实现的演进 String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以 ...

  5. java中的String对象的创建及堆栈的解释

    java中的string真的是很令人头疼呢!!! 请看这里 看这里

  6. Java中的String与常量池[转帖]

    string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...

  7. Java中的String与常量池

    string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...

  8. 转载:Java中的String与常量池

    转载自http://developer.51cto.com/art/201106/266454.htm.感觉总结的不错,自己收藏一下. string是java中的字符串.String类是不可变的,对S ...

  9. (转)Java中的String与常量池

    Java中的String与常量池 转自:http://developer.51cto.com/art/201106/266454.htm string是java中的字符串.String类是不可变的,对 ...

随机推荐

  1. Monkey测试准备工作

    1.下载Android SDK 2.打开SDK Manager.exe自动下载 3.配置环境变量 将platform-tools的路径(如: C:\001myWorkspace\eclipse(MAV ...

  2. Jenkins部署war包到tomcat7,报错

    1.部署tomcat7,报错,信息如下: [JENKINS] Archiving /opt/.jenkins/jobs/qxpt_jx-deploy/workspace/pom.xml to com. ...

  3. 如何解决VC "应用程序无法启动,因为应用程序的并行配置不正确 sxstrace.exe"问题

    引用链接 http://blog.csdn.net/pizi0475/article/details/7790992 应用程序事件日志中: “C:\windows\system32\test.exe” ...

  4. MongoDB数据库的特点以及结构

    mongodb标签:非关系型数据库       文档型数据库           最像关系型的非关系型数据库 特点: 1. 由c++编写的数据库管理系统 2. 支持丰富的增删改查功能 3. 支持丰富的 ...

  5. 解决 The word is not correctly spelled问题

    The word is not correctly spelled 此问题是eclipse校验单词拼写造成,如果出在配置文件中,一般会影响到程序的正常执行 解决方法:Window--Preferenc ...

  6. python3.5 安装 numpy1.14.4

    AMD64 import pip._internal print(pip._internal.pep425tags.get_supported()) WIN32 import pip print(pi ...

  7. 使用ksync 加速基于k8s 的应用开发

      ksync 实际上实现了类似 docker docker run -v /foo:/bar 的功能,可以加速我们应用的开发&&运行 安装 mac os curl https://v ...

  8. ambassador 学习九 多ambassador部署说明

    目前官方稳文档没有写,但是demo 里面有,所以就整理出来,其实目前demo里面的 多实例部署用了多个服务的service(使用nodeport 暴露地址,具体使用就是制定ambassador 实例的 ...

  9. 泰克 Tektronix THS720A 示波器 显示屏维修记录

    THS720A 示波器 显示屏维护记录 打开后看到显示屏是 LM32P10 的型号,在网上找了一圈都要 1000 块左右. 看了一个规格书 Sharp 的,已经停产. 下一步看看有没有替代的.

  10. linux之 multipath 多路径

    一.什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来 ...