对于每一个Java程序员来说,null肯定是一个让人头痛的东西,今天就来总结一下Java中关于null的知识。

  • 1.null不属于任何类型,可以被转换成任何类型,但是用instanceof永远返回false.

  • 2.null永远不能和八大基本数据类型进行赋值运算等,否则不是编译出错,就是运行出错.

  • 3.null可以和字符串进行运算.

  • 4.同种类型的null,比较都返回true,null==null也返回true.

下面将用例子来验证上面的四点

首先来看看下面的一道题:

public class Null{public static void nihao(){System.out.println("你好陌生人");}public static void main(String[] args){((Null)null).nihao();}}

A、你好陌生人

B、编译不通过

C、编译通过,执行报错

D、内存溢出

答案是A

下面的总结将使你很清晰的了解到上面程序为什么成为这样的结果:

1.null是Java中的关键字,它不属于任何类型,只是一种特殊的值,也可以说说代表一个不确定的对象.

2.null是所有引用类型的默认值.

3.null可以被转化为任何类型,输出null不会抛出任何异常,这和println()的源代码有关.

4.null可以被转化为任何类型,所以可以调用静态方法.

5.null可以被转化为任何类型,但是不能调用非静态方法,运行时会出错.

6.null被强转化任何类型后,它还仅仅是一个特殊值,并不属于任何类型.

7.null==null返回true,被转换为同种类型的null,都返回true,不同类型直接编译报错.

8.用String转换后的null可以进行字符串运算,这是因为字符串进行连接的时候,编译器对null进行了特别的优化,其实就是例化StringBuilder,在调用append()方法时对null的一个特别处理,当为null时,转化为“null”,最后调用toString()返回一个String对象.

9.用八大基本类型转换后的null,不可以进行基本类型的运算,否则会出现编译或者运行错误.

10.null和“”并不相等,因为下面的s并没有指向某一块内存,而s1指向了一块空字符串的内存.

Java中常见null简析相关推荐

  1. java 常见 错误_JAVA几个常见错误简析

    JAVA几个常见错误简析 Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的.下面就来和小编一起看看JAVA几个常见 ...

  2. java 0x01什么意思_null有哪些常见的意思?(Java中的null到底是什么意思?)

    让我们从下面的陈述开始: 1. 这句话到底是什么意思? 回想一下什么是变量,什么是值. 一个常见的比喻是变量类似于一个盒子. 就像您可以使用一个框来存储某些东西一样,您也可以使用一个变量来存储一个值. ...

  3. JAVA中常见的Exception

    这篇文章转载自 : JAVA中常见的Exception 常见的几种如下: NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常. I ...

  4. java 返回空数组_避免在Java中检查Null语句

    1.概述 通常,在Java代码中处理null变量.引用和集合很棘手.它们不仅难以识别,而且处理起来也很复杂.事实上,在编译时无法识别处理null的任何错误,会导致运行时NullPointerExcep ...

  5. java 删除二维数组中的null_避免在Java中检查Null语句

    1.概述 通常,在Java代码中处理null变量.引用和集合很棘手.它们不仅难以识别,而且处理起来也很复杂.事实上,在编译时无法识别处理null的任何错误,会导致运行时NullPointerExcep ...

  6. Java中常见RuntimeException与其他异常表及Exception逻辑关系详解

    Java中常见RuntimeException与其他异常表及Exception逻辑关系详解 前言 常见`RuntimeException` 其他错误类型 `Error`类 `Exception`类 E ...

  7. Java中常见的各种锁-超全面

    Java中常见的各种锁(非常全): 原文链接:https://blog.csdn.net/xingchensuiyue/article/details/108716466 乐观锁 乐观锁是一种乐观思想 ...

  8. Java中有关Null的9件事

    对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认 ...

  9. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

最新文章

  1. DELPHI - Delphi 2007 已内部支持 GIF 动画了
  2. linux文件夹前的描述,Linux对内存结构的描述
  3. 《github一天一道算法题》:插入排序
  4. NYOJ 933 Bob's Print Service
  5. vuejs实现本地数据的筛选分页
  6. HDU - 4289 Control(最小割-最大流)
  7. 日常琐事的记录,每周六晚做一次总结整理
  8. 定编定岗定员方案_定岗、定编、定员实施方案  (讨论稿)
  9. android 过滤蓝光软件下载,蓝光过滤器app下载-蓝光过滤器(熬夜护眼必备)下载v1.4.7安卓版-西西软件下载...
  10. SQLDBX找不到服务器 no server found
  11. X86 将死?RISC-V 正当立
  12. 学习webpy官网示例笔记
  13. springboot的精髓
  14. 为drupal安装 Php + Apache 的参考文章
  15. Oracle公有云上的ADG配置(单实例)
  16. 网易云音乐mp3外链-真实地址下载方法
  17. NPDP笔记 第一章 战略
  18. javascript实现下拉条联动_js实现下拉框联动
  19. 王润涵:如何用链脉名片开启电商新模式“新零售”
  20. ANTV X6 Model

热门文章

  1. PayPal 是什么?
  2. 基于51单片机的太阳能追光系统 基于51单片机的锂电池太阳能充电器
  3. XMAPP安装与WordPress的搭建
  4. 全球与中国医院床垫市场深度研究分析报告
  5. 孙鑫C++教程(全20讲)
  6. 一行放不下足够的盒子
  7. swagger2maven依赖_swagger配置
  8. 如何去掉微信小程序的自带头部,自定义创建?
  9. java开发之图形界面GUI初步-Swing几种常用组件及其应用
  10. 集合论—笛卡尔积与二元关系