String = ""和String = null的区别
在这要先说明下 String str;和String str=null;的关系,代码上来说两者几乎不差什么,但是这里String str=null;多了个指向空的引用
而String str ;却只是定义,String str=null比String str多了初始化的内容。
但是String str=null指向的是空引用,在内存里并没有开辟空间,没有实际的内存。
而通过""这种方式创建字符串,会保存到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 = ""是已经实例化了的,前者在内存中并不存在,而后者是实际存在的。
String = ""和String = null的区别的更多相关文章
- string.empty和null的区别
		
关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后 ...
 - String.Empty、null、“” 区别
		
概念准备: 1.引用类型是将对象是实际数据保存在堆中, 将对象在堆中的地址保存在栈中. 2.值类型直接将实际数据存放在堆中,不会将对象在堆中的地址保存在栈中. 一.String.Empty和" ...
 - string.Empty, "" 和 null 三者的区别
		
转载:http://www.cnblogs.com/mxxblog/archive/2013/08/22/3275387.html 这是一个及其常见的问题,网上已经有关于这个问题的很多讨论.但是我觉得 ...
 - C#中NULL,"",DBNULL,String.Empty,Convert.IsDBNull()的区别
		
C#中的空值的判断较麻烦,不象在VB6中那么简单,这些各种空值的判断和理解对不熟悉的人来说,可能很麻烦,现就我在使用过程中的一点体会和大家共同分享. (1)NULL null 关键字是表示不引用任何对 ...
 - C# 中 string.Empty、""、null的区别
		
原文C# 中 string.Empty."".null的区别 一.string.Empty 和 "" 1.Empty是string类中的一个静态的只读字段,它是 ...
 - 转:String.Empty、string=”” 和null的区别
		
原文地址:http://www.cnblogs.com/fanyong/archive/2012/11/01/2750163.html String.Empty是string类的一个静态常量: Str ...
 - String.Empty、string=”” 和null的区别
		
String.Empty是string类的一个静态常量: String.Empty和string=””区别不大,因为String.Empty的内部实现是: 1 2 3 4 5 6 7 8 9 10 1 ...
 - [转载]String.Empty、string=”” 和null的区别
		
String.Empty是string类的一个静态常量: String.Empty和string=””区别不大,因为String.Empty的内部实现是: 1 2 3 4 5 6 7 8 9 10 1 ...
 - String s;和String s=null;和String s="a";有什么区别?
		
String s;和String s=null;和String s="a";有什么区别? 针对这三种情况,使用out.println(s);的时候,第一个会出现异常,第二个会输 ...
 - asp.net(c#)中String.Empty、NULL、"" 三者到底有啥区别和联系?
		
开门见山,首先看下面代码,你认为结果分别是什么? string str = string.Empty; string str1 = ""; string str2 = null; ...
 
随机推荐
- 微信小程序のwxs
			
WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构. wxs可以说就是为了满足能在页面中使用js存在的,在wxml页面中,只能在插值{{ }}中写简单的j ...
 - UTF-8 - ASCII 兼容的多字节 Unicode 编码
			
描述 The Unicode 字符集使用的是 16 位(双字节)码.最普遍的 Unicode 编码方法( UCS-2) 由一个 16 位双字序列组成.这样的字符串中包括了的一些如‘\0’或‘/’这样的 ...
 - Ubuntu下搭建NFS,并在开发板挂载
			
---恢复内容开始--- zai root huanjingxiachaozhuo $ su 一.搭建NFS 1.执行命令:sudo apt-get install nfs-kernel-server ...
 - 构建单页Web应用——简单概述
			
一.开发框架 ExtJS可以称为第一代单页应用框架的典型,它封装了各种UI组件,用户主要使用JavaScript来完成整个前端部分,甚至包括布局.随着功能逐渐增加,ExtJS的体积也逐渐增大,即使用于 ...
 - 转载--------      JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】
			
转载--*--*---- 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,J ...
 - 面向对象oop 和类
			
面向对象与面向过程的区别 面向对象:面向对象的思维模式说白了就是分类思维模式.思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考.最后,才对某个分类下的细节进行面向过程的思索 自我理解(领 ...
 - clipboard.js实现页面内容复制到剪贴板
			
clipboard.js实现复制内容到剪切板,它不依靠flash以及其他框架,应用起来比较简单 <input type="text" name="copy_txt& ...
 - lazyload懒加载和swiper轮播懒加载的用法
			
对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度,比如商城网页. lazyload使用方法: 载入 JavaScript 文件: <script src="jquer ...
 - 强大的pdf文件操作小工具——PDFtk的小白用法 【转载】
			
转载出处https://www.cnblogs.com/basterdaidai/p/6204518.html 前言 作为程序员,大家都知道的,总是会被技术小白问各种跟编程没什么关系的硬件.软件问题. ...
 - (转)元类metaclass
			
阅读目录 一 前言 二 什么是元类 三 class关键字创建类的流程分析 五 自定义元类控制类OldboyTeacher的创建 六 自定义元类控制类OldboyTeacher的调用 六 再看属性查找 ...