system.out.println()里面_println的意思

system.out.println()里面_println的意思1.第一次见到该表达式的感受  第一此次见到该表达式的时候,我还不知道什么是方法引用,当时真是一脸蒙圈,然后问了好多同事,给我的解释也是五花八门,但我还是感觉莫名其妙,有段时间想着就当一个特例记住就好了,不要再去深究了!!!但是我这个人,在这种时候就是很难说服自己,于是有了上篇文章,再回过头来看这个问题,其实就变得非常简单了。2.揭开System.out::print…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.第一次见到该表达式的感受

    第一次见到该表达式的时候,我还不知道什么是方法引用,当时真是一脸蒙圈,然后问了好多同事,给我的解释也是五花八门,但我还是感觉莫名其妙,有段时间想着就当一个特例记住就好了,不要再去深究了!!!但是我这个人,在这种时候就是很难说服自己,于是有了上篇文章,再回过头来看这个问题,其实就变得非常简单了。

2.揭开System.out::println的神秘面纱

    有过上篇博客的铺垫,这里就直接上代码了:

package com.nrsc.lambda.MethodReference;

import java.io.PrintStream;
import java.util.function.Consumer;

public class Demo2 { 
   
    public static void main(String[] args) { 
   

        /** * 我初次见到的写法 */
        Consumer<String> fun = System.out::println;
        fun.accept("hello world");

        System.out.println("========================================");

        /** * 现在想想其实很简单,查看println方法的源码得知println是PrintStream类中的一个非静态方法 * 因此按照方法引用的逻辑,它肯定可以使用 * “函数式接口 变量名 = 类实例::方法名” 的方式对该方法进行引用 * * 而System.out的作用肯定就是来获取PrintStream类的一个类实例, * * 验证代码如下: */
        PrintStream out = System.out;
        Consumer<String> fun2 = out::println;
        fun2.accept("hello beijing");
    }
}

3.为什么不直接使用PrintStream,而要用System.out呢?

    不知道大家会不会有此疑惑,反正我当时看明白System.out::println这句话的时候,就在想为什么不直接创建PrintStream对象来构建其类实例呢?

   这个问题其实只要扫一眼PrintStream类的源代码,应该就不会再有了。PrintStream类并没有无参构造,而其有参构造函数不是要流,就是要File文件,想要直接通过new一个PrintStream类的方式来创建实例,将变得非常麻烦。因此,通过System.out的方式获取一个PrintStream实例的方式才会成为实际使用的方式。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186843.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • usart和uart的通信原理「建议收藏」

    usart和uart的通信原理「建议收藏」usart和uart的通信原理一、通信接口介绍1、处理器与外部设备通信的两种方式:并行通信:数据各个位同时传输。(速度快,占用引脚资源多)串行通信:数据按位顺序传输(一位一位传输)。(占用引脚资源少,速度相对较慢)2、串行通信三种传送方式单工:数据传输只支持数据在一个方向上传输半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工…

    2022年5月12日
    52
  • python面试题及答案_微型计算机原理与接口第四版答案

    python面试题及答案_微型计算机原理与接口第四版答案题目目录什么是接口测试?为什么要做接口测试/接口测试有哪些优势?请问你们公司是如何做接口测试的?怎么设计接口测试用例?没有接口文档如何做接口测试?怎么区分bug是前端还是后端的bug?常用的接口测试工具?接口之间数据依赖如何处理?依赖于第三方数据的接口如何进行测试?你平常做接口测试的过程中发现过哪些bug?当接口出现异常时候,你是如何分析异常的?什么是接口测试?接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求测试的重点是

    2022年9月26日
    0
  • 数据库查询语句中的排序函数_数据库按照升序排列的语句

    数据库查询语句中的排序函数_数据库按照升序排列的语句1.排序查询语法排序查询语法:select*from表名orderby列1asc|desc[,列2asc|desc,…]语法说明:先按照列1进行排序,如果列1的值相同,则按照列2排序,以此类推asc从小到大排序,即升序desc从大到小排序,即降序默认按照从小到大排序(即asc关键字)举例:–查询未删除男生信息,按学号降序select*fromstudentswhereis_del=0andgender=’男’orderbyid

    2022年9月7日
    0
  • 爬虫python入门_python之路pdf

    爬虫python入门_python之路pdfProxyHandler代理器在写爬虫时常常需要做代理IP以反爬虫常用IP有:西刺免费代理:xicidaili.com/nt/快代理:http://kuaidaili.com/代理云:http://dailiyun.com/查看代理的IP:http://www.httpbin.org/ip网站:http://www.httpbin.org/可查看http的一些参数。#检查当前ip…

    2022年7月28日
    2
  • [LeetCode] Search in Rotated Sorted Array [35]

    [LeetCode] Search in Rotated Sorted Array [35]

    2022年1月29日
    58
  • kafka批量删除topic_kafka自动创建topic

    kafka批量删除topic_kafka自动创建topic方法一:快速配置删除法1.kafka启动之前,在server.properties配置delete.topic.enable=true2.执行命令bin/kafka-topics.sh–delete–topictest–zookeeperzk:2181或者使用kafka-manager集群管理工具删除注意:如果kafka启动之前没有配置delete.topic.enab…

    2022年10月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号