A Java application will take only as much memory as it needs for the objects it has created. Given your heap settings, the JVM will initially reserve 1024MB of memory (in Windows it shows up as "committed" memory) thought the OS is typically a little smarter and only allocates the actual amount of physical memory required by the allocated objects. For example, the app might need only 200MB, in which case that amount of physical memory is allocated while the other 824MB stays in reserve and is physically allocated only when required.
If you put a pause at the start if your memory-eating app, you will notice that it also initially only uses a very small amount of memory. If you put a pause between iterations of your loop you will see them emory gradually increase.
The app server does lazy-loading for deployed applications and services. As the app server runs and handles requests, you will see the memory usage increase. If you want to pre-allocate that memory, you could create a service that initializes various apps by doing things such as establishing database connections, allocating EJBs, etc.