博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
String = ""和String = null的区别
阅读量:5280 次
发布时间:2019-06-14

本文共 682 字,大约阅读时间需要 2 分钟。

在这要先说明下 String str;和String str=null;的关系,代码上来说两者几乎不差什么,但是这里String str=null;多了个指向空的引用

而String str ;却只是定义,String str=null比String str多了初始化的内容。

但是String str=null指向的是空引用,在内存里并没有开辟空间,没有实际的内存。

如果通过str调用String的方法,就会报空指针异常。

而通过""这种方式创建字符串,会保存到String类的字符串池,在内存中是分配了空间的。

也就是说String str=null并没有实例化,而String = ""实例化了,""可以看作是对象。

我们通过小程序来验证下:

String str1 = "";

String str2 = null;
System.out.println(str1.length());
System.out.println(str2.length());

可以看到输出结果是:

0

Exception in thread "main" java.lang.NullPointerException
at com.mytest.StringTrap.main(StringTrap.java:15)

总结来说,String str=null虽然已初始化,但是并未实例化,而String = ""是已经实例化了的,前者在内存中并不存在,而后者是实际存在的。

 

转载于:https://www.cnblogs.com/keysun/p/4246516.html

你可能感兴趣的文章
JQuery Offset实验与应用(转载)
查看>>
C# 移动开发 MasterDetailPage 侧滑
查看>>
理解RESTful架构[转]
查看>>
递归:斐波那契数列与汉诺塔
查看>>
前端-细节处理笔记
查看>>
第十六章 多态性(一)
查看>>
INSERT IGNORE INTO / REPLACE INTO
查看>>
Python数据类型-布尔/数字/字符串/列表/元组/字典/集合
查看>>
MFC中theApp
查看>>
类的无参方法
查看>>
Python 开发:初识Python(记笔记)
查看>>
sqlrelay 的安装配置和应用
查看>>
idea maven指定编译参数
查看>>
python functions as objects
查看>>
【刷题】SPOJ 705 SUBST1 - New Distinct Substrings
查看>>
【C语言】输入一个整数,求它的原码,反码,补码值
查看>>
wappalyzer 上各种开源框架功能
查看>>
Linux----知识储备
查看>>
使用Docker搭建Wordpress
查看>>
Extract Fasta Sequences Sub Sets by position
查看>>