博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java基础一】String创建对象"" && null
阅读量:5019 次
发布时间:2019-06-12

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

当我们创建对象是,习惯用""去定义,比如String a="" 这样去定义一个空字符串,为何不用null去定义呢?

""null有什么区别?看如下两个demo:

看demo1:

public static void main(String[] args) {			String s = null;			String s1 = "ab";			s = s + s1;			if (s.equals(s1)) {				System.out.println("s的值"+s);				System.out.println(true);			} else {				System.out.println("s的值"+s);				System.out.println(false);			}		}

public static void main(String[] args) {			String s = "";			String s1 = "ab";			s = s + s1;			if (s.equals(s1)) {				System.out.println("s的值"+s);				System.out.println(true);			} else {				System.out.println("s的值"+s);				System.out.println(false);			}		}

看demo2:

public static void main(String[] args) {			String s="";			s.trim();		}

public static void main(String[] args) {			String s=null;			s.trim();		}

为何会出现如上两种情况?demo1相加情况是不一样的,demo2为何""是空值,而null会抛异常?

NULL代表声明了一个空对象,而不是一个字符串;对于对象而言,我们可以对其进行“=”或者“==”操作。

""代表声明了一个对象实例,它是一个长度为0的空字符串。

NULL和“”的关系其实和0与没有的关系是一样的,你说0和没有是一种概念吗?

String a=null;  null是未分配堆内存空间

String a;  分配了一个内存空间,但没有存入对象

String a="";  分配了一个内存空间,存入了一个字符串对象

转载于:https://www.cnblogs.com/huohuoL/p/10545473.html

你可能感兴趣的文章
Linux 常用命令集锦
查看>>
记dynamic的一个小坑 -- RuntimeBinderException:“object”未包含“xxx”的定义
查看>>
ubuntu下载linux内核源码
查看>>
Bash中的括号(一)
查看>>
使用Google日历并与移动终端相结合,实现(项目成员)日程安排和时间管理(二)...
查看>>
linux red hat 给普通用户开启root权限
查看>>
[Windows] 批处理文件系统服务控制
查看>>
GridView 下增加自动编号列
查看>>
第一次使用Layui 分页
查看>>
中文乱码问题的解决
查看>>
构建之法第二章课后题
查看>>
Android两种为ViewPager+Fragment添加Tab的方式
查看>>
kissy 拖拽排序
查看>>
ftp通用类2
查看>>
执行ORACLE SQL时如何 忽略替换变量(转载)
查看>>
第三章 数据链路层(二)
查看>>
Shell命令合集
查看>>
又见GCD
查看>>
SQL 使用openquery进行跨库操作
查看>>
求职之C++小知识点整理
查看>>