头铁面试官:一个小小的 System.out.println 硬是考了我半个小时,被问懵了。。

简介: 头铁面试官:一个小小的 System.out.println 硬是考了我半个小时,被问懵了。。

来源:cnblogs.com/blessing2022/p/16622118.html

去年秋招面试我被问及:

你如何理解 System.out.println()?




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

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



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

System.out.println("hello world");
hello world
Process finished with exit code 0


首先分析System源码:

System就是Java自定义的一个类


image.png


这也是 IO 方面的面试题,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,几乎覆盖了所有主流技术面试题。


out源码分析


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



image.png

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


image.png


println分析


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


image.png


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


image.png


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


拓展知识点 :

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

image.png


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的形式。



image.png

相关文章
|
4月前
|
存储 安全 Java
面试官没想到一个ArrayList,我都能跟他扯半小时
面试官:List集合都知道哪些对象?作为四大集合之一的List,在业务开发中我们比较常见的是以下 3 种:ArrayList、Vector、LinkedList,业务开发我们接触最多就是容器类库了,容器类库可以说是面向对象语言最重要的类库。大家看看在工作里你比较熟悉的是哪个?这篇文章南哥打算专注于List集合,后面四大集合之Map、Queue、Set后续再来填坑,比心心♥。
132 2
面试官没想到一个ArrayList,我都能跟他扯半小时
|
设计模式 NoSQL Java
栓Q了,大厂被强制毕业,空窗一个月死背八股文,还好拿到了Offer
作为Java程序员,选择学习什么样的技术?什么技术该不该学?去招聘网站上搜一搜、看看岗位要求就十分清楚了,自己具备的技术和能力,直接影响到你工作选择范围和能不能面试成功。
L2-020 功夫传人 (25 分)
L2-020 功夫传人 (25 分)
94 0
“= =”和 “equals” 的区别是什么?面试篇(第二天)
本文带大家一起了解“= =”和 “equals” 的区别。
142 0
“= =”和 “equals” 的区别是什么?面试篇(第二天)
|
算法 Java Linux
聊一个可能有惊喜的System GC知识点
聊一个可能有惊喜的System GC知识点
聊一个可能有惊喜的System GC知识点
昨天去某大厂面试,居然让我做四则运算,还好我够机灵。
面试官:请您说说怎么计算四则运算?比如1 + 2 * ( 3 + 4 ) - 5。 我:先算括号里再算括号外,先乘除后加减,最后等于10。 面试官懵了一下,说:可能我说明白,我想问的是用计算机怎么计算? 我尬尴的笑了笑,马上说到:对于计算机来说,单纯的两个数的加减乘除很容易,但是如果乘除在加减的后面却要先运算,再加上几个括号,就变得更加复杂了。 为了使计算机更容易理解,前人已为我们引入了一种新的四则运算的表示法。
184 0
昨天去某大厂面试,居然让我做四则运算,还好我够机灵。
|
测试技术
面试中最常见的10个经典问题,答对了通过率提高70%,快来抄答案!
面试中最常见的10个经典问题,答对了通过率提高70%,快来抄答案!
211 0
面试中最常见的10个经典问题,答对了通过率提高70%,快来抄答案!
|
NoSQL Java 程序员
JDK的equals方法都写错了,那到底该怎么写呢?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day3)
JDK的equals方法都写错了,那到底该怎么写呢?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day3)
113 0
JDK的equals方法都写错了,那到底该怎么写呢?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day3)