java :: Java中的双冒号操作符

        </h1><div class="clear"></div><div class="postBody">

java中的双冒号操作符

定义

双冒号运算操作符是类方法的句柄,lambda表达式的一种简写,这种简写的学名叫eta-conversion或者叫η-conversion。

通常的情况下:

把 x -> System.out.println(x) 简化为 System.out::println 的过程称之为 eta-conversion

把 System.out::println 简化为 x -> System.out.println(x) 的过程称之为 eta-expansion

范式:
类名::方法名

注意:

  1. 方法后面并没有()
  2. 懒加载方法是否调用要看调用方使用情况

使用范例

方法调用

person -> person.getAge();
可以替换成
Person::getAge

x -> System.out.println(x)
可以替换成
System.out::println
out是一个PrintStream类的对象,println是该类的方法,依据x的类型来重载方法

创建对象

() -> new ArrayList<>();
可以替换为
ArrayList::new
new关键字实际上调用的是ArrayList的构造方法

JVM实现

JVM底层实现是CallSite,对JDK层暴漏的接口是Functional

引用

http://hongjiang.info/eta-conversion-and-eta-expansion/

分类: Java
<div id="blog_post_info">
好文要顶 关注我 收藏该文
枫飘雪落
关注 - 1
粉丝 - 30
+加关注
0
0
<div class="clear"></div>
<div id="post_next_prev"><a href="https://www.cnblogs.com/yanlong300/p/9197181.html" class="p_n_p_prefix">« </a> 上一篇:    <a href="https://www.cnblogs.com/yanlong300/p/9197181.html" title="发布于 2018-06-19 09:40">《什么叫会工作》阅读心得</a>
<br>
<a href="https://www.cnblogs.com/yanlong300/p/9214984.html" class="p_n_p_prefix">» </a> 下一篇:    <a href="https://www.cnblogs.com/yanlong300/p/9214984.html" title="发布于 2018-06-22 18:21">关于java中Stream理解</a>
posted @ 2018-06-21 15:19  枫飘雪落 阅读( 6126) 评论( 0) 编辑 收藏
</div><!--end: topics 文章、评论容器-->
刷新评论 刷新页面 返回顶部
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
【培训】马士兵老师强势回归!Java线下课程全免费,双十一大促!
【活动】京东云服务器_云主机低于1折,低价高性能产品备战双11
【推荐】天翼云双十一翼降到底,云主机11.11元起,抽奖送大礼
【优惠】腾讯云 11.11智惠上云,爆款提前购与双11活动同价
【福利】个推四大热门移动开发SDK全部免费用一年,限时抢!
【优惠】七牛云采购嘉年华,云存储、CDN等云产品低至1折
相关博文:
· Java8中的[方法引用]“双冒号”——走进Java Lambda(四)
· Java8Lambda表达式之方法引用::双冒号操作符
· Java8Lambda表达式之方法引用::双冒号操作符
· java8新特性_::双冒号
· php里的双冒号::操作符与箭头->操作符的区别
» 更多推荐...
    <div id="google_ads_iframe_/1090369/C2_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/1090369/C2_0" title="3rd party ad content" name="google_ads_iframe_/1090369/C2_0" width="468" height="60" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" srcdoc="" style="border: 0px; vertical-align: bottom;" data-google-container-id="2" data-load-complete="true"></iframe></div></div>
</div>
<div id="under_post_kb">

最新 IT 新闻:
· 特斯拉欧洲超级工厂为何建在德国而不是英国?马斯克如此解释
· 阿里巴巴招股书全文:马云持股6.1% 今年交易总额5.7万亿元
· 暗物质和暗能量 物理学天空这两朵乌云何时才能消散
· 微软杀毒软件 Microsoft Defender 将发布 Linux 版本
· 大疆:只要有智能手机,就能跟踪附近的无人机
» 更多新闻...
<div id="sideBar"><div id="sideBarMain">
<div id="profile_block">昵称:<a href="https://home.cnblogs.com/u/yanlong300/">枫飘雪落</a><br>园龄:<a href="https://home.cnblogs.com/u/yanlong300/" title="入园时间:2017-07-07">2年4个月</a><br>粉丝:<a href="https://home.cnblogs.com/u/yanlong300/followers/">30</a><br>关注:<a href="https://home.cnblogs.com/u/yanlong300/followees/">1</a><div id="p_b_follow">

+加关注

     <div id="blog-calendar" style="">
< 2019年11月 >
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1 2 3 4 5 6 7
     <div id="leftcontentcontainer"><div id="blog-sidecolumn">

