日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Java练习:tips.Print

發(fā)布時(shí)間:2025/3/15 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java练习:tips.Print 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在學(xué)習(xí)Java時(shí)和《編程導(dǎo)論(Java)》中,大量使用了重載的System.out.println()等類似的輸出語句。特別是書籍中,一行語句中包括System.out.println會(huì)顯得太長(zhǎng),超過一行代碼40個(gè)字符的限制,因而請(qǐng)靜態(tài)引入tips.Print并使用相應(yīng)方法代替它們。通常以

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

《編程導(dǎo)論(Java)》代碼庫(kù)中有tips.Print,學(xué)習(xí)設(shè)計(jì)模式時(shí)使用的是tool.Print。

package tips; import java.io.PrintStream; /*** 到處都是System.out.println().假設(shè)一個(gè)例程中使用它們較多,請(qǐng)使用本類。* 1.2.1類體結(jié)構(gòu),練習(xí)要求閱讀本類。

* @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); } /** * 使用指定格式字符串和參數(shù),打印格式化的字符串。

*/ 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(); } }

對(duì)于大量的System.out.println。能夠用?pln取代。

改動(dòng):

1.pln(char[] arr)

System.out.println有大量的重載方法,而tips.Print的pln僅僅有兩個(gè)重載方法。

對(duì)于char[],?pln(char[])與System.out.println(char[])就不一致了。

今天看一個(gè)貼子。上面有Java Puzzlers的第12個(gè)謎題,于是發(fā)現(xiàn)了這個(gè)問題。

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[]自己主動(dòng)造型為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


這個(gè)bug也有一個(gè)優(yōu)點(diǎn):

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

pln(Object)不怕null。pln(cs)打印null。而System.out.print(cs) 會(huì)拋出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編程練習(xí)文件夾


創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Java练习:tips.Print的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。