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

相关文章
|
6月前
|
存储 弹性计算 安全
阿里云服务器8核16G价格:全规格实例收费标准与1M-5M带宽活动价格参考
阿里云服务器8核16G配置因较高的配置和云服务器ECS本身卓越的性能和稳定性,成为众多企业用户的首选。当然,该配置的价格也是用户关注的重点。8核16G配置提供了多种实例规格选择,包括经济型e、通用算力型u1、高主频计算型hfc7等,以满足不同企业的需求。目前,8核16G配置的活动价格最低为6581.50元/1年,若选择5M带宽,最低价格则为7621.90元/1年。不同实例规格的价格各异,以下将详细介绍阿里云服务器8核16G配置的最新原价及活动价格。
1091 4
|
Linux Windows
17.7 Linux freetype安装
FreeType 库是一个完全免费(开源)的、高质量的、可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括 TrueType、OpenType、Type1、CID、CFF、Windows FON/FNT、X11 PCF 等,支持单色位图、反走样位图的渲染。
1376 0
17.7 Linux freetype安装
|
SQL 存储 大数据
Presto全网最佳学习资料汇总
Presto这几年在国内使用的越来越广泛,成为企业中必备的Adhoc/BI报表/轻量级ETL引擎,国内公司比如阿里巴巴、滴滴、头条、京东、小米都有几百数上千台的Presto集群,这主要还是由Presto优秀的特性使然(下文详细说明)。为了方便咱们中国的Presto使用者、爱好者学习使用Presto,我把Presto周边的资料做了一个搜集整理,方便大家查阅。
Presto全网最佳学习资料汇总
|
缓存 网络协议 安全
【网络攻防战】DNS协议的致命弱点:如何利用它们发动悄无声息的网络攻击?
【8月更文挑战第26天】DNS(域名系统)是互联网的关键组件,用于将域名转换为IP地址。然而,DNS协议存在安全漏洞,包括缺乏身份验证机制、缓存中毒风险及放大攻击的可能性。通过具体案例,如DNS缓存中毒和DNS放大攻击,攻击者能够误导用户访问恶意站点或对目标服务器实施DDoS攻击。为了防范这些威胁,可以采用DNSSEC实现数字签名验证、利用加密的DNS服务(如DoH或DoT)、限制DNS服务器响应以及及时更新DNS软件等措施。理解并应对DNS的安全挑战对于确保网络环境的安全至关重要。
746 2
|
算法 C++
【C++数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】
【数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】 目录 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现二叉排序树的基本算法。 相关知识 为了完成本关任务,你需要掌握:二叉树的创建、查找和删除算法。具体如下: (1)由关键字序列(4,9,0,1,8,6,3,5,2,7)创建一棵二叉排序树bt并以括号表示法输出。 (2)判断bt是否为一棵二叉排序树。 (3)采用递归方法查找关键字为6的结点,并输出其查找路径。 (4)分别删除bt中关键
436 11
【C++数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】
|
8月前
|
域名解析 运维 监控
如何检测服务器是否被入侵?解析5大异常指标
本文系统介绍了服务器入侵的五大检测维度:硬件资源、网络流量、系统日志、文件完整性及综合防护。涵盖CPU、内存异常,可疑外联与隐蔽通信,登录行为审计,关键文件篡改识别等内容,并提供实用工具与防护建议,助力运维人员快速发现潜在威胁,提升系统安全防御能力。转载链接:https://www.ffy.com/latest-news/1916688607247077376
566 0
如何检测服务器是否被入侵?解析5大异常指标
|
监控 数据可视化 前端开发
17.8K star!完美超越宝塔的产品,像呼吸一样部署应用,这款开源神器绝了!
Dokploy是一个强大的开源平台,旨在简化全栈 Web 应用的开发和部署。通过其直观的界面和丰富的功能,开发者可以在几分钟内构建和部署复杂的应用程序。Dokploy 提供了灵活的架构和多样的功能,适合各种规模的项目。
934 3
|
搜索推荐 C++
【C++数据结构——内排序】快速排序(头歌实践教学平台习题)【合集】
快速排序是一种高效的排序算法,基于分治策略。它的主要思想是通过选择一个基准元素(pivot),将数组划分成两部分。一部分的元素都小于等于基准元素,另一部分的元素都大于等于基准元素。然后对这两部分分别进行排序,最终使整个数组有序。(第一行是元素个数,第二行是待排序的原始关键字数据。本关任务:实现快速排序算法。开始你的任务吧,祝你成功!
416 7
|
传感器 数据采集 编解码
LabVIEW代码性能优化
LabVIEW代码性能优化
366 1