概述

void是Java中的关键字,日常开发中经常遇到,Java main方法的定义中就有void的身影,如下:

public static void main(String[] args) {

}

学过Java的人都知道void的意思是空,如果你去问老手,老手会告诉你说:“void什么都不是,你只要记住void就是空,在方法申明的时候表示该方法没有返回值”。

void是什么?

Java语言是强类型(Strong typed)的,从方法申明的语法可以看出方法的定义必须有返回值,需要确定方法返回值的类型;当方法定义时用void修饰时,表示没有返回值,那么由此可见void的应该算是一种数据类型。而Java中只有两种数据类型,即基本数据类型和引用数据类型,基本数据类型(8种)如下表:

数据类型

type

包装类

基本类型

byte

java.lang.Byte

基本类型

short

java.lang.Short

基本类型

int

java.lang.Integer

基本类型

long

java.lang.Long

基本类型

float

java.lang.Float

基本类型

double

java.lang.Double

基本类型

char

java.lang.Character

基本类型

boolean

java.lang.Boolean

引用类型:
包括Class、Collection集合类、自定义类等等。

那么java中的void到底是什么类型呢?
其实void也有对应的包装类java.lang.Void,不过我们无法直接对它们进行操作。 它继承于Object,如下:

public final class Void extends Object {
    /*
     * The Void class cannot be instantiated.
     */
    private Void() {}
}

Void类和String类一样 被定义为final,所以不能扩展;另外,它的构造方法被私有化了所以不可实例化。

Void类是一个不可实例化的占位符类,用来保存一个引用代表了Java关键字void的Class对象。