One thing I miss while learning Objective-C and Cocoa is Java's garbage collector.
There's some interesting stuff on GC on the CocoaDev site here. A cool little tidbit that I didn't know about Java's GC is that it actually moves objects around while doing a GC sweep.
Large objects get tossed around into a block of memory so that you get less fragementation. Nice.
Kind of interesting to see that C# takes it one step further and you practically get 2 heaps - a large object heap so that you don't have to even pay the cost of moving objects (and all the associated pointers) around. Neat.
Although a little dated, you can find Java 1.3.1 GC notes here.
There's some weird babbling going on in the Apple Cocoa-dev mailing list about adding GC to Objective-C. I can't see how you'd do that considering you have access to all the pointers that are available to be munged. Mind you GNUStep seemed to have something that worked.