⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 toutiao.com/i6817721442277261835 「阿博的Java栈」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

前言

之前春招面试我被问及,你如何理解System.out.println() ?

今天我就来给大家分享一下!

学了这么久的面向对象编程,那如何用一行代码体现呢?

如果你能自己读懂System.out.println(),就真正了解了Java面向对象编程的含义

面向对象编程即创建了对象,所有的事情让对象帮亲力亲为(即对象调用方法)

System.out.println("hello world");
hello world

Process finished with exit code 0

首先分析System源码

System就是Java自定义的一个类

out源码分析

①out是System里面的一个静态数据成员,而且这个成员是java.io.PrintStream类的引用

②out已经存在了且用Static修饰了,所以可以直接使用类名+属性名的方式调用,也就是System.out。

println分析

①println()就是java.io.PrintStream类里的一个方法,它的作用是向控制台输出信息。

②里面有很多重载的方法,这样就保证了任意的东西都可以输出

小结下来就是:类调用对象,对象调用方法

拓展知识点

1、System.out.print();与System.out.println(); 的区别

2、字符数组输出面试案例

public class Demo {

public static void main(String[] args) {
char[] ch=new char[]{'x','y'};
System.out.println(ch);

char[] ch1=new char[]{'x','y'};
System.out.println("ch1="+ch1);
}
}
xy
ch1=[C@74a14482

这是println()方法的重载,java打印输出System.out.println会自动调用输入参数的toString方法,输出内容时toString方法的返回值。

println的参数分基本类型,一个是String 另一个是Object类型。

System.out.println(ch) println()自动调用println(char[] ) 也就是Object类型 所以输出xy

然而System.out.println(“ch=”+ch) "+"是字符串连接符,自动调用println(String ),也就是String类型 输出的是xxx@xxxx的形式。

详细理解 逐步进入之后,发现调用toString() ,我们可以进行重写。

文章目录
  1. 1. 前言
  2. 2. 拓展知识点