I did a search on the topic's heading, in google, and the only results i got was on how java used the $ symbol to name the inner classes. However what i was interested in was how java used name mangling to differentiate between different overloaded methods. Does java use that feature at all or does it use its own method of maintaining method signatures ?
Java doesn't use classic "name mangling" because that technique is a way to get a classical, non-object-oriented linker to link a C++ program. When you compile a class file, Java does include a "method descriptor" for each method, which you can read about here. Method calls are compiled to use those same method descriptors for lookup.