Why are Java programmers not provided with a sizeof operator as in C/C++ to know the size of the datatypes or objects..? Do the programmers really dont need it while using data strucures...

You really have no need to know. There are no pointers for you to manipulate so there's no need to reserve space for a series of objects and address that space at discrete intervals.
As long as you know what the different primitives can hold (which is no guarantee they're actually that size, a JVM implementation could for example represent a 32 bit integer internally as a 64 bit number for performance reasons as long as the programmer doesn't notice it) there's nothing to worry about.