It is possible to some extent. Not the actual garbage characters, but code that is quite difficult to decrypt. What you are looking for is called "Java bytecode obfuscator". There are a bunch of both commercial and non-commercial. After all, if the JVM can read and run your code correctly, it can be decompiled.
Note that obfuscating bytecode can make various JVM optimizations difficult.
source share