Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
The moose likes Beginning Java and the fly likes System.out.println(); Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "System.out.println();" Watch "System.out.println();" New topic


Ritesh raushan
Ranch Hand

Joined: Aug 29, 2012
Posts: 100
whats is the internal coding of System.out.println();how is it works....i saw a coding in System class

class System
public static final PrintStream out=null;

but i did'nt undestand...this is has-A relationship but where the object of PrintStream class is creating.
please help me......thanks
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 46429
You shouldn’t care what the internal coding is, but if you insist:-
  • 1: Find the file in your Java installation folder.
  • 2: Unzip it.
  • 3: Navigate to the ja‍va folder
  • 4: Navigate to the lang folder
  • 5: Read the file
  • If you need the JVM code, you can download it too, but I can’t remember whence.
    Guillaume Jourdan
    Ranch Hand

    Joined: Jul 24, 2012
    Posts: 47



    out => PrintStream

    PrintStream => pirntln method invoke print method => Javadoc PrintStream println(java.lang.String) wrote: public void print(String s)
    Print a string. If the argument is null then the string "null" is printed. Otherwise, the string's 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.
    s - The String to be printed

    Javadoc PrintStream print(java.lang.String)

    If you want an implementation, you can extract the code in open-jdk :

    open-jdk source
    Vishal Shaw
    Ranch Hand

    Joined: Aug 09, 2012
    Posts: 179
    Ritesh raushan wrote:but i did'nt undestand...this is has-A relationship but where the object of PrintStream class is creating.

    What is there, you did not understand? It simply says that the System class has an object "out" of PrintStream class. You have already shown the code there. If you are worried about the initialization of "out",then

    shows you how "out" is reassigned


    Programming is about thinking, NOT coding
    It is sorta covered in the JavaRanch Style Guide.
    subject: System.out.println();
    It's not a secret anymore!