在学习Java时和《编程导论(Java)》中,大量使用了重载的System.out.println()等类似的输出语句。特别是书籍中,一行语句中包括System.out.println会显得太长,超过一行代码40个字符的限制,因而请静态引入tips.Print并使用相应方法代替它们。通常以

  • p替代System.out.print。
  • pln替代System.out.println

《编程导论(Java)》代码库中有tips.Print,学习设计模式时使用的是tool.Print。

package tips;
import java.io.PrintStream;
/*** 到处都是System.out.println().假设一个例程中使用它们较多,请使用本类。* 1.2.1类体结构,练习要求阅读本类。

* @see java.io.PrintStream * @author yqj2065 * @version 0.1 */ public class Print{ public static void pln(Object x){ System.out.println(x); } public static void pln(){ System.out.println(); } public static void p(Object x){ System.out.print(x); } /** * 使用指定格式字符串和參数,打印格式化的字符串。

*/ public static PrintStream pf(String format, Object... args){ return System.out.printf(format,args); } public static void pfln(String format, Object... args){ System.out.printf(format,args). println(); } }

对于大量的System.out.println。能够用 pln取代。

改动:

1.pln(char[] arr)

System.out.println有大量的重载方法,而tips.Print的pln仅仅有两个重载方法。

对于char[], pln(char[])与System.out.println(char[])就不一致了。

今天看一个贴子。上面有Java Puzzlers的第12个谜题,于是发现了这个问题。

    public static void bug() {        System.out.println(new char[]{'1', '2', '3'});pln(new char[]{'1', '2', '3'});pln(null);}

输出为:

123
[C@78c45512

查看JDK源码:

    public void println(Object x) {  String s = String.valueOf(x);  synchronized (this) {  print(s);  newLine();  }  }

tips.Print中没有重载System.out.println(char[])!因而char[]自己主动造型为Object。输出为引用的“大概模样”。

而System.out.println(char[])。其文档说明:

print(char[] s)  Prints an array of characters. The characters are converted into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the write(int) method.

所以输出打印:123

这个bug也有一个优点:

char[] cs = null;
        pln(cs);
        System.out.println(cs);

pln(Object)不怕null。pln(cs)打印null。而System.out.print(cs) 会抛出NullPointerException(java.io.Writer.write())

2.pln(int[] arr)

为了打印int[],加入

    public static void pln(int[] arr){System.out.print(java.util.Arrays.toString(arr));}

Java编程练习文件夹

Java练习:tips.Print相关推荐

  1. Java学习笔记1:Java中有关print、println、printf的用法和区别

    Java学习笔记1:Java中有关print.println.printf的用法和区别 最近在学习java,写一些笔记记录下. 1.print()函数是一般的标准输出,但是不换行. 2.println ...

  2. java转义字符的print输出

    java转义字符的print输出 常见的要输出print的转义字符如下表:(当然还有很多转义字符) 当我们想print输出一句话.一个变量值时,有时候为了能够好看一些,通常要加上制表符(tab键)或者 ...

  3. Java语言中print、println和printf的区别

    前言 如果你是java的初学者,那相信你一定会有过疑惑,就是java中三大输出方式到底有什么区别.特别是先学过其他语言的,就更容易搞混.所以,小编就通过具体实例来详细缕一缕,帮助你理解记忆,消除疑惑. ...

  4. java中的print println printf 异同

    转自 https://blog.csdn.net/qq_40077114/article/details/81169512 println在JAVA中常常使用System.out.pirntf():的 ...

  5. java大量的print影响性能吗_printStackTrace()造成的性能瓶颈

    一 背景 在一次活动前的压测中,发现一个服务(平响为250ms左右)存在性能瓶颈,单实例的QPS压力从20升高到40后服务就雪崩了(平响急剧升高). 通过命令查看线程信息,发现很多线程BLOCKED在 ...

  6. java sundry tips

    1.关于Arrays  记得binarySearch方法返回的int 类型的数值的含义.     If the array contains multiple elements with the sp ...

  7. Java基础 println print 实现输出换行

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  8. Java Number Tips

    1) 将float 或Double直接转成int 或long时,会只取整数部分,如下: (int)(1.23)=1; (int)(1.99)=1; new Double(1.99).intValue( ...

  9. java System.out.print();在控制台上修改输出颜色

    注意:我使用的编辑器是vs code,IDEA 也是可以的,eclipse就不知道了 有什么不懂的,欢迎下方评论 如果我们想在控制台上输出其它颜色,比如红色,这是我们可能会用System.err.pr ...

最新文章

  1. 无需任何标记数据,几张照片就能还原出3D物体结构,自监督学习还能这样用...
  2. mysql中两种备份方法的优缺点_Mysql两种存储引擎的优缺点
  3. 小鑫の日常系列故事(十)——排名次_JAVA
  4. 如何使用 autofs 挂载 NFS 共享
  5. Method Area(方法区)
  6. 【软件开发底层知识修炼】二十七 C/C++中的指针与数组是不同的
  7. 求两个数之间的水仙花数.c语言,求水仙花数(C语言/Java)
  8. Xcode 开发 控件如何和代码配合使用
  9. 菜鸟学做——三层交换综合模拟实验【1】
  10. atitit 国家与社区发展战略研究attilax 总结 v2 .docx
  11. 安装Adobe Reader 时报错:HRESULT:0x80070422
  12. 软件设计师考试详细介绍(最全)
  13. java field.gettype,Java Field getType()用法及代码示例
  14. 期权、期货及其他衍生产品 第三章读书笔记 利用期货的对冲策略
  15. 1、什么是公众号appid?
  16. IDEA删除多余空行
  17. 微信会员卡展示条形码
  18. 网页html教学反思,教学反思怎么写
  19. 请注意,java中没有引用传递
  20. 产品经理如何做好需求调研

热门文章

  1. 正在搜索需要的文件_【数澜发布-澜寻】智能内容搜索引擎,释放“机器阅读” 潜力...
  2. 初中英语多词性单词怎么办_高考英语阅读理解生僻单词太多怎么办?十大招数帮到你...
  3. c语言保存后怎么打开文件,保存打开文件之后,怎么也不能在显示函数中出来。。...
  4. 面试官重点考察求职者这5项能力
  5. 2020年中国职业教育行业白皮书
  6. LeetCode MySQL刷题——day2
  7. 管家婆服务器支持者打不开,管家婆软件数据问题使用技巧
  8. java无序数组_Java查找不重复无序数组中是否存在两个数字的和为某个值
  9. 如何用命令行查看服务器型号,服务器查看内存命令行
  10. 专题:数据自治开放(下)