点击上方“朱小厮的博客”,选择“设为星标”

后台回复"加群",加入皮皮专属交流群

来源:http://suo.im/5p28k2

void关键字表示函数没有返回结果,是java中的一个关键字。

java.lang.Void是一种类型。例如给Void引用赋值null。

Void nil = null;

通过Void类的代码可以看到,Void类型不可以继承与实例化。

public final
class Void {/*** The {@code Class} object representing the pseudo-type corresponding to* the keyword {@code void}.*/@SuppressWarnings("unchecked")public static final Class<Void> TYPE = (Class<Void>) Class.getPrimitiveClass("void");/** The Void class cannot be instantiated.*/private Void() {}
}

Void作为函数的返回结果表示函数返回null(除了null不能返回其它类型)。

 Void function(int a, int b) {//do somethingreturn null;}

在泛型出现之前,Void一般用于反射之中。例如,下面的代码打印返回类型为void的方法名。

public class Test {public void print(String v) {}public static void main(String args[]){for(Method method : Test.class.getMethods()) {if(method.getReturnType().equals(Void.TYPE)) {System.out.println(method.getName());}}}
}

泛型出现后,某些场景下会用到Void类型。例如Future<T>用来保存结果。Future的get方法会返回结果(类型为T)。

但如果操作并没有返回值呢?这种情况下就可以用Future<Void>表示。当调用get后结果计算完毕则返回后将会返回null。

另外Void也用于无值的Map中,例如Map这样map将具Set<T>有一样的功能。

因此当你使用泛型时函数并不需要返回结果或某个对象不需要值时候这是可以使用java.lang.Void类型表示。

java.lava.Void与void的比较 ,

如何判断函数返回void,

想知道更多?描下面的二维码关注我

【限时推广1】极客时间专属优惠码:SIDANIUBI,使用这个优惠码购买极客时间的任何一门课程都可以满40减20元,这是双11的活动,优惠码有效期至11.15,认准 SIDANIUBI

【限时推广2】当当百万图书5折封顶(活动时间截止11.11)。使用我的优惠吗:HG9XPR,还可以享受:实付200-30

朕已阅 

面试官:说说Java中java.lang.Void和void有什么作用和区别?相关推荐

  1. 华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题???

    华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题??? 什么是NIO 缓冲区(Buffer) 缓冲区类型 获取缓冲区 核心属性 核心方法 非直接缓冲区和直接缓冲区 非直接缓冲区 ...

  2. 面试官让我讲讲Java中的锁,我笑了

    转载自  面试官让我讲讲Java中的锁,我笑了 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁 ...

  3. 一位面试官询问我:Java中的JVM内存溢出和内存泄露是什么?我这么回答成功拿到了offer

    一位面试官询问我:Java中的JVM内存溢出和内存泄露是什么?我这么回答成功拿到了offer. 墨眉无锋墨家代码 2020-11-22 20:16:50 10525 收藏 56 分类专栏: Java ...

  4. 面试官问:为什么 Java 线程没有 Running 状态?我懵了

    转载自 面试官问:为什么 Java 线程没有 Running 状态?我懵了 什么是 RUNNABLE? 与传统的ready状态的区别 与传统的running状态的区别 当I/O阻塞时 如何看待RUNN ...

  5. 面试官问:为什么 Java 线程没有Running状态?我懵了

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 title: 面 ...

  6. 浅谈 JAVA中静态初始化块和非静态初始化块的区别

    众所周知在JAVA编程语言中有两种初始化块: 静态初始化块 非静态初始化块 他们到底有什么区别呢?今天就浅谈一下JAVA中静态初始化块和非静态初始化块的区别 静态初始化块 定义: static{} 执 ...

  7. Java学习笔记1:Java中有关print、println、printf的用法和区别

    Java学习笔记1:Java中有关print.println.printf的用法和区别 最近在学习java,写一些笔记记录下. 1.print()函数是一般的标准输出,但是不换行. 2.println ...

  8. java中的后台线程、前台线程、守护线程区别

    java中的后台线程.前台线程.守护线程区别 区别和联系 区别 联系 区别和联系 区别 后台线程和守护线程是一样的. 后台线程不会阻止进程的终止,而前台线程会, 可以在任何时候将前台线程修改为后台线程 ...

  9. 【Redis系列】面试官:Redis中的数据已经过期,为什么还占用这内存?

    如果有面试官问Redis中的数据已经过期为什么还占用这内存? 它是因为Redis本身的过期策略和缓存淘汰机制所导致的. 说说Redis的过期策略和缓存淘汰机制 先来说说Redis的过期策略,Redis ...

  10. 面试官:Vue中组件和插件有什么区别?

    一.组件是什么 回顾一下对组件的定义: 组件就是把图形.非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件 组件的优势 降低整个系统的耦合度 ...

最新文章

  1. 面试系列八 es写入数据的工作原理
  2. JavaScript 读取、写入Txt文档
  3. 十六、Javascript实现放大镜效果
  4. js一键批量打印_js批量打印文件夹
  5. 电信设置的nat 虚拟服务器192.168.1.3 是什么,VMware WorkStation的三种网络连接方式详解...
  6. zabbix设置mysql登陆免报警_zabbix3.0.2 监控mysql服务down的时候不触发报警的问题修复...
  7. 用户故事与敏捷方法—用户角色建模
  8. 我的开源GIS解决方案之路
  9. 海思OSD开发系列(一) SDL_TTF框架移植
  10. 获取mac电脑最高权限
  11. 计算相关系数 皮尔逊相关系数 Pearson、Spearman
  12. 阿里腾讯暑期实习面试被刷的经历
  13. Win11系统注销在哪?Win11系统注销的方法
  14. 618啦,你的钱包又被盯上啦!
  15. VRF proof极简理解
  16. Docker - Docker详解及使用
  17. 回顾6年深度学习算法实践和演进
  18. Android9如何看错误信息提示快速解决问题
  19. VSCode鼠标滚轮控制字体大小
  20. 电子商务专业(技术方向)学习经验(忠告)

热门文章

  1. ui uview 安卓开发_uni-app UI框架之uview-ui使用教程
  2. python中的set和dict_Python中dict和set的用法讲解
  3. 【小题目】输入两个数字以及一个符号,输出这两个数字在这个符号下运算产生的结果
  4. 数据挖掘算法学习(四)PCA算法
  5. Android--静默安装
  6. http://jingyan.baidu.com/article/dca1fa6fa07000f1a44052f6.html
  7. 37. C# -- 装箱和拆箱
  8. apache加载php配置
  9. SOAP协议 访问Webservice
  10. 洛谷 - P3803 【模板】多项式乘法(FFT/NTT)