0|1 controls the printing of heap information:

0 Print only after each full GC
1 (default) Print after every Scavenge and Full GC 
:file=[stdout|stderr|<filename>] specifies output file 

stderr (default) directs output to standard error stream
stdout directs output to standard output stream
<filename> file to which the output will be written 
At every garbage collection, the following 18 fields are printed:
<GC: %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 >

1: Indicates the cause of the garbage collection.
    -1: indicates a scavenge (during a scavenge only objects from
        the New space are collected)
    0-6: indicates a full garbage collection (during a full garbage
         collection objects from all areas are collected)

The code indicates the reason for the full garbage collection as follows:

    Reason:
    0:  Call to System.gc()
        The call was made by the application.

    1:  Old Generation full
        An object was to be allocated in the Old Generation, but there
        was no room there.

    2:  Permanent Generation full
        The heap area holding the reflection objects (representing Java™ classes and methods) was full.

    3:  Train Generation full
        Reserved for Java™ Virtual Machine developers

    4:  Old generation expanded on last scavenge
        Due to implementation reasons, if the Old Generation expanded
        on last scavenge, no more scavenges can be performed reliably
        before the next full garbage collection.

    5:  Old generation too full to scavenge
        An object was to be allocated in the New Generation, but there
        was no room there.  However, the VM has determined that the Old
        Generation was likely too full for a scavenge to compete without
        expanding the Old Generation.  Therefore a full garbage collection
        was performed rather than a scavenge.

    6:  FullGCAlot
        Reserved for Java™ Virtual Machine developers.
		
    7:  Last ditch collection
        If the heap area holding the reflection objects (representing 
        classes and methods) is full, VM first invokes permanent generation
        collection. If that fails, then it tries to expand permanent generation. 
        If that also fails, it invokes last ditch collection, to reclaim as much 
        space as possible. 

  (From 1.3.1.14 to 1.3.1.17, GC cause code number 6 represents Last ditch collection and GC cause code
  number 7 represents FullGCAlot)  

%2: The time elapsed between the Java™ program start and the start of this
    garbage collection event.

%3: Garbage collection invocation. This is the sequential number (count)
    of the garbage collection event. Counts of Scavenge and
    Full GCs are maintained separately. 

%4: Size of the object allocation request that forced the GC, in bytes.

%5: Tenuring threshold - determines how long the new born object
    remains in the New Generation.

    The report includes the size of each space:
       Occupied before garbage collection (Before)
       Occupied after garbage collection (After)
       Current capacity (Capacity)

All are in bytes.

Eden sub-space (within the New Generation)
%6:  Before
%7:  After
%8:  Capacity

Survivor sub-space (within the New Generation)
%9:  Before
%10: After
%11: Capacity

Old Generation
%12: Before
%13: After
%14: Capacity

Permanent Generation (Storage of Reflective Objects)
%15: Before
%16: After
%17: Capacity

%18: Duration of the garbage collection in seconds.