(转)Java 中关于String的空对象(null) ,空值(empty),空格
原文出处: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),空格的更多相关文章
- Java中的String到底占用多大的内存空间?你所了解的可能都是错误的!!
写在前面 最近小伙伴加群时,我总是问一个问题:Java中的String类占用多大的内存空间?很多小伙伴的回答着实让我哭笑不得,有说不占空间的,有说1个字节的,有说2个字节的,有说3个字节的,有说不知道 ...
- Java中的mutable和immutable对象实例讲解
1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改. 不可变数据类型:其内部的操作不会改变内部的值,一旦试图 ...
- Java基础知识强化101:Java 中的 String对象真的不可变吗 ?
1. 什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对 ...
- java中的string对象深入了解
这里来对Java中的String对象做一个稍微深入的了解. Java对象实现的演进 String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以 ...
- java中的String对象的创建及堆栈的解释
java中的string真的是很令人头疼呢!!! 请看这里 看这里
- Java中的String与常量池[转帖]
string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...
- Java中的String与常量池
string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...
- 转载:Java中的String与常量池
转载自http://developer.51cto.com/art/201106/266454.htm.感觉总结的不错,自己收藏一下. string是java中的字符串.String类是不可变的,对S ...
- (转)Java中的String与常量池
Java中的String与常量池 转自:http://developer.51cto.com/art/201106/266454.htm string是java中的字符串.String类是不可变的,对 ...
随机推荐
- SELU︱在keras、tensorflow中使用SELU激活函数
arXiv 上公开的一篇 NIPS 投稿论文<Self-Normalizing Neural Networks>引起了圈内极大的关注,它提出了缩放指数型线性单元(SELU)而引进了自归一化 ...
- 【Xamarin】Visual Studio 2013 Xamarin for iOS 环境搭建
一.Mac安装Xamarin.iOS 1,我的Mac 环境:OSX 10.10.3.Xcode 6.3.2 (使用虚拟机亲测也成功 VMware 11 安装 Mac OS X10.10 ) Xam ...
- WF从入门到精通学习目录
WF从入门到精通(第一章):WF简介 WF从入门到精通(第二章):workflow运行时 WF从入门到精通(第三章):workflow实例 WF从入门到精通(第四章):活动及workflow类型介绍 ...
- vs2013 乱码问题
单击一下代码框 然后点文件 有个高级保存选项 改成utf-8 就可以显示中文了
- hdfs调优
本文章来自 hackershell.cn,转载请标注出处 描述 这篇文章主要从一些配置设置相关方面去调优Hadoop集群的笔记,内容来自网上或一些实践经验 1.HDFS审计日志 HDFS审计日志是一个 ...
- ETA6093 或 ETA9741 ETA9742 的 TYPE-C 的资料收集
ETA6093 或 ETA9741 ETA9742 的 TYPE-C 的资料收集 因为项目使用. 这个 IC 好玩,但是还是有一些需要注意的. 对我有用的信息. http://www.great-et ...
- bootstrap 在超小屏布局时使用 clearfix
bootstrap 在超小屏布局时使用 clearfix 先看案例,一共四个 div,使用 col-xs-6, 所以在特别小型设备上时会变成两行. 不过我们发现如果第一个 div 内容多了后会变成如下 ...
- 【转】Windows消息投递流程:一般窗口消息投递(WM_LBUTTONCLICK)
原文网址:http://blog.csdn.net/hyhnoproblem/article/details/6182646 本例通过在单文档程序的视图中添加WM_LBUTTONCLICK消息处理函数 ...
- 【转】inittab文件
原文网址:http://blog.csdn.net/shuaishuai80/article/details/6202482 一.inittab文件背景(1)init进程的作用 使用uboot下载 ...
- servlet转发与重定向
HttpServletRequest: 表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法. 功能:getParameter()获取请求参数 get ...