yes when you call any accessing elements of an image the image is loaded at that time.
If you were to say create a new Image on "/myImage.jpg" and then call image.getWidth() it will return -1 until the image has been loaded.
Try this out in debug, call image.getWidth() and debug that line, if you call it again after a second or so (probably less, but it's a decent enough buffer) the image will finally be loaded.
It's an asynchronous process so that you don't go new Image("some massssssive image") and end up waiting a long time for it to display.
Using ImageBuffers and MediaTrackers are great alternatives since you can get the images immediately. These also allow for smarter handling of the images, which is really what most people want.