Java之null关键字

概述

null既不是对象,也不是一种类型

a.它仅仅是一种特殊的值,你可以将其赋予任何引用类型。

b.在编译和运行时期,将null强制转换成任何引用类型都是可行的,在运行时期都不会抛出空指针异常。

String str = null; // null can be assigned to StringInteger itr = null; // you can assign null to Integer alsoDouble dbl = null;  // null can also be assigned to Double

String myStr = (String) null; // null can be type cast to StringInteger myItr = (Integer) null; // it can also be type casted to IntegerDouble myDbl = (Double) null; // yes it‘s possible, no error

任何含有null值的包装类在Java拆箱生成基本数据类型时候都会抛出一个空指针异常

Integer iAmNull = null;int i = iAmNull; // Remember - No Compilation Error

如使用带有null值的引用类型变量,instanceof操作将会返回false

Integer tt = null;System.out.println((tt instanceof Integer) ? "true" : "false");

使用简单技巧避免空指针异常

1.使用equals()方法时,以已知字符串为基准

2.对于对象的字符串表示,使用String.valueof(obj)而不用obj.toString()

3.运用null安全方法

//StringUtils methods are null safe, they don‘t throw NullPointerExceptionSystem.out.println(StringUtils.isEmpty(null));//trueSystem.out.println(StringUtils.isBlank(null));//trueSystem.out.println(StringUtils.isNumeric(null));//\falseSystem.out.println(StringUtils.isAllUpperCase(null));//false

4.方法避免直接返回null,采用Collections.EMPTY_LIST, Collections.EMPTY_SET and Collections.EMPTY_MAP 替代

5. 使用@NotNull、@Nullable注解

6.避免不必要的自动拆箱装箱

Person ram = new Person("ram");int phone = ram.getPhone();

此时若getPhone为Integer类型且为空,会throw NullPointerException

来自为知笔记(Wiz)

时间: 2024-08-11 16:58:18

Java之null关键字的相关文章

java中null 关键字

Java中,null是一个关键字,用来标识一个不确定的对象.null常见意义:一.null是代表不确定的对象  Java中,null是一个关键字,用来标识一个不确定的对象.因此可以将null赋给引用类型变量, 但不可以将null赋给基本类型变量.比如:int a = null;是错误的.Ojbect o = null是正确的.Java中,变量的适用都遵循一个原则,先定义,并且初始化后,才可以使用.我们不能int a后, 不给a指定值,就去打印a的值.这条对对于引用类型变量也是适用的.有时候,我们

Java中的null关键字

先看一段代码 public class NULL { public static void Test(){ System.out.println("这是Test()的输出!!"); } public static void main(String[] args) { ((NULL)null).Test(); } } 上面的代码有没有错误? 答案是没有!! 编译运行 输出结果: 这是Test()的输出!! 这是因为Java中,null是一个关键字,用来标识一个不确定的对象.因此可以将nu

Java Volatile transient 关键字

随笔-204  评论-134  文章-0  trackbacks-0 Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值.     Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比.     这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及

关于Java中null的十点详解

对于每一个Java程序员来说,null肯定是一个让人头痛的东西,连Java的发明者都承认这是一项巨大的设计失误,今天就来总结一下Java中关于null的知识. 1.null不属于任何类型,可以被转换成任何类型,但是用instanceof永远返回false.2.null永远不能和八大基本数据类型进行赋值运算等,否则不是编译出错,就是运行出错.3.null可以和字符串进行运算.4.同种类型的null,比较都返回true,null==null也返回true. 持续更新中...... 下面将用十个例子来

Java中instanceof关键字的用法总结

instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据 java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: result = object instanceof class 参数: Result:布尔类型

黑马程序员----java基础之关键字、标示符、变量、数据类型、附相关面试题

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 1:关键字(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 全部小写.如:class.static等 (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这样的高级记事本会对关键字有特殊颜

Java有多少个关键字

官方说法:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html 为了方便我直接复制过来了,原文如下: Here's a list of keywords in the Java programming language. 下面是Java编程语言的关键字列表. You cannot use any of the following as identifiers in your programs. 你不能使用下

JAVA 第二天 关键字

一.标识符及字符集 Java语言规定标识符是以字母.下划线"_"或美元符号"$"开始,随后可跟数字.字母.下划线或美元符号的字符序列.Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符.为增强程序可读性,Java作如下的约定: 1.类.接口:通常使用名词,且每个单词的首字母要大写 2.方法:通常使用动词,首字母小写,其后用大写字母分隔每个单词 3.常量:全部大写,单词之间用下划线分隔 4.变量:通常使用名词,首字母小写,其后

Java transient volatile关键字(转)

Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值.     Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比.     这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化.     而volatile关键字就是提示