我明白系統是一類,出是系統類類型爲PrintStream的領域(的實例的PrintStream類)和println( )是從PrintStream的方法。但我不明白如何的PrintStream得到由instaniated出時的PrintStream類是在java.io包,java.io和不會自動在Java的進口?我錯過了什麼嗎?的Java的System.out.println()
回答
因爲System.out
是全局的,所以它由Java運行時實例化和初始化。從Javadoc(強調增加),
「標準」輸出流。 該流已經打開並準備好接受輸出數據。
因此它在JVM的初始化過程中「有本地進口」neccessery java.io類? – CuriousGuy 2014-11-21 19:50:46
@CuriousGuy Java在內部不使用'imports'。這對開發人員來說很方便。相反,Java總是使用完全限定的類名。你可以用'javap -v'檢查你的類的字節碼,我想你確實在問[Java Classloader](https://en.wikipedia.org/wiki/Java_Classloader)。 – 2014-11-21 19:51:58
它不是實際實例化了。如果你看一下源代碼,你會看到這一行:
public final static PrintStream out = null;
和javadoc中說,它「已經打開並準備接受輸出數據。」
在這裏,您有一個鏈接:https://docs.oracle.com/javase/7/docs/api/java/lang/System.html
順便說一句,'System.err'也是如此:-) – 2014-11-21 19:50:24
是的,但類型「PrintStream」是一個類。所以它應該已經可以使用,如果它創建了PrintSteream類型的變量? – CuriousGuy 2014-11-21 19:52:32
我的意思是「沒有實例化」是* out *是一個靜態成員,這意味着你不需要以'System s = new System()'的形式創建'System'的實例。 s.out()'。 「PrintStream」類當然可以使用......雖然我不確定「可用」是指技術上的意思。 – 2014-11-21 19:56:43
- 1. 的Java的System.out.println單引號
- 2. Java System.out.println格式
- 3. Java遞歸System.out.println()
- 4. 適用於Java的System.out.println
- 5. 易變與Java中的System.out.println()
- 6. Java system.out.println控制檯
- 7. 的bizzare的System.out.println()在Java程序
- 8. java差異StdOut vs System.out.println
- 9. Java中的二叉樹。 System.out.println問題()
- 10. System.out.println()的消耗時間; Java語句?
- 11. Java中System.out.println()的字符限制
- 12. 你怎麼縮短的System.out.println在Java
- 13. 中的System.out.println
- 14. 的System.out.println錯誤
- 15. LinkedListStack的System.out.println
- 16. 在jar中的System.out.println
- 17. OutOfBoundException:Scanner.nextLine()之後的System.out.println()
- 18. 的System.out.println,通信System.err.println
- 19. println vs scala的System.out.println
- 20. System.out.println - 此方法鏈接在Java中嗎?
- 21. Java - 將system.out.println重定向到JLabel
- 22. System.out.println()在Java中有副作用嗎?
- 23. 如何將system.out.println放在同一行(java)
- 24. 什麼是「的System.out.println()」的Java中的確切含義
- 25. 什麼是系統的,在的println的System.out.println()在Java中
- 26. 哪裏的System.out.println輸出變爲甲骨文的Java類
- 27. Java的日食 - 字符串包裝爲的System.out.println()
- 28. 爲什麼System.out.println(+ c1)和System.out.println(「c1」= + c1)的區別?
- 29. 的System.out.println打印服務器
- 30. 的System.out.println不能與數字
的'import'聲明只是讓您能夠使用類型的簡單名稱(或它的成員),而不是完全限定的類型名稱。 – 2014-11-21 19:48:58
如果你看一下'System'的實現,你會發現很多'import'語句,但是這些與你如何實例化一個類型或初始化一個實例無關。 – 2014-11-21 19:49:52