12 classes · 3 labs · 9 PYQs
What a String actually is — the pool, immutability, and the cost of + in a loop · StringBuffer vs StringBuilder · wrappers, the Object contract & generics · files, byte & character streams · saving whole objects to disk with serialization.
THE ROADMAP · C25 → C36
Part J dissects String on a chat-app message spine. Part K walks wrappers → Object → generics → streams on Student records & file I/O. Part L saves whole Student CGPA objects to disk with serialization, then closes the unit.
Why "hi" == "hi" can be true but new String("hi") breaks it — the pool, immutability, and what every chat message really costs.
The mutable siblings — capacity, append chains, and when + in a loop quietly burns memory. (P1·Q17a)
substring · indexOf · split · trim · replace — the working set, drilled on real chat messages. (P2·Q13a)
When an array of characters beats a String, conversion both ways, and the warm-up for Lab 6.
Everything Part J built, at the keyboard — pool experiments, builder benchmarks, method drills.
Integer, Double & friends — why primitives need suits, parsing, caching surprises, and auto(un)boxing.
toString · equals · hashCode — the contract every Student record inherits, and why you override it.
<T> on classes and methods, bounded types, and the compile-time safety net. (P1·Q13a · P1·Q14a · P1·Q13b)
InputStream vs Reader families, FileReader/FileWriter, and the Lab 7 runway. (P1·Q6 · P2·Q5)
BufferedReader/Writer pipelines on Student record files — the P2·Q17a program lands here.
Serializable, the save-file idea, transient & serialVersionUID — Student CGPA objects on disk. (P2·Q13b)
writeObject / readObject round-trips, casting on the way back, and what breaks the stream.
Talking to the JVM and the OS — mostly a guided self-study beat, kept in teaching sequence.
Strings → wrappers → generics → streams → serialization stitched into one revision map, plus the Lab 8 runway.
Save and restore whole Student objects — the unit's capstone at the keyboard.
Part J carries P1·Q17a (StringBuffer vs StringBuilder) and P2·Q13a (String methods). Part K carries P1·Q13a, P1·Q14a and P1·Q13b (generics, incl. the toHex program) plus P1·Q6 and P2·Q5 (I/O). Part L carries P2·Q13b (serialization), and P2·Q17a lands as the Lab 7 program. Every one appears as a stepped model program inside its class — nothing is left "for revision later".