`

Java中的null引用,超乎你想象

    博客分类:
  • java
阅读更多

In 2009 Tony Hoare, one of the giants of computer science, wrote:

 

I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.
 

参考资料:

1、Java 8 in Action Lambdas, Streams and Functional-style Programming​(1.6节第4段)

 

2、What is null in Java?

 

 

 

 

 

2
2
分享到:
评论

相关推荐

    深入Java关键字null

    综上所述,`null`在Java中扮演着重要的角色,它不仅是一个特殊的值,还是编程中常见的一种状态标志,用于处理不确定或未初始化的对象引用。正确理解和使用`null`可以帮助开发者避免常见的编程陷阱,提高代码的质量和...

    Java中有关Null的9件事

    Java中有关Null的9件事,里面对null有了详细的介绍。

    Java中String判断值为null或空及地址是否相等的问题

    本文主要讨论了如何正确判断Java中的String对象是否为null、空值("")以及它们的地址是否相等。在处理字符串时,了解这些概念对于避免程序出错至关重要。 首先,我们需要区分`null`和空字符串`""`。`null`表示变量...

    Java中有关Null的9件事Java开发Java经验技巧

    `null`是Java中的一个关键字,它不是一个对象,而是表示一个引用变量没有指向任何实例。例如,当你声明一个变量但未初始化时,它的默认值就是`null`。 2. **赋值为null**: 你可以将一个引用类型的变量赋值为`...

    java中的null的基本含义

    1.null是Java中的关键字。它是区分大小写的,如果把null大写成Null或者NULL,会自动报错。 2.null ==> 0x0 表示内存中编号为0的地址 该地址受到系统保护,任何程序读取,写入0x0地址,系统直接杀死程序 3.一般用于在...

    java处理返回对象中字段为null的情况

    java处理返回对象中字段为null的情况,返回为字符串

    Java对象及其引用的理解

    本文将深入探讨Java中的对象、引用以及它们之间的关系,并结合值传递的概念进行解析。 首先,我们需要理解什么是Java对象。在Java中,对象是类的实例。当我们使用`new`关键字创建一个类的实例时,就创建了一个对象...

    Java中对null进行强制类型转换的方法

    Java中对null进行强制类型转换的方法 在 Java 中,对 null 进行强制类型转换是一个常见的操作,但是在实际开发中,是否会抛出异常呢?今天,我们将通过实例代码来介绍 Java 中对 null 进行强制类型转换的方法。 ...

    ActionScript Number(NaN) —> java(null) NaN —> null

    这是一个设计决策,因为在Java中,null可以表示无值或无效值,类似于NaN在ActionScript中的角色。 然而,这种转换可能会导致潜在的问题。例如,如果你的代码期望一个数字,但接收到的是null,这可能会触发...

    Java的四种引用

    从JDK 1.2版本开始,Java引入了一种更为精细的引用类型管理机制,通过四种不同的引用类型:强引用、软引用、弱引用和虚引用,让开发者能够更加灵活地控制对象的生命周期。这种机制不仅提升了Java应用程序对内存使用...

    如何将数据库中的NUll写入到数据库中去

    在Python中,如果你使用psycopg2库操作PostgreSQL数据库,可以这样设置NULL: ```python cur.execute(""" INSERT INTO users (id, name, email) VALUES (%s, %s, %s) """, (1, '张三', None)) # None在Python中...

    java Boxing Null Pointer 源码

    java Boxing Null Pointer 源码

    java中对象和对象引用的区别!

    ### Java中对象与对象引用的区别 #### 基础概念 在Java编程语言中,对象与对象引用是非常基础且重要的概念。理解它们之间的区别对于掌握Java面向对象编程至关重要。 #### 对象与引用定义 - **对象**:在Java中,...

    java弱引用

    在 Java 中,引用可以分为四类:强引用、软引用、弱引用和虚引用(也称为精灵引用)。弱引用是其中的一种,它们允许垃圾回收器在某些情况下回收对象,而不是像强引用那样坚持对象的存在。 弱引用的工作原理是,当...

    Java中关于Null的9个解释(Java Null详解)

    Java中的`null`是一个至关重要的概念,它在编程中扮演着特殊的角色,尤其是在Java这种强类型的语言中。`null`最初被设计用来表示一个缺失的值,比如未定义的用户、资源或者其他对象。然而,它也带来了许多问题,尤其...

    Java中的软引用弱引用和虚引用.docx

    ### Java中的软引用、弱引用和虚引用详解 #### 一、引言 在Java开发过程中,特别是Android应用开发中,经常会遇到一个普遍的问题——内存溢出(OutOfMemory Error,简称OOM)。这个问题往往与如何有效地管理内存...

    java中对象创建、初始化、引用

    ### Java中对象创建、初始化与引用详解 #### 一、Java对象、引用及创建过程 在Java中,对象是程序的基本单位,它包含了属性(成员变量)和行为(方法)。对象是由类创建出来的实例,而类则是一组具有相同属性和...

    Java String转换时为null的解决方法

    Java中对象转换为String的常用方法之一是强制类型转换,使用强制类型转换时,对象obj为null,结果也为null,但是obj必须保证其本质是String类型的值,即可转换的值。例如,不能强制转换 (String) 123 toString方法 ...

    spring mvc拦截器过滤json中的null值

    在这个方法中,你可以检查请求参数,如果发现有null值,可以进行替换操作。 2. `postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)`: 在目标...

    深入理解java中的null“类型”

    在Java中,`null`是一个特殊的字面量,它既不属于任何特定的类型,但又可以被用作任何引用类型的值。在执行时,`null`可以被视为任何引用类型的值,这是因为它们都共享同一个`null`引用。这也就是为什么在题目中,...

Global site tag (gtag.js) - Google Analytics