空字符串(“”)和null的区别

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

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

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

时间: 2024-08-06 20:06:17

空字符串(“”)和null的区别的相关文章

Java 空字符串和 字符串为null的区别

之前一直没有搞清楚 字符串为空和字符串为null的区别,今天写代码一直出现NullPointerException异常,我一直没有搞清楚,后来发现我是这样写的 String s = null; s = xxx.getString(); if (!s.isEmpty() && s != null) { System.out.println("ok"); } 我看了半天也没有看懂(拒绝嘲讽). 所以我看着别人的博文,写一篇作笔记 1. 不同之处 null表示一个字符串对象的

Oracle坑之-空字符串与NULL

空字符串与NULL 首先有如下代码 SELECT * FROM Pdc_DataDomain DD INNER JOIN Pdc_DD_Table DDT ON DD.DataDomainID = DDT.DataDomainID AND DD.ApplicationDBID = '3e7c6764d73f4c7786c99e5b72eb6912' AND DDT.TableName <> '#' AND NOT EXISTS (SELECT * FROM pdc_Application_3e

Access空字符串和Null值

什么是空字符串和Null值: Microsoft Access可以区分两种类型的空值.因为在某些情况下,字段为空,可能是因为信息目前无法获得,或者字段不适用于某一特定的记录.例如,表中有一个“电话号码”字段,将其保留为空白,可能是因为不知道顾客的电话号码,或者该顾客没有电话号码.在这种情况下,使字段保留为空或输入Null值,意味着“不知道”.双引号内为空字符串则意味着“知道没有值”.采用字段的“必填字段”和“允许空字符串”属性的不同设置组合,可以控制空白字段的处理.“允许空字符串”属性只能用于“

解决CsvWriter:中文乱码、末尾行多一行空格(/r)、非第一列空字符串&quot;&quot;显示null问题

一:主要内容 解决CsvWriter存csv,csv文件打开后中文乱码问题 解决CsvWriter存csv,csv文件最后一行总是多一行空行的问题 解决CsvWriter存csv,csv文件不是第一列的时候,想存入""即空字符串无法存入显示null的问题 二:解决问题前:需要做的事情 因为网上的CsvWrite的jar包导入到我们的工程中是class文件,针对上面的问题是无法修改源码的,但是我们又想用这个工具来操作csv,所以可以在自己的工程中首先pom引用这个jar包 <dep

空字符串(“”)和null和空格字符串(&quot; &quot;)的区别

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

java 空字符串与null区别

转自:http://liucun.iteye.com/blog/801691 " "分配了内存 :null没有 调用null的字符串的方法会抛空指针异常. ""是一个字符串(String).它在内存中是存在的.它可以使用Object对象中的方法(如"".toString();"".equals()) 而null它是一个空对象.在内存中是不存在的.它不可以使用Object对象中的方法 ""占内存.. 在内存中

list集合为空或为null的区别

简述 判断一个list集合是否为空,我们的惯性思维是判断list是否等于null即可,但是在Java中,list集合为空还是为null,这是两码事. 新建一个list对象,默认值是空,而非null: 引用 举个形象的例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0.你想装水就需要自己去买个水杯(new ArrayList();),但是我就可以直接装水(list.add(水)).你要是没有杯子直接倒水,水就流出去啦(空指针异常). 判断 那么,我们什么时候用null

区分空字符串和null

核心思想: string.Empty等价于 ""  ,但是和null的意义完全不同! string str = null; 这条语句只是在栈中分配了一个string引用,但是并没有在堆中分配任何东西:string.Length是错误的!它并没有所谓的长度,抛出NullReferenceException; string str = ""; 这条语句等效于 string str = string.Empty;   这条语句在堆中也分配了一些东西,只不过str引用指向的

java中的nul与空字符串与零的区别l

null 空 就好像一个杯子里面式真空的."" 字符串空 就像杯子在那里 但是里面有空气]而 0 是指一个数值类型的变量 在初始化后 并没有赋值 则这个数值型变量就的默认值是 00或者 是一个被赋值的变量