You should have SOME knowledge about how the garbage collection for Java works for two reasons:
First, if you don't know how it works, then you may accidentally make design decisions that lead to worst-case performance in your actual application. This becomes less and less likely as the GC improves, but if you have a choice of algorithms in your app, then knowing something about the GC means you can pick one with knowledge of what it's going to do, instead of finding out that it causes bad behavior.
Second, if you don't know how it works, you can't possibly tune the GC for a given application. Most Java programmers never need to tune the GC, as the default parameters work well enough most of the time. If you do something that gets out of that 'most of the time', then you may find yourself tuning the GC parameters. Doing so without knowledge of the GC is just randomly turning knobs - you might get something useful out of it, but more likely you'll jut screw things up worse.
So, while I wouldn't expect a good Java programmer to know everything under the sun about GC, I'd expect that programmer to know at some level how the GC in the JVM they are using functions, and what the tradeoffs are for that GC algorithm.