我的随笔

  • 我的评论

  • 我的参与

  • 最新评论

  • 我的标签

    随笔分类

            </h3><ul><li>
    

    DB(6)

                        </li><li>
    

    Java(31)

                        </li><li>
    

    JavaScript(4)

                        </li><li>
    

    services(2)

                        </li><li>
    

    设计模式(25)

                        </li></ul></div><div id="sidebar_postarchive" class="catListPostArchive sidebar-block"><h3 class="catListTitle">
    

    随笔档案

            </h3><ul><li>
    

    2019年5月(2)

                        </li><li>
    

    2018年10月(2)

                        </li><li>
    

    2018年9月(1)

                        </li><li>
    

    2018年8月(1)

                        </li><li>
    

    2018年6月(4)

                        </li><li>
    

    2018年5月(8)

                        </li><li>
    

    2018年4月(4)

                        </li><li>
    

    2018年3月(5)

                        </li><li>
    

    2018年2月(18)

                        </li><li>
    

    2018年1月(6)

                        </li><li>
    

    2017年12月(6)

                        </li><li>
    

    2017年11月(2)

                        </li><li>
    

    2017年10月(5)

                        </li><li>
    

    2017年9月(8)

                        </li><li>
    

    2017年8月(1)

                        </li><li>
    

    2017年7月(2)

                        </li></ul></div>
    

    推荐排行榜

    • 1. 并发研究之CPU缓存一致性协议(MESI)(11)
    • 2. JVM内存管理概述(1)
    • 3. 并发之AQS原理(三) 如何保证并发(1)
    • 4. 并发研究之Java内存模型(Java Memory Model)(1)

     </div><!--end: sideBarMain -->
    </div><!--end: sideBar 侧边栏容器 -->
    <div class="clear"></div>
    </div>
    

java中的双冒号操作符相关推荐

  1. java lambda 表达式中的双冒号和箭头的用法 ::

    先构造一些数据,创建一个User类 java lambda 表达式中的双冒号的用法 :: 双冒号运算就是Java中的[方法引用],[方法引用]的格式是 类名::方法名 如下图所示 User是一个类, ...

  2. java lambda 两个冒号_java lambda 表达式中的双冒号的用法说明 ::

    双冒号运算就是java中的[方法引用],[方法引用]的格式是 类名::方法名 注意是方法名哦,后面没有括号"()"哒.为啥不要括号,因为这样的是式子并不代表一定会调用这个方法.这种 ...

  3. Fortran执行语句中的“双冒号” ::

    双冒号"::",通常出现于Fortran在变量声明中,但是在特殊情况下,也会出现于数组中.例如: ... real,target,dimension(10):: a real,po ...

  4. c语言中双冒号意思_详解C++中的双冒号 ::

    C++中的双冒号 ::第一种,类作用域,用来标明类的变量.函数 Human::setName(char* name); 第二种,命名空间作用域,用来注明所使用的类.函数属于哪一个命名空间的 std:: ...

  5. java中的双引号和单引号

    在js中,单双引号不作区分,这导致我在java中产生了混淆. 在写一段判断某字符是否为空格的代码时,编译器报错,我才意识到是单引号用成了双引号. 关于java中的单双引号,需要注意以下几点: 1.ja ...

  6. Makefile中的双冒号规则

    双冒号规则就是使用"::"代替普通规则的":"得到的规则.当同一个文件作为多个规则的目标时,双冒号规则的处理和普通规则的处理过程完全不同(双冒号规则允许在多个规 ...

  7. 『C/C++养成计划』C++中的双冒号::名解析(Scope Resolution Operator)

    C++中的双冒号::名解析(Scope Resolution Operator)! 文章目录 1. 访问命名空间中的成员 2. 访问类中的静态成员 3. 嵌套类访问 4. 在类之外定义函数 5. 当存 ...

  8. java中的双与_java 双冒号是什么操作符?

    双冒号::在JDK8的Lambda表达式函数中开始使用,用作方法引用. 具体用法,咱们来举个例子: 假设有个Person类: public class Person { public enum Sex ...

  9. java零碎要点013---java lambda 表达式中的双冒号的用法 ::

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 双冒号运算就是Java中的[方法引用],[方法引用]的格式是 类名::方法名 注意是方法名哦,后面 ...

最新文章

  1. 802.1AE保护局域网安全
  2. linux集群命令关闭其中一台,自己整理的一点Linux命令集
  3. 第七章 进程环境 | 001 命令形参、gcc与g++的使用
  4. STM32 网络通信Web Server中 SSI与CGI的应用解析
  5. 一些常用的linux命令(2)
  6. 联想微型计算机启天e4300,戴尔轻薄商务本Latitude E4200/E4300开卖
  7. 初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、
  8. 线程池开门营业招聘开发人员的一天
  9. viso怎么控制连接线_什么是节气门?多久清洗一次?怎么清洗?
  10. 吴恩达机器学习总结二:单变量线性回归
  11. 第六步_安装SSH服务
  12. 1053 Path of Equal Weight (30 分)一般树的遍历 DFS+vector容器+sort排序
  13. STM32 CANFD波特率计算器
  14. modelsim vopt
  15. 一键u盘装系统ghost win7 64位教程
  16. IIS 启动不了(发生意外错误0x8ffe2740)
  17. 3600万中国人在抖音“上清华”。
  18. 量子信息革命引领未来科技革命 | 科技导报
  19. 纯HTML+CSS实现动画
  20. 职业高中计算机英语教案,职业高中英语第三册教案.doc

热门文章

  1. 弹性云服务器由虚拟私有云组成,弹性云服务器组成
  2. 基于Qt的QSplashScreen实现桌面水印,在windows下置顶失效解决办法
  3. 如何查看本地是否安装oracle, 查看安装的Oracle客户端版本
  4. VMware Tools 详细安装教程及问题解决
  5. Gitlab安装使用及汉化配置
  6. centos8无法nmcli connection up ens33 或无法ifconfg到ens33网卡信息
  7. 使用虚拟机VMwarepro1623镜像文件导入部署openGauss3.1.1指导手册
  8. js模块化(ESModule与CommonJS)
  9. 如何理解最大似然估计?
  10. Error: C9555E: License checkout for feature LIC0=KA...-.....-..... with version 5.0201503 has been