Java空字符串与null的区别和判断字符串是否为空的方法

3dsMax高效导入OSGB倾斜模型的3个关键步骤与插件应用 本文详细解析了在3dsMax中高效导入OSGB倾斜模型的三个核心步骤:建立索引、处理贴图路径以及选择合适的插件。针对导入过程中常见的模型崩溃、贴图丢失和操作卡顿问题,提供了从数据结构理解到插件选型的实战解决方案,帮助用户实现大规模实景模型在3dsMax中的流畅导入与编辑。 阅读详情

Java空字符串与null的区别

一、Java空字符串与null的区别:


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

2、内存分配
String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;
String str = ""; 表示声明一个字符串类型的引用,其值为""空字符串,这个str引用指向的是空字符串的内存空间;

在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap)。


如下:

String str = new String("abc") ;

ps:=左边的是存放在栈中(stack),=右边是存放在堆中(heap)。


3、示例程序:
public class String_Demo01 {

    /**
     * @param args
     */
    public static void main(String[] args) {        
        String str1 = new String() ;
        String str2 = null ;
        String str3 = "" ;
        System.out.println(str1==str2);                //内存地址的比较,返回false
        System.out.println(str1.equals(str2));         //值的比较,返回false
        System.out.println(str2==str3);                //内存地址的比较,返回false
        System.out.println(str3.equals(str2));         //值的比较,返回false
        System.out.println(str1==str3);                //内存地址的比较,返回false
        System.out.println(str1.equals(str3));         //值的比较,返回true
    }

}
通过如上的程序可以得出如下结论:
  • 字符串对象与null的值不相等,且内存地址也不相等;
  • 空字符串对象与null的值不相等,且内存地址也不相等;
  • new String()创建一个字符串对象的默认值为"" (String类型成员变量的初始值为null)




一、以下是java 判断字符串是否为空的四种方法:

方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:

if(s == null || s.equals(""));

方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:

if(s == null || s.length() == 0);

方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二.

if(s == null || s.isEmpty());

方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多:

if (s == null || s == "");



注意:s == null 是有必要存在的.

  如果 String 类型为null, 而去进行 equals(String) 或 length() 等操作会抛出java.lang.NullPointerException.

  并且s==null 的顺序必须出现在前面,不然同样会抛出java.lang.NullPointerException.

  如下Java代码:
 String str = null;
  if(str.equals("") || str == null){//会抛出异常
            System.out.println("success");
  }

原文链接:http://www.cnblogs.com/qiuting/p/5373571.html



























【GameFramework框架内置模块】6、实体(Entity) 实体Entity就是一个实体的基本单元,类似于Unity的GameObject对象本体,然后这个本体上面附加其他各种各样组件,才能实现各种各样的功能。一般需要在游戏运行时动态加载的游戏对象,比如怪物、武器、子弹、特效,都需要给这个物体挂载一个实体Entity,这样的话就可以方便的对实例出来的对象进行管理。下面就来看一下如何使用吧。 阅读详情

相关推荐

安装部署 Guacamole 远程桌面网关

Guacamole 是Apache基金会提供的一组基于web的远程桌面访问工具,支持 VNC、RDP、SSH、 Telnet 等协议,支持远程透传音视频。

UsamaBinLaden6976498的专栏 1964

Java中空字符串与null的区别

1、空字符串: 空字符串表示一个字符串对象引用的值为空,String a ="" 声明了一个字符串变量a,变量a的值为空。而a指向了空字符串的内存空间。 2、null null表示:一个字符串对象的引用为空,String a=null; 声明了一个字符串变量a,变量a的引用为空。所以a没有指向任何的内存空间,在堆中也没有开辟任何的空间 代码: package beli2017; /...

wenyunick的博客 2280

Unity 2022打包Android APK:手把手教你创建和配置第一个签名Keystore(避坑指南)

本文详细介绍了Unity 2022打包Android APK时创建和配置签名Keystore的全流程,包括环境准备、Keystore创建、高级配置避坑指南以及签名验证与故障排查。特别强调了Android应用签名的重要性及安全维护策略,帮助开发者避免常见错误,确保应用顺利发布。

weixin_27379781的博客 241

Java字符串比较的方法(3种)

Java字符串比较的方法(3种)

qq_59499028的博客 9779

PINN疲劳寿命预测优化

