This concept is easy to understand and has its uses, such as, calling Windows Native functions, which are functions of Windows that aren't officially documented or to hide Windows API usage.
Learn how to grab the offsets of multi-level pointers with a quicker and less tedious method. All you need is a debugger and perhaps a decompiler to ease the process a bit.
Calling C/C++ code in Java is something that can make wonders in an application and it's especially used in Android apps. The truth is, it isn't really that hard to do so.