(I assume that args0 and args1 holds Strings with same value)
- args0.intern()will check if String pool already contains String with same value as String from- args0.
- If pool contains such String reference to it will be returned, if not new String with same value as args0will be created, placed in pool reference to it returned.
after
args0.intern();
args1.intern();
args0 and args1 still hold Strings used in command line so they are different from Strings in pool. 
To change it try maybe 
args0 = args0.intern();
args1 = args1.intern();
now args0 = args0.intern(); will place "put" String from args0 in pool update args0 to hold that String. After args1 = args1.intern(); intern will see that pool contains same string (placed earlier with args0.intern()) so will just return reference to it and store it under args1. 
Now if(args0 == args1) should be true because both references hods the same String object.