System.out.println in java - Is out initialized in a native method? -


i wanted know if out variable in system.out.println() initialized in static block of system class. out field declared final static variable, equals null (public final static printstream out = null;) . since out pointing null, assume being pointed printstream object somewhere. can't see code except native method called registernatives(). being pointed in native method? why being done way (any performance advantage)? also, documentation out variable in system says:

the "standard" output stream. stream open , ready accept output data. typically stream corresponds display output or output destination specified host environment or user."

thanks.

the out registration flow

java virtual machine (jvm) invokes

private static void initializesystemclass() @ line-1155

the function call

setout0(newprintstream(fdout, props.getproperty("sun.stdout.encoding"))) @ line-1192 invokes

actual native method defined

private static native void setout0(printstream out); @ line-258;

then setout0 initializes out class memeber.


Comments

Popular posts from this blog

c++ - llvm function pass ReplaceInstWithInst malloc -

java.lang.NoClassDefFoundError When Creating New Android Project -

Decoding a Python 2 `tempfile` with python-future -