Max limit on heap size? How much RAM do you have? (I recommend that you don;t include swap space when making heap size judgements.)
Ideal heap size? Depends entierly on your application. You need to run some capacity tests using simulated loads, gather garbage colleciton data, anaylze that, and from there come up with a suggested heap size. Repeat until you reach your ideal size (which will invole both increasing and decrasing the size).
In general, when you set a heap size, the JVM will run a major garbage collection before you fill it up. Exactly when that happens depends on the garbage collector that you chose. The CMS and G1 collectors tend to play it safer and run long before the heap fills up. The default collector might let more fo the heap fill up. The unused heap space typically ends up in swap because it it is rarely, if ever, used (sort of wasted memory space).