Does that make me a bad candidate?
From what you state we can conclude that this makes you a bad candidate for those companiesfor those companies.
That is, if those companies are seeking someone that, besides being able to code, actually knows some theory and what's going on behind the scenes, then someone who lacks that knowledge would not be the best candidate (for those companies).
Surely, there could be companies that give more value to the hands-on experience of their candidates, and someone without theoretical knowledge of Java (but great hands-on knowledge) would be a good candidate for themfor them.
My suggestion is that either seek companies that value more hands-on experience, or that you invest some time to read and build some theoretical knowledge of Java so you can be an even better candidateinvest some time to read and build some theoretical knowledge of Java so you can be an even better candidate.
On a more blunt observation: It's precisely that theoretical knowledge that you describe that makes the difference between someone who only knows how to program and no background on what's happening behind the scenes and, for example, a Computer Science professional or a Computer Engineer (or whatever we are called now at the Uni), who actually knows what's behind the scenes and may have a deeper understanding of the language (and computing in general) that someone that "only" knows how to code.