There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.
Advantage: It ensures that the data will get to its destination complete, unaltered, and readable.
Disadvantage: It takes up more space than its unencoded counterpart.
The downside is generally considered irrelevant compared to the upside.
There aren't really any alternatives worth exploring. You can roll your own but that's totally reinventing the wheel. Base64 is accepted as a standard because it addresses the issue most efficiently. Almost all programming libraries include built-in base64 encoding routines. While I don't work with Java I'm certain it is no exception. You could incorporate the encoding directly into your code to avoid going through the website.
A quick Google search uncovered this snippet:
Open in new window