To compound the issue.... What is user space and kernal space is determined by the MMU. And this is specific to a program. In other words, there many be multiple value at address XXXX, since XXXX is a virtual address.
So... even if you use JNI, which will get your program to C/C++, it will not be able to access all of the physical memory in the system.
Well, you want to have your cake and eat it too. :-). Java is a closed system, meaning it really does not allow the programmer much power on system side operations such as reading in raw bytes of data directly from the memory. You would need to have references to memory locations by means of object references.
However if you wish to access main memory for specific requirements, you may want to use native bindings and allow C or C++ to work at the memory and framing some sort of object which can be sent back to the Java programs at the higher levels.
This is yes, not for the beginner Java geek. Might take quite a bit of time and research. Study on JNI and a little bit of C, will help you out.
SCJP, SCWCD, SCBCD, IBM XML, IBM OOAD, SCEA 5, ITAC - Distinguished IT Architect.