说说你对System.out.println()的理解

学了这么久的面向对象编程,那如何用一行代码体现呢? System.out.println()!!!
面向对象编程即创建了对象,所有的事情让对象去做。

一、System.out.println()的解析

(1)首先分析System源码

(2)out源码分析

①out是System里面的一个静态数据成员,而且这个成员是java.io.PrintStream类的引用;
②out已经存在了且用Static修饰了,所以可以直接使用类名.属性名的方式调用,即System.out。

(3)println源码分析

①println()就是java.io.PrintStream类里的一个方法,它的作用是向控制台输出信息。
②里面有很多重载的方法,这样就保证了任意的东西都可以输出。

因此总结一下就是:类调用对象,对象调用方法。


二、常见面试题

1、System.out.print();与System.out.println(); 的区别:一个换行一个不换行。

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

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@433c675d

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

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

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

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

原文地址:https://www.cnblogs.com/jasonboren/p/13793983.html