本项目基于物理信息神经网络(PINN)构建材料疲劳寿命预测模型,通过融合Paris裂纹扩展方程与实验数据,实现裂纹扩展行为的精准预测。核心方法包括:1)将Paris方程作为物理约束嵌入神经网络训练;2)生成含噪声的模拟数据并进行归一化处理;3)采用PINN-GA联合优化框架,以裂纹扩展速率最小化为目标优化材料参数。该方案通过物理规律与数据驱动的结合,显著提升预测模型的泛化能力,为工程材料寿命评估提供新思路。

huanghm88的专栏 146

HFSS实战项目——GPS北斗双模微带天线

本文设计了一款方形圆极化微带天线应用于北斗B1和GPSL1频段,满足高增益、低VSWR、适当方向图等要求。设计中心频率为1568MHz,介质板采用厚度h=1.6mm的Arlon AD450(tm)板,相对介电常数为4.5,采用探针馈电。

2401_87464239的博客 1769

Java中关于字符串的几种"空"的区别

Java中关于字符串的几种"空"的区别   首先需要明确字符串中,null和""这种空字符串之间的区别:   null表示的是一个对象的值为空,String str = null是指str变量的并没有对象的引用,也就是说str并没有指向任何的内存空间。所以它并不是一个字符串。   而String str1 = "",表示的是一个空字符串,只不过它的长度为零,但是它是有内存分配空间的。  

敲代码的quant的博客 1188

激光雷达点云异常现象详解:鬼影、高反膨胀与拖点

现象核心外观主要成因核心硬件对策核心算法对策鬼影位置错误,出现"复制"的物体镜面反射/光学元件间杂散光物理光阑、抗反射涂层多帧时序一致性检验、反射率逻辑判断膨胀尺寸变大,轮廓呈毛刺状信号饱和、像素/通道串扰可变增益控制、随机编码序列强度阈值滤波、几何轮廓拟合(剪裁)拖点边缘粘连,出现"阶梯"或"连线"光斑跨立边缘、双回波融合小光斑光学设计、多回波支持邻域深度突变检测、波形脉宽分析这些异常现象是当前激光雷达感知中的核心难点,通常需要硬件物理特性优化与上层感知算法。

Fun_LiDAR的博客 304

在Java中,空值、null和空字符串的区别

在Java中,基本数据类型如int、float、double等不能赋值为null,但它们可以赋值为默认值,如0、0.0、0.0f等。对于引用类型(类、接口、数组等),可以为null,表示该引用不指向任何对象。空字符串(""):表示一个字符串的长度为0,即没有字符。在Java中,字符串是一个对象,可以使用双引号括起来的字符序列表示。空字符串是一个长度为0的字符串对象,它不是null。null:表示一个对象不存在,即没有引用指向该对象。在Java中,null是一个特殊的关键字,用于表示空值。

patton__的博客 1985

使用Python的OpenCV库进行三维重建点云

通过这些步骤,我们可以使用Python的OpenCV库进行三维重建,并生成对应的点云。当然,这只是一个简单的示例,实际的三维重建可能涉及更多的图像处理和计算步骤。在计算机视觉领域,三维重建是一项重要的任务,它可以将多个二维图像或视频序列转换为三维场景模型。在本文中,我们将介绍如何使用Python的OpenCV库进行三维重建,并生成相应的点云。以上是使用Python的OpenCV库进行三维重建点云的简要介绍和示例代码。最后,我们可以将计算得到的三维点云可视化。安装完成后,我们可以开始编写代码。

AuSwift的博客 1646

RTOS与Linux功能差异与应用场景全面对比

在嵌入式系统的开发中,操作系统的选择至关重要。和是两种广泛应用的操作系统,它们在功能、设计目标以及应用领域中各具优势。随着嵌入式系统的不断发展,已成为嵌入式行业的大趋势。那么,这两者到底有什么不同呢?

硬核科技 402

eagle Java空字符串与null的区别和判断字符串是否为空的方法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33712987的博客 107

在 SAP ABAP 里可靠地对接 FTP 服务器:从连接、命令到传输与排错的完整实战

