I believe search.list() only returns the contents of newDir only, not its subfolders. You can write an elegant recursive function to achieve what you want
The t2 reference refers to a new String object on the heap. Remember whenever you do a new Something(), the JVM will put a new Object on the heap. t1 and t3 on the other hand, are just references pointing towards the String object in the String-pool of JVM. You can test the remaining comparison in your code i.e. t1==t3 which willl surely resolve to true.
Reading two references is better than reading just one. So go ahead and read HF Java first, then move on to K&B. HF Java is quite a useful book which goes at an easy pace, and gives you a slightly different and fun take on Java. Well worth reading in my opinion.
You might want to create an account on Sun's Certification Database using the information on your score sheet. They should have your official exam report.