头铁面试官:一个小小的 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

相关文章
|
监控 物联网 应用服务中间件
流媒体方案之Nginx——实现物联网视频监控项目
流媒体方案之Nginx——实现物联网视频监控项目
流媒体方案之Nginx——实现物联网视频监控项目
|
7月前
|
存储 弹性计算 安全
阿里云服务器8核16G价格:全规格实例收费标准与1M-5M带宽活动价格参考
阿里云服务器8核16G配置因较高的配置和云服务器ECS本身卓越的性能和稳定性,成为众多企业用户的首选。当然,该配置的价格也是用户关注的重点。8核16G配置提供了多种实例规格选择,包括经济型e、通用算力型u1、高主频计算型hfc7等,以满足不同企业的需求。目前,8核16G配置的活动价格最低为6581.50元/1年,若选择5M带宽,最低价格则为7621.90元/1年。不同实例规格的价格各异,以下将详细介绍阿里云服务器8核16G配置的最新原价及活动价格。
1222 4
|
缓存 网络协议 安全
【网络攻防战】DNS协议的致命弱点:如何利用它们发动悄无声息的网络攻击?
【8月更文挑战第26天】DNS(域名系统)是互联网的关键组件,用于将域名转换为IP地址。然而,DNS协议存在安全漏洞,包括缺乏身份验证机制、缓存中毒风险及放大攻击的可能性。通过具体案例,如DNS缓存中毒和DNS放大攻击,攻击者能够误导用户访问恶意站点或对目标服务器实施DDoS攻击。为了防范这些威胁,可以采用DNSSEC实现数字签名验证、利用加密的DNS服务(如DoH或DoT)、限制DNS服务器响应以及及时更新DNS软件等措施。理解并应对DNS的安全挑战对于确保网络环境的安全至关重要。
777 2
|
算法 C++
【C++数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】
【数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】 目录 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现二叉排序树的基本算法。 相关知识 为了完成本关任务,你需要掌握:二叉树的创建、查找和删除算法。具体如下: (1)由关键字序列(4,9,0,1,8,6,3,5,2,7)创建一棵二叉排序树bt并以括号表示法输出。 (2)判断bt是否为一棵二叉排序树。 (3)采用递归方法查找关键字为6的结点,并输出其查找路径。 (4)分别删除bt中关键
468 11
【C++数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】
|
监控 数据可视化 前端开发
17.8K star!完美超越宝塔的产品,像呼吸一样部署应用,这款开源神器绝了!
Dokploy是一个强大的开源平台,旨在简化全栈 Web 应用的开发和部署。通过其直观的界面和丰富的功能,开发者可以在几分钟内构建和部署复杂的应用程序。Dokploy 提供了灵活的架构和多样的功能,适合各种规模的项目。
1010 3
|
搜索推荐 C++
【C++数据结构——内排序】快速排序(头歌实践教学平台习题)【合集】
快速排序是一种高效的排序算法,基于分治策略。它的主要思想是通过选择一个基准元素(pivot),将数组划分成两部分。一部分的元素都小于等于基准元素,另一部分的元素都大于等于基准元素。然后对这两部分分别进行排序,最终使整个数组有序。(第一行是元素个数,第二行是待排序的原始关键字数据。本关任务:实现快速排序算法。开始你的任务吧,祝你成功!
445 7
|
大数据 数据挖掘
大数据中列表删除(Listwise Deletion)
【10月更文挑战第22天】
568 4
|
JavaScript 前端开发
PPTist:在线演示文稿的开源解决方案
PPTist:在线演示文稿的开源解决方案
1325 6
|
安全 网络协议 Shell
文件上传漏洞(七)XISE寄生虫Weevely学习
文件上传漏洞(七)XISE寄生虫Weevely学习
|
消息中间件 监控 NoSQL
在Windows下设置分布式队列Celery的心跳轮询
在Windows下设置分布式队列Celery的心跳轮询
892 0