专栏首页Java典籍java语言中null与""的区别

java语言中null与""的区别

null是空对象,没有地址,可以赋值给任何对象;

""是空字符串,有地址,但是里面的内容是空的,只能赋值给字符串对象。

如:

String s; //分配了一个内存空间,没存入任何对象 ;

String s1=null; //定义了一个对象实例s1,但未将该实例指向任何内存空间;

String s2=""; //定义了一个对象实例s2,指向了一个空串,分配了一个内存空间,存了一个字符串对象;

其中s第一个是没有初始化的引用;s1为空引用;s2是在字符串池里写入一个空串"",然后用s2指向它。

s1不能直接进行使用,不能调用String类的方法,否则会报空指针异常。

例如:s1.equals("aa")肯定会报错的,如果我们不知道某一个字符串是否是null,而又要使用它,请先进行非空判断!

本文分享自微信公众号 - Java典籍(helloHBLing),作者:冰湖一角

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java字符串无意识的递归

    Java中的每个类基本上都继承自Object,标准容器类自然也不例外。因此容器类都有toString()方法,并且重写了该方法,使得它生成的String结果能够...

    硕人其颀
  • Java实现将中文转成拼音和ASCII码

    最近项目上遇到一个需求:模糊搜索姓名时既可以输入汉字也可以输入拼音进行搜索,这就要求在保存姓名时也要将其拼音保存起来。

    硕人其颀
  • SVN恢复历史版本及解决冲突方法

    前段时间有小伙伴们问我关于SVN恢复历史版本及解决冲突的问题,今天抽空就整理了一下,以为在此以前,有的小伙伴解决冲突使用的方法是:先把自己写的代码备份或删掉,更...

    硕人其颀
  • (转)java中equals和等号(==)的区别浅谈

    java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolea...

    HUC思梦
  • Java中的字符串常量池

    Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String...

    技术小黑屋
  • StringBuffer StringBulider String的区别

    补充: (1) String的创建机理 由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常...

    居士
  • Vue实现计算器功能

    使用Vue+element来实现简单的计算器功能,JS版本连接:https://www.shenlin.ink/front/190.html,

    小白程序猿
  • 聊聊V8引擎的垃圾回收

    我们知道,JavaScript之所以能在浏览器环境和NodeJS环境运行,都是因为有V8引擎在幕后保驾护航。从编译、内存分配、运行以及垃圾回收等整个过程,都离不...

    leocoder
  • 设计模式之总体介绍

      设计模式是经过反复使用、经过分类的代码总结。设计模式的目的是提高代码可重用性和可靠性,并使代码条理清晰、易于理解、易于维护。

    Edison.Ma
  • [javascript] elemetui布局中分栏间隔的问题

    当使用elementui下的布局进行分栏时 , 加了间隔 ,看到样式里是使用的padding来进行的左右间隔

    陶士涵

扫码关注云+社区

领取腾讯云代金券