Java中的System.out.println()vs \n

Wil*_*ill 8 java performance readability newline

假设我想打印5行.哪种方法最佳(性能和可读性).

System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
Run Code Online (Sandbox Code Playgroud)

要么

System.out.println("\n\n\n\n");
Run Code Online (Sandbox Code Playgroud)

这是一个偏好的问题还是比另一个更好的问题.看起来使用第二种方法可以节省大量时间.

Ste*_*n C 30

两者之间存在功能差异.第一个版本使用平台的首选行分隔符输出换行符.第二个版本输出换行符,这可能在Windows或Mac OS上不合适.

这比任何真实或想象的性能优势更重要.


关于性能的话题,以及为什么每个人似乎都说"已经足够"了.

您编写该代码的两种方式之间的性能差异可能是几微秒或更短.换句话说,最终用户不会注意到差异......除非代码执行数百万次.

作为一般规则,专业软件工程师的看法是这是不值得花时间做的东西,如果不更快必须更快.而且它肯定不值得花客户的钱这样做.

如果您有明确的证据表明存在或将会出现性能问题,并且您要优化的代码是真正的问题所在的位置,那么您应该只沉迷于微优化.优化错误位代码所花费的时间浪费了时间.

那么你怎么知道什么时候优化呢?

  • 当应用程序是观察地慢时针对实际上很重要的标准衡量.

你怎么知道什么优化?

  • 通过运行应用程序分析器,并分析其输出,以查看实际性能热点和瓶颈的位置.

性能并不总是一个不重要的问题.实际上,对于某些类型的软件,没有考虑性能和可扩展性要求的设计或实现可能是一场彻底的灾难.但是,大多数软件都不是那样的.

  • +1表示有_functional_差异. (5认同)

Rya*_*art 8

也许比以下两者更好:

System.out.printf("%n%n%n%n%n");
Run Code Online (Sandbox Code Playgroud)

它使用适合您平台的行分隔符,而"\n"不是.