(转载)system.out.println

本文探讨了Java中System.out.println()方法的功能,特别是当其参数为数组等对象时的行为。通过查阅API文档,揭示了默认打印行为背后的原理,并介绍了如何正确打印数组元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习java已经有一段时间了,这段时间里感觉到了java的博大精深,同时也是产生了不少的疑惑。
学习java的时候产生的第一个疑惑是关于System.out.println()的,自己不知道这个方法究竟可以输出什么类型的数据。我试过每一种基本数据类型,发现都可以输出。后来有一次在学习数组的时候老师介绍了一种逐个打印出数组元素的方法,是采用了循环的方法;当时心里就想:为什么不直接用System.out.println()打印出来呢?课后自己试了一下:
int[] bb = {1,2,3,4,5};
System.out.println (bb);
在一个main方法中实现这两条语句后得到的结果是:
[I@1fb8ee3
心里很不明白为什么是这个结果,当时也看不懂这个结果,以为这是个乱码。
后来我看了API的帮助文档中关于System类的介绍,其中有:
System
static PrintStream out
“标准”输出流。

以下是关于System.out的详细介绍:
out
public static final PrintStream out“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
对于简单独立的 Java 应用程序,编写一行输出数据的典型方式是:
System.out.println(data)
请参阅 PrintStream 类中的 println 方法。

于是又找到文档中关于PrintStream 的介绍,其中有这么一句
void println(Object x)
打印 Object,然后终止该行。

详细介绍是:
println
public void println(Object x)打印 Object,然后终止该行。此方法的行为就像先调用 print(Object) 然后调用 println() 一样。
参数:
x - 要打印的 Object。
看来System.out.println()是可以直接打印对象类型的,但是自己在打印int[] bb时得到的却不是数组的元素呢........
记得老师还说过一个toString()方法,可以返回对象的字符串表示形式,在Object类的介绍中又看到这样一条:
toString
public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
该对象的字符串表示形式。
难道将一个对象作为System.out.println()的参数时输出
的结果就是跟这个方法有关?
另外在类 PrintStream中还看到这样一个方法:
void println(char[] x)
打印字符数组,然后终止该行。

System.out.println()可以直接打印字符数组?
char[] charArray={'a','b','c','d','e'};
System.out.println (charArray);
试了一下果然可以直接输出!
<think>好的,我现在需要帮助用户找到一段Java代码的出处,可能与优快云上的某个关于杨辉三角和使用Scanner的帖子有关。用户提供的引用信息中,引用[1]提到LeetCode的杨辉三角题目,而引用[2]是一个UVA难度分级列表的转载链接,但用户提到想找的是优快云上的Java代码帖子,特别是涉及Scanner类的。 首先,用户的问题是关于寻找Java代码的来源,可能是在优快云上发布的,内容关于生成杨辉三角并且使用了Scanner来读取输入。我需要结合用户提供的引用信息,但注意到引用[1]是LeetCode的题目,而引用[2]是UVA的难度列表,可能与当前问题关联不大。不过用户提到可能来自优快云,因此需要进一步分析。 用户给出的示例中,快速排序的代码和问题可能与当前问题结构类似,但需要处理的是杨辉三角的Java代码。用户可能记得代码中使用了Scanner类来获取用户输入的行数,然后生成杨辉三角,这可能常见于基础教程或示例代码中。 接下来,我需要考虑如何在优快云上搜索相关的帖子。可能的策略是使用关键词组合,比如“Java 杨辉三角 Scanner 优快云”进行搜索。此外,用户提供的引用[2]中的链接已经失效,但可能原帖中提到了类似的实现。或者,可能用户混淆了引用来源,需要重新梳理。 另外,考虑到优快云上的许多博客在讲解杨辉三角时会使用Scanner作为输入方法,尤其是针对初学者的教程。因此,可能需要引导用户通过特定的搜索策略来定位帖子,比如使用site:csdn.net限定搜索范围,结合Java、杨辉三角、Scanner等关键词。 同时,用户可能需要确认代码的大致结构,例如是否包含主函数、如何使用Scanner读取numRows,以及如何生成二维数组或列表来存储杨辉三角的每一行。这些细节可以帮助缩小搜索范围。 最后,用户可能需要具体的步骤来查找代码出处,包括如何利用搜索引擎的高级功能,或者直接在优快云站内搜索。此外,提醒用户注意代码的发布日期和作者信息,以确认是否为所需的帖子。</think>根据您提到的关键词“Java杨辉三角Scanner”和优快云帖子,以下是分步解答及可能相关的代码示例: ### 分步查找建议 1. **搜索组合关键词** 在Google/Bing输入: `site:csdn.net java 杨辉三角 scanner` 强制限定在优快云域名下搜索这三个技术关键词。 2. **典型代码结构参考** 符合要求的Java代码通常包含以下片段: ```java import java.util.Scanner; public class PascalTriangle { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int numRows = sc.nextInt(); // 生成杨辉三角的逻辑 } } ``` 3. **匹配的优快云文章特征** - 标题可能包含“Java实现杨辉三角”、“输入行数打印杨辉三角” - 内容会详细解释二维数组的递推关系: $$ \text{triangle}[i][j] = \text{triangle}[i-1][j-1] + \text{triangle}[i-1][j] $$ - 代码中使用`Scanner`读取用户输入,并验证输入有效性(如非负整数) ### 关联引用说明 您提到的引用[1]是LeetCode原题,而优快云上许多作者会基于该题编写带输入输出的本地可运行版本[^1]。建议优先搜索上述组合关键词,能找到近似的实现代码。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值