面试题:你如何理解 System.out.println()?

文章目录

  • 前言
  • 首先分析System源码:
  • out源码分析
  • println分析


前言

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

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

System.out.println("hello world");
hello worldProcess 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的形式。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/323554.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年广东省网络安全A模块(笔记详解)

模块A 基础设施设置与安全加固 一、项目和任务描述: 假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、流量完整性保护策略、事件监控策略、防火墙策略等多…

Windows通过注册表修改socket缓冲区大小的方法

在 Windows 通过修改注册表来更改 UDP 缓冲区的大小,按照以下步骤进行操作: 打开注册表编辑器:按下 Win R 键,然后输入 "regedit" 并点击 "确定"。 导航到以下路径:HKEY_LOCAL_MACHINE\System\C…

线程同步之:QMutex\QMutexLocker

1、基于互斥量的线程同步类QMutex 2、lock() 与 unlock()必须配对使用。 2.1 lock() unlock() 2.2 tryLock() unlock() 3、QMutexLocker()是另一个简化了互斥量处理的类。在QMutexLocker实例变量的“生命周期”内的代码段 得到保护。 QMutexLocker的构造函数接受要给互斥量…

12.递归汉诺塔

使用递归实现汉诺塔 public class Main {public static void move(char pos1,char pos2) {System.out.print(pos1" > "pos2" ");}public static void han(int n,char pos1,char pos2,char pos3) {if(n 1) {move(pos1,pos3);return ;}han(n-1,pos1,pos…

项目初始化脚手架搭建

项目初始化脚手架搭建 仓库地址 easy-web: 一个快速初始化SpringBoot项目的脚手架 (gitee.com) 目前这个项目还是个单体项目,后续笔者有时间可能会改造成父子工程项目,将通用模块抽象出来,有兴趣的小伙伴也可以自行 CV 改造。 1、项目初始化…

接口测试测什么?一个简单问题把我难住了!

那么设计测试用例时我们主要考虑如下几个方面: 01、功能测试 接口的功能是否正确实现了 接口是否按照设计文档中来实现 (比如username参数写为了user,那么这就不符合,因为接口文档在整个开发中都需要使用,所以接口实…

电商平台低价品牌要如何处理

低价会影响品牌渠道的长期发展,同时还会衍生很多问题,如为了追求低价而导致的店铺窜货、商品假货等,对于渠道来说,都是要及时解决的问题,否则渠道乱了,最终腐蚀的是品牌价值,同时还会影响经销商…

键盘事件,DOM事件流,e.keyup, e.keypress,BOM里的window对象, setInterval, clearInterval

目录 事件委托(事件代理) 键盘事件 ​编辑e.keycode 京东快递单号查询 页面加载事件 定时器setTimeout 清除定时器 监听事件: 传统的onclick对于后面的注册事件会覆盖前面的注册事件 方法监听注册方式:addEventListener() …

(NeRF学习)NeRF复现 win11

目录 一、获取源码二、环境三、准备数据集1.下载数据集方法一:官方命令方法二:官网下载数据集 2.修改配置 四、开始训练1.更改迭代次数2.开始训练方法一:方法二: 3.使用预训练模型 五、NeRF源码学习 一、获取源码 git clone http…

FCN学习-----第一课

语义分割中的全卷积网络 CVPR IEEE国际计算机视觉与模式识别会议 PAMI IEEE模式分析与机器智能汇刊 需要会的知识点: 神经网络:前向传播和反向传播 卷积神经网络:CNN,卷积,池化,上采样 分类网络&#xff1a…

DevOps(10)

目录 56.Docker的架构? 57.Docker镜像相关操作有哪些? 58.Docker容器相关操作有哪些? ​编辑59.如何查看Docker容器的日志? 60.如何启动Docker容器?参数含义? 61.如何进入Docker后台模式?有…

数字孪生与3D建模技术的结合

数字孪生与3D建模技术的结合可以带来更精细、真实的数字化表示,支持多领域的应用。以下是数字孪生在3D建模技术中的一些应用,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.产品设计和制…