本文详细介绍了在SAP ABAP中实现FTP文件交换的完整技术方案。文章首先解析了FTP协议的双连接特性(控制连接与数据连接),强调保持控制连接的重要性。随后详细说明了ABAP中FTP操作的四步标准流程:建立连接(包含HTTP_SCRAMBLE加密)、执行命令、断开连接和关闭RFC通道。文章提供了实战案例代码,演示如何将FTP文件复制到应用服务器再读取进内表处理,特别指出后台作业与前台操作的关键差异。最后总结了常见错误排查要点,包括连接模型、路径设置和资源释放等问题。全文通过SAP标准函数模块的调用顺序、典

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 310

java判断字符串是否为空_Java空字符串与null的区别和判断字符串是否为空的方法...

Java空字符串与null的区别:1、类型null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;2、内存分配String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;String s...

weixin_42521032的博客 187

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java空字符串与null的区别和判断字符串是否为空的方法(转载)

http://www.cnblogs.com/qiuting/p/5373571.html Java空字符串与null的区别: 1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ; 2、内存分配 St

overwinner 196

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java判断字符串是否为空

思路:判断某字符串是否为空,为空的标准是str==null或str.length()==0一.空字符串与null区别1、类型null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;2、内存分配String str = null ; 表示声明一个字符...

大道至简 6万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java判断字符串为空

Java空字符串与null的区别: 1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ; 2、内存分配 String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间; ...

不敲代码的码农的博客 1万+

String判断是否为空的方式

一、判断一个字符串str不为空的方法有:   1、str == null;   2、"".equals(str);   3、str.length   4、str.isEmpty();   注意:length是属性,一般集合类对象拥有的属性,取得集合的大小。   例如:数组。length就是取得数组的长度。   length()是方法,一般字符串类对象有该

七界的博客 9706

Java字符串为空的判定

Java空字符串与null的区别: 1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ; 2、内存分配 String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间; ...

SuperDamon的博客 2410

java判断 string不为空_判断字符串String是否为空问题

一、判断一个字符串str不为空的方法有:1、str == null;2、"".equals(str);3、str.length <= 0;4、str.isEmpty();注意:length是属性,一般集合类对象拥有的属性,取得集合的大小。例如:数组。length就是取得数组的长度。length()是方法,一般字符串类对象有该方法,也是取得字符串长度。例如:字符串。length();说明:1、...

weixin_39769767的博客 1483

判断字符串为空的几种方法

说明: 关于null和""的区别: (1) null表示不指向任何东西,调用的话会报空指针异常; 空字符串""表示一个长度为0的字符串,调用是安全的; (2) null 不是对象,空字符串是对象,所以null没有分配空间,而空字符串分配了空间。空字符串代表了一个实例化的对象。 注意:在判断字符串是否为空时,应先判断是否为对象,是的话再判断是否为空字符串。    如果str = null,...

qcp1020的博客 3万+

integer判断是否为空_多学习才能多赚钱之:java判断字符是否为空

java判断字符是否为空以下为各位总结了java判断字符是否为空的四种方法,希望对各位有帮助。方法一、最多人使用的一个方法, 直观, 方便, 但效率很低:if(s == null || s.equals(""));方法二、 比较字符串长度, 效率高, 是我知道的最好一个方法:if(s == null || s.length() == 0);方法三、 Java SE 6.0 才开始提供的方法, 效率...

weixin_40007548的博客 6724

java 空字符串_Java 空字符串和 字符串为null的区别

之前一直没有搞清楚 字符串为空和字符串为null的区别,今天写代码一直出现NullPointerException异常,我一直没有搞清楚,后来发现我是这样写的String s = null;s = xxx.getString();if (!s.isEmpty() && s != null) {System.out.println("ok");}我看了半天也没有看懂(拒绝嘲讽)。 所...

weixin_31131927的博客 626

java判断空_java 字符串为null 如何判断

展开全部字符串e5a48de588b662616964757a686964616f31333431343062为空,就两种情况:要么为null,要么是空串-"";其中需要注意的就是当字符串为null时,使用字符串的方法 -> .length()和.isEmpty()时会抛出NullPointException,所以需要把==null的判断代码写在前面。Java空字符串与null的区别:1、类...

weixin_28788441的博客 3837

java判断字符串不为空_Java判断字符串是否为空的方法

Java空字符串与null的区别:1、类型null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;2、内存分配String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;String s...

weixin_39876514的博客 1154
上一篇: MySQL与SQLite的区别及迁移
下一篇: java的各种类型转换汇总
混魔MJM
博客等级 码龄9年 57粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值