必威体育Betway必威体育官网
当前位置:首页 > IT技术

Java: null是什么??

时间:2019-10-05 21:12:31来源:IT技术作者:seo实验室小编阅读:60次「手机版」
 

null什么意思

null是什么?

在学习过对象的实例化之后, 我们知道对象的实例化就是为对象的创建开辟存储空间

对于一条实例化语句:

Student stu=new Student();    //语句1

先是声明一个名为stu的Student类型变量,然后利用new关键字为其创建实例。

与下面的语句相比较:

Student stu;                            //语句2

语句2是声明一个类型为Student 的变量stu,从表述习惯上讲stu 是实例变量,但实际上此时stu并未成为一个真正的实例,它仅仅只是一个变量名字。

stu= new Student();                //语句3

语句3的执行结果就使得stu真正成为了一个Student实例,它指向了内存中的某块地址空间。

语句1是一步到位,定义了一个实例变量并同时赋值。

1.对于null的理解

  为了明确地表示那些仅有名字而没有实例空间的变量的具体内容java引入了关键字null, null 就是表示“空”的意思,是绝对意义上的空,这个空指的是不存在的意思。为了更好地理解null是什么,这里举个例子:

有个准备进人施工阶段的楼字建筑项目设计图纸已经确定了,建筑设计师们正在讨论某间单元的装修效果时,该单元的房号已经命名,假设为A901,此时,A901就是null的,它相当于上面写的语句2(一个名为stu的Student),这里它只是一个名为A901的房屋单元。

而当该楼字项目已经施工完毕的时候,则A901就地在它所处的位置上真正地占有了一块物理空间,此时它就是非null(非空)了,也就是说它拥有了一块实例化的空间。就算这间房屋里头没有摆放东西,它也是存在的。我们千万不能将日常表达语“一间空的房问”等同于Java语言中的"房间为空”。

在Java中,假设房间类为Room,则:

Room room=null; //房间为空,房间room只是一个名字,实际不存在。

Room room= new Room(); //一间空的房间,这间房里没东西。 

 null就是空,抽象意义上的空,空就是无的概念。

  对于null的理解,应该是这样的:仅有一个变量名,但实际上不存在。

2. null的作用

  (1)  判断一个对象实例是否null,

用if(obj= = null){}来判断。

  (2)  释放内存,让一个非null的实例变量赋值为null,这样这个实例指针引用就被释放了,等待JVM回收其对应的内存垃圾。

3.使用null时要注意的问题

  (1)  null是关键字,是大小写敏感的,不能将null写成Null或NULL.

  (2)  null用来标识一个空的对象,因此不能将null赋给基本型的变量。比如:

  String s= null; //正确

  int i=null; //错误,应修正为"int i=0;"char c= null; //错误

  (3)  对于一个值为null 的对象,如果你试图去访问其成员,则会触发空指针异常(NullPointerException)。

  (4)  用instancaeof(判断对象是否属于某种类型)去操作null对象,会返回false.

如:有语句: String s= null;

则“s instanceof String”的结果是false。

  (5)  可以使==或着!=操作来比较null值,但是不能使用其他算法或者逻辑操作,例如<或者>。

  在Java中,null ==null将返回true。

相关阅读

JAVA异常处理机制(二)——throws/throw的区别和使用

JAVA中throw和throws的区别:https://www.cnblogs.com/xiohao/p/3547443.html 区别:(摘自上面的博客)1、throws出现在方法函数头;而thro

java编程软件安装

Java编程软件——Eclipse;下载地址:eclipse.org选择下载,它会根据你的操作系统推荐下载,点击后还可以选择下载的镜像;下载完成后进入

javaSE(一)

1.关于注释单行注释可以嵌套,多行注释不能嵌套 2.关键字 字母全部小写(goto和const作为保留字,目前不使用) 3.标识符 不能数字开头|

使用java程序发邮件教程

说到发邮件主要的协议有:  SMTP(Simple Mail Transfer Protocol即简单邮件传输协议)主要是用来传输邮件的协议  POP3(Post Off

Javascript history对象的 history.pushState() 和 hi

history.pushState() 和 history.replaceState() 是history对象的两个新增的方法,是可以很好的操作历史记录的方法;history.State()

分享到:

栏目导航

推荐阅读

热门